From cc5b8f475a47ac595d758a709e32d5de058a013f Mon Sep 17 00:00:00 2001 From: dekzter Date: Fri, 11 Apr 2025 17:55:43 -0400 Subject: [PATCH] m3u honors default UA --- apps/m3u/serializers.py | 3 ++- frontend/src/components/forms/M3U.jsx | 18 ++++++++++++------ 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/apps/m3u/serializers.py b/apps/m3u/serializers.py index d3948145..d79b0117 100644 --- a/apps/m3u/serializers.py +++ b/apps/m3u/serializers.py @@ -53,7 +53,8 @@ class M3UAccountSerializer(serializers.ModelSerializer): # Include user_agent as a mandatory field using its primary key. user_agent = serializers.PrimaryKeyRelatedField( queryset=UserAgent.objects.all(), - required=True + required=False, + allow_null=True, ) profiles = M3UAccountProfileSerializer(many=True, read_only=True) read_only_fields = ['locked', 'created_at', 'updated_at'] diff --git a/frontend/src/components/forms/M3U.jsx b/frontend/src/components/forms/M3U.jsx index f0860485..ccef1944 100644 --- a/frontend/src/components/forms/M3U.jsx +++ b/frontend/src/components/forms/M3U.jsx @@ -48,7 +48,7 @@ const M3U = ({ playlist = null, isOpen, onClose, playlistCreated = false }) => { initialValues: { name: '', server_url: '', - user_agent: `${userAgents[0].id}`, + user_agent: '0', is_active: true, max_streams: 0, refresh_interval: 24, @@ -67,7 +67,7 @@ const M3U = ({ playlist = null, isOpen, onClose, playlistCreated = false }) => { name: playlist.name, server_url: playlist.server_url, max_streams: playlist.max_streams, - user_agent: `${playlist.user_agent}`, + user_agent: playlist.user_agent ? `${playlist.user_agent}` : '0', is_active: playlist.is_active, refresh_interval: playlist.refresh_interval, }); @@ -79,6 +79,10 @@ const M3U = ({ playlist = null, isOpen, onClose, playlistCreated = false }) => { const onSubmit = async () => { const values = form.getValues(); + if (values.user_agent == '0') { + values.user_agent = null; + } + let newPlaylist; if (playlist?.id) { await API.updatePlaylist({ @@ -184,10 +188,12 @@ const M3U = ({ playlist = null, isOpen, onClose, playlistCreated = false }) => { label="User-Agent" {...form.getInputProps('user_agent')} key={form.key('user_agent')} - data={userAgents.map((ua) => ({ - label: ua.name, - value: `${ua.id}`, - }))} + data={[{ value: '0', label: '(use default)' }].concat( + userAgents.map((ua) => ({ + label: ua.name, + value: `${ua.id}`, + })) + )} />