Files
kodimovplus/service.py
T
XoséandClaude Opus 5.5 09d6a68f74 1.0.0+kodimov.6: keep refreshing the programme guide on boxes set up with kodimov.1
kodimov.1 shipped the automatic guide export off. Kodi stored that value,
so the later default of on never applied and only the channel list was
refreshed; the 2-day guide ran out. Rename the setting so the new default
applies, and turn it on from the one-tap TV guide setup.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-10 08:08:57 +01:00

56 lines
2.0 KiB
Python

#!/usr/bin/env python
# -*- coding: utf-8 -*-
from __future__ import unicode_literals
import os
import time
import xbmc
import xbmcgui
from resources.lib.proxy import Proxy
from resources.lib.addon import *
from resources.lib.log import LOG
def export_epg():
from datetime import datetime, timedelta
def needs_update(filename):
if os.path.exists(filename):
file_modification_time = datetime.fromtimestamp(os.path.getmtime(filename))
return datetime.now() - file_modification_time > timedelta(hours=6)
return True
channels_filename = os.path.join(profile_dir, 'channels.m3u8')
epg_filename = os.path.join(profile_dir, 'epg.xml')
LOG('channels filename: {}'.format(channels_filename))
LOG('epg filename: {}'.format(epg_filename))
channels_needs_update = needs_update(channels_filename)
epg_needs_update = needs_update(epg_filename)
LOG('channels_needs_update: {} epg_needs_update: {}'.format(channels_needs_update, epg_needs_update))
if channels_needs_update or epg_needs_update:
xbmc.executebuiltin('RunPlugin(plugin://plugin.video.kodimovplus/?action=export_epg_now)')
if __name__ == '__main__':
LOG('Service started')
proxy = Proxy()
proxy.start()
LOG('proxy_address: {}'.format(proxy.proxy_address))
# Refreshes the TV guide channel list (new channels, new numbers) and the
# programme guide a minute after Kodi starts and then every 6 hours. Opening the add-on also renews the 10-day Movistar login.
next_export = time.time() + 60
monitor = xbmc.Monitor()
while not monitor.abortRequested():
if monitor.waitForAbort(1):
break
if time.time() >= next_export:
next_export = time.time() + 6 * 3600
if addon.getSettingBool('auto_export_epg'): # channels + programme guide
xbmc.executebuiltin('RunPlugin(plugin://plugin.video.kodimovplus/?action=export_epg_now&quiet=1)')
elif addon.getSettingBool('export_channels'):
xbmc.executebuiltin('RunPlugin(plugin://plugin.video.kodimovplus/?action=export_channels_now)')
proxy.stop()