From b51c8a9aed974415ec8a5e32e1f8e42f5524dcf6 Mon Sep 17 00:00:00 2001 From: DYefremov Date: Tue, 9 Jun 2020 18:38:18 +0300 Subject: [PATCH] added eserviceuri (8193) stream type --- app/eparser/enigma/bouquets.py | 13 +++++++------ app/eparser/iptv.py | 7 ++++--- 2 files changed, 11 insertions(+), 9 deletions(-) diff --git a/app/eparser/enigma/bouquets.py b/app/eparser/enigma/bouquets.py index 61bef663..2ee19634 100644 --- a/app/eparser/enigma/bouquets.py +++ b/app/eparser/enigma/bouquets.py @@ -95,23 +95,24 @@ def get_bouquet(path, bq_name, bq_type): bq_name = srvs.pop(0) - for srv in srvs: + for num, srv in enumerate(srvs, start=1): srv_data = srv.strip().split(":") if srv_data[1] == "64": m_data, sep, desc = srv.partition("#DESCRIPTION") - services.append(BouquetService(desc.strip() if desc else "", BqServiceType.MARKER, srv, srv_data[2])) + services.append(BouquetService(desc.strip() if desc else "", BqServiceType.MARKER, srv, num)) elif srv_data[1] == "832": m_data, sep, desc = srv.partition("#DESCRIPTION") - services.append(BouquetService(desc.strip() if desc else "", BqServiceType.SPACE, srv, srv_data[3])) - elif "http" in srv: + services.append(BouquetService(desc.strip() if desc else "", BqServiceType.SPACE, srv, num)) + elif "http" in srv or srv_data[0] == "8193": stream_data, sep, desc = srv.partition("#DESCRIPTION") - services.append(BouquetService(desc.lstrip(":").strip() if desc else "", BqServiceType.IPTV, srv, 0)) + desc = desc.lstrip(":").strip() if desc else srv_data[-1].strip() + services.append(BouquetService(desc, BqServiceType.IPTV, srv, num)) else: fav_id = "{}:{}:{}:{}".format(srv_data[3], srv_data[4], srv_data[5], srv_data[6]) name = None if len(srv_data) == 12: name, sep, desc = str(srv_data[-1]).partition("\n#DESCRIPTION") - services.append(BouquetService(name, BqServiceType.DEFAULT, fav_id.upper(), 0)) + services.append(BouquetService(name, BqServiceType.DEFAULT, fav_id.upper(), num)) return bq_name.lstrip("#NAME").strip(), services diff --git a/app/eparser/iptv.py b/app/eparser/iptv.py index 55451b5e..c10874a2 100644 --- a/app/eparser/iptv.py +++ b/app/eparser/iptv.py @@ -1,7 +1,7 @@ """ Module for IPTV and streams support """ import re -import urllib.request from enum import Enum +from urllib.parse import unquote from app.settings import SettingsType from app.ui.uicommons import IPTV_ICON @@ -18,6 +18,7 @@ class StreamType(Enum): NONE_TS = "4097" NONE_REC_1 = "5001" NONE_REC_2 = "5002" + E_SERVICE_URI = "8193" def parse_m3u(path, s_type): @@ -64,7 +65,7 @@ def export_to_m3u(path, bouquet, s_type): lines.append("#EXTINF:-1,{}\n".format(s.name)) if current_grp: lines.append(current_grp) - lines.append("{}\n".format(urllib.request.unquote(data.strip()))) + lines.append("{}\n".format(unquote(data.strip()))) elif s_type is BqServiceType.MARKER: current_grp = "#EXTGRP:{}\n".format(s.name) @@ -75,7 +76,7 @@ def export_to_m3u(path, bouquet, s_type): def get_fav_id(url, service_name, s_type): """ Returns fav id depending on the profile. """ if s_type is SettingsType.ENIGMA_2: - url = urllib.request.quote(url) + url = unquote(url) stream_type = StreamType.NONE_TS.value return ENIGMA2_FAV_ID_FORMAT.format(stream_type, 1, 0, 0, 0, 0, url, service_name, service_name, None) elif s_type is SettingsType.NEUTRINO_MP: