diff --git a/core/httptools.py b/core/httptools.py index 76b04f9d..6f814769 100755 --- a/core/httptools.py +++ b/core/httptools.py @@ -30,7 +30,7 @@ cookies_file = os.path.join(config.get_data_path(), "cookies.dat") # Headers by default, if nothing is specified default_headers = dict() -default_headers["User-Agent"] = "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/74.0.3729.169 Safari/537.36" +default_headers["User-Agent"] = "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/%s Safari/537.36" % config.get_setting("chrome_ua_version") default_headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" default_headers["Accept-Language"] = "it-IT,it;q=0.8,en-US;q=0.5,en;q=0.3" default_headers["Accept-Charset"] = "UTF-8" diff --git a/resources/settings.xml b/resources/settings.xml index 49a1f180..d97a9c3d 100644 --- a/resources/settings.xml +++ b/resources/settings.xml @@ -13,6 +13,7 @@ + diff --git a/service.py b/service.py index 586cf1b8..1a69cbbc 100644 --- a/service.py +++ b/service.py @@ -22,7 +22,7 @@ except: librerias = xbmc.translatePath(os.path.join(config.get_runtime_path(), 'lib')) sys.path.insert(0, librerias) -from core import videolibrarytools, filetools, channeltools +from core import videolibrarytools, filetools, channeltools, httptools, scrapertools from lib import schedule from platformcode import logger, platformtools, updater from specials import videolibrary @@ -304,6 +304,23 @@ def updaterCheck(): exit(0) +def get_ua_list(): + # https://github.com/alfa-addon/addon/blob/master/plugin.video.alfa/platformcode/updater.py#L273 + logger.info() + url = "http://omahaproxy.appspot.com/all?csv=1" + current_ver = config.get_setting("chrome_ua_version", default="").split(".") + data = httptools.downloadpage(url, alfa_s=True).data + new_ua_ver = scrapertools.find_single_match(data, "win64,stable,([^,]+),") + + if not current_ver: + config.set_setting("chrome_ua_version", new_ua_ver) + else: + for pos, val in enumerate(new_ua_ver.split('.')): + if int(val) > int(current_ver[pos]): + config.set_setting("chrome_ua_version", new_ua_ver) + break + + def run_threaded(job_func, args): job_thread = threading.Thread(target=job_func, args=args) job_thread.start() @@ -318,6 +335,7 @@ class AddonMonitor(xbmc.Monitor): self.update_hour = None self.scheduleScreenOnJobs() self.scheduleUpdater() + self.scheduleUA() # videolibrary wait update_wait = [0, 10000, 20000, 30000, 60000] @@ -390,6 +408,10 @@ class AddonMonitor(xbmc.Monitor): schedule.every(self.updaterPeriod).hours.do(updaterCheck).tag('updater') logger.debug('scheduled updater every ' + str(self.updaterPeriod) + ' hours') + def scheduleUA(self): + get_ua_list() + schedule.every(1).day.do(get_ua_list) + def scheduleVideolibrary(self): self.update_setting = config.get_setting("update", "videolibrary") # 2= daily 3=daily and when kodi starts