From 235f7a6cab77f0c4a7f3756e71624401d1c42afb Mon Sep 17 00:00:00 2001 From: xocko Date: Sat, 7 Nov 2026 10:46:10 +0100 Subject: [PATCH] Sort the TV guide list by channel number; direct TeleVigo stream Kodi lists channels in file order, so TVG2 and TeleVigo showed up last. TeleVigo's master playlist points to an ad server URL with unfilled placeholders that Kodi can't open; use the direct playlist instead. Co-Authored-By: Claude Opus 5.5 --- .../lib/__pycache__/kodimov.cpython-315.pyc | Bin 11137 -> 11185 bytes .../lib/__pycache__/movistar.cpython-315.pyc | Bin 96092 -> 96675 bytes resources/lib/kodimov.py | 9 ++++----- resources/lib/movistar.py | 8 +++++--- 4 files changed, 9 insertions(+), 8 deletions(-) diff --git a/resources/lib/__pycache__/kodimov.cpython-315.pyc b/resources/lib/__pycache__/kodimov.cpython-315.pyc index 74fa5915ddad6f6523baece4d4a3a25b36532118..303f641370e57998c4edfad2d5b22c9c4635a5ad 100644 GIT binary patch delta 1133 zcmXw&&u<$=6vt0;?k`j%BB| ztZKb!ZMPb2J0_nGOp#FP#wXI8H>EMTz;p7}qUTrs9wtHwpIELeZJ7712Xu&dSkfDGP zRCLGM5~kh)`9*wj{vx>}Mx|o4O-DD|%?|`XjwaBl+`+2Yu2+O!ul5fUk$=Tc@~k|n zor!t(8OELOSg@rxtc|(}x4UKSGc`>$pfct=Xrb{b_A>TUXf)>xdidsh^EJf1vWf)bGQIJ)@_xP%E|#_!S|Hkh74cO zPwnvCHk!#XH=ygaHr}Gpb->4CKq-K}7u+LINrJaNEe#(dTos?)t4)|C-yUI@@D<@B z!smozghhh)+g8ZBO~9*6FmE$JHwvQ!ud)uGZ(7xML%aq*%b#X{2&;VRX(+%WUdVs9 CU?F}0 delta 1026 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 delta 14161 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 XL1S^7sOeu@EXMC^{jv{!^SJ*9c4GxS diff --git a/resources/lib/kodimov.py b/resources/lib/kodimov.py index 287888c..a82391d 100644 --- a/resources/lib/kodimov.py +++ b/resources/lib/kodimov.py @@ -38,7 +38,7 @@ EXTRA_CHANNELS = [ 'url': 'https://crtvg-tvg2.flumotion.cloud/playlist.m3u8'}, {'id': 'TeleVigo', 'name': 'TeleVigo', 'chno': 155, 'group': 'Galicia', 'logo': 'https://i.imgur.com/4iVmlFa.png', - 'url': 'https://cloud.fastchannel.es/mic/manifiest/hls/televigo/televigo.m3u8'}, + 'url': 'https://stream-us-east-1.getpublica.com/playlist.m3u8?network_id=12687'}, ] AUTOLOGIN_URL = 'https://soter-pf.svp.video.telefonicaservices.com/service/login/autologin?deviceId={device}&deviceType=webplayer&_={ts}' @@ -151,10 +151,9 @@ def network_login(m, account_number): def extra_channels_m3u8(): - items = [] - for c in EXTRA_CHANNELS: - items.append('#EXTINF:-1 tvg-name="{name}" tvg-id="{id}" tvg-logo="{logo}" tvg-chno="{chno}" group-title="{group}",{name}\n{url}\n\n'.format(**c)) - return ''.join(items) + """Returns [(channel number, m3u8 entry)].""" + return [(c['chno'], '#EXTINF:-1 tvg-name="{name}" tvg-id="{id}" tvg-logo="{logo}" tvg-chno="{chno}" group-title="{group}",{name}\n{url}\n\n'.format(**c)) + for c in EXTRA_CHANNELS] def write_if_changed(filename, content): diff --git a/resources/lib/movistar.py b/resources/lib/movistar.py index 9b9b6e1..a5e9e2d 100644 --- a/resources/lib/movistar.py +++ b/resources/lib/movistar.py @@ -1418,10 +1418,12 @@ class Movistar(object): if 'cas_id' in t: url += '&cas_id=' + t['cas_id'] item = '#EXTINF:-1 tvg-name="{name}" tvg-id="{id}" tvg-logo="{logo}" tvg-chno="{preset}" {catchup} group-title="Movistar+",{name}\n{stream}\n\n'.format( name=t['name'], id=t['id'], logo=t['logo'], preset=t['preset'], stream=url, catchup='catchup="default" catchup-source="{catchup-id}" catchup-days="7"') - items.append(item) + items.append((int(t['preset'] or 0), item)) if self.add_extra_channels: - items.append(kodimov.extra_channels_m3u8()) - res = '#EXTM3U\n## KodiMov+\n{}'.format(''.join(items)) + items.extend(kodimov.extra_channels_m3u8()) + # Kodi lists channels in file order, so keep it in channel number order. + items.sort(key=lambda x: x[0]) + res = '#EXTM3U\n## KodiMov+\n{}'.format(''.join(i for _, i in items)) return kodimov.write_if_changed(filename, res) def export_epg(self, date=None, duration=2):