From 725c21ed561dfc8c41243b4f47453ec5223f38d9 Mon Sep 17 00:00:00 2001 From: Dispatcharr Date: Thu, 6 Mar 2025 20:40:18 -0600 Subject: [PATCH] Update epg tasks.py Added gzip support for unzipping EPG files --- apps/epg/tasks.py | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/apps/epg/tasks.py b/apps/epg/tasks.py index d7963ec4..532b4de0 100644 --- a/apps/epg/tasks.py +++ b/apps/epg/tasks.py @@ -1,4 +1,5 @@ import logging +import gzip # <-- New import for gzip support from celery import shared_task from .models import EPGSource, EPGData, ProgramData from django.utils import timezone @@ -29,7 +30,16 @@ def fetch_xmltv(source): response = requests.get(source.url, timeout=30) response.raise_for_status() logger.debug("XMLTV data fetched successfully.") - root = ET.fromstring(response.content) + + # If the URL ends with '.gz', decompress the response content + if source.url.lower().endswith('.gz'): + logger.debug("Detected .gz file. Decompressing...") + decompressed_bytes = gzip.decompress(response.content) + xml_data = decompressed_bytes.decode('utf-8') + else: + xml_data = response.text + + root = ET.fromstring(xml_data) logger.debug("Parsed XMLTV XML content.") # Group programmes by their tvg_id from the XMLTV file