#!/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('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()