From 849bf2f73be5827c63121340f4bfa62c114a8a8d Mon Sep 17 00:00:00 2001 From: kappa118 Date: Wed, 26 Feb 2025 10:23:06 -0500 Subject: [PATCH] fixed tvg_id logic --- apps/channels/serializers.py | 14 ++++++++++++++ apps/epg/models.py | 2 +- apps/epg/tasks.py | 5 +++-- 3 files changed, 18 insertions(+), 3 deletions(-) diff --git a/apps/channels/serializers.py b/apps/channels/serializers.py index 5494196d..60516f74 100644 --- a/apps/channels/serializers.py +++ b/apps/channels/serializers.py @@ -12,6 +12,7 @@ class StreamSerializer(serializers.ModelSerializer): allow_null=True, required=False ) + class Meta: model = Stream fields = [ @@ -29,6 +30,19 @@ class StreamSerializer(serializers.ModelSerializer): 'stream_profile_id', ] + def get_fields(self): + fields = super().get_fields() + + # Unable to edit specific properties if this stream was created from an M3U account + if self.instance and getattr(self.instance, 'm3u_account', None): + fields['id'].read_only = True + fields['name'].read_only = True + fields['url'].read_only = True + fields['m3u_account'].read_only = True + fields['tvg_id'].read_only = True + fields['group_name'].read_only = True + + return fields # # Channel Group diff --git a/apps/epg/models.py b/apps/epg/models.py index 4a81baee..c660824b 100644 --- a/apps/epg/models.py +++ b/apps/epg/models.py @@ -35,7 +35,7 @@ class ProgramData(models.Model): title = models.CharField(max_length=255) sub_title = models.CharField(max_length=255, blank=True, null=True) description = models.TextField(blank=True, null=True) - tvg_id = models.TextField(max_length=255) + tvg_id = models.TextField(max_length=255, null=True) def __str__(self): return f"{self.title} ({self.start_time} - {self.end_time})" diff --git a/apps/epg/tasks.py b/apps/epg/tasks.py index 7bcc159e..adcad616 100644 --- a/apps/epg/tasks.py +++ b/apps/epg/tasks.py @@ -47,6 +47,7 @@ def fetch_xmltv(source): 'end_time': stop_time, 'title': title, 'description': desc, + 'tvg_id': channel_tvg_id, }) # Process each channel group @@ -75,11 +76,11 @@ def fetch_xmltv(source): epg=epg_data, start_time=prog['start_time'], title=prog['title'], - tvg_id=tvg_id, defaults={ 'end_time': prog['end_time'], 'description': prog['description'], - 'sub_title': '' + 'sub_title': '', + 'tvg_id': tvg_id, } ) if created: