def new_build_check(): log.log("Checking for a new build") check_official = addon.get_bool_setting('check_official') check_interval = addon.get_int_setting('check_interval') autoclose_ms = check_interval * 3540000 # check interval in ms - 1 min try: installed_build = builds.get_installed_build() except: log.log("Unable to get installed build so exiting") sys.exit(1) source = addon.get_setting('source_name') if (isinstance(installed_build, builds.Release) and source == "Official Releases" and not check_official): # Don't do the job of the official auto-update system. log.log("Skipping build check - official release") else: builds.arch = utils.get_arch() if addon.get_bool_setting('set_timeout'): builds.timeout = float(addon.get_setting('timeout')) build_sources = builds.sources() try: build_url = build_sources[source] except KeyError: log.log("{} is not a valid source".format(source)) return log.log("Checking {}".format(build_url.url)) latest = builds.latest_build(source) if latest and latest > installed_build: if utils.do_show_dialog(): log.log("New build {} is available, " "prompting to show build list".format(latest)) if utils.yesno(addon.name, line1=L10n(32027).format( utils.format_build(latest)), line2=L10n(32028).format( utils.format_build(installed_build)), line3=L10n(32029), autoclose=autoclose_ms): with Main() as main: main.start() else: utils.notify( L10n(32030).format(utils.format_build(latest)), 4000)
def new_build_check(): log.log("Checking for a new build") check_official = addon.get_bool_setting('check_official') check_interval = addon.get_int_setting('check_interval') autoclose_ms = check_interval * 3540000 # check interval in ms - 1 min try: installed_build = builds.get_installed_build() except: log.log("Unable to get installed build so exiting") sys.exit(1) source = addon.get_setting('source_name') if (isinstance(installed_build, builds.Release) and source == "Official Releases" and not check_official): # Don't do the job of the official auto-update system. log.log("Skipping build check - official release") else: builds.arch = utils.get_arch() if addon.get_bool_setting('set_timeout'): builds.timeout = float(addon.get_setting('timeout')) build_sources = builds.sources() try: build_url = build_sources[source] except KeyError: log.log("{} is not a valid source".format(source)) return log.log("Checking {}".format(build_url.url)) latest = builds.latest_build(source) if latest and latest > installed_build: if utils.do_show_dialog(): log.log("New build {} is available, " "prompting to show build list".format(latest)) if utils.yesno( addon.name, line1=L10n(32027).format(utils.format_build(latest)), line2=L10n(32028).format(utils.format_build(installed_build)), line3=L10n(32029), autoclose=autoclose_ms): with Main() as main: main.start() else: utils.notify(L10n(32030).format(utils.format_build(latest)), 4000)
try: item = items[int(choice)] return item except ValueError: choice = raw_input('You entered a non-integer. Choice must be an' ' integer or "q": ') except IndexError: choice = raw_input('You entered an invalid integer. Choice must be' ' from above list or "q": ') sys.exit() if args.arch: builds.arch = args.arch urls = builds.sources() if args.source: source = args.source try: build_url = urls[source] except KeyError: parsed = urlparse(source) if parsed.scheme in ('http', 'https') and parsed.netloc: if args.releases: build_url = builds.BuildsURL(source, extractor=builds.ReleaseLinkExtractor) else: build_url = builds.BuildsURL(source) else: print ('"{}" is not in the list of available sources '
try: item = items[int(choice)] return item except ValueError: choice = raw_input('You entered a non-integer. Choice must be an' ' integer or "q": ') except IndexError: choice = raw_input('You entered an invalid integer. Choice must be' ' from above list or "q": ') sys.exit() if args.arch: builds.arch = args.arch urls = builds.sources() if args.source: source = args.source try: build_url = urls[source] except KeyError: parsed = urlparse(source) if parsed.scheme in ('http', 'https') and parsed.netloc: if args.releases: build_url = builds.BuildsURL( source, extractor=builds.ReleaseLinkExtractor) else: build_url = builds.BuildsURL(source) else: print(
def create(self): import requests2 as requests from resources.lib import builds try: self.installed_build = builds.get_installed_build() except requests.ConnectionError as e: utils.connection_error(str(e)) sys.exit(1) subdir = __addon__.getSetting('subdir') # Get the url from the settings. source = __addon__.getSetting('source') utils.log("Source = " + source) if source == "Other": # Custom URL url = __addon__.getSetting('custom_url') scheme, netloc = urlparse.urlparse(url)[:2] if not (scheme and netloc): utils.bad_url(url, "Invalid URL") sys.exit(1) build_url = builds.BuildsURL(url, subdir) else: # Defined URL try: build_url = builds.sources(self._arch)[source] except KeyError: utils.bad_source(source) sys.exit(1) url = build_url.url utils.log("Full URL = " + url) if __addon__.getSetting('set_timeout') == 'true': timeout = int(__addon__.getSetting('timeout')) else: timeout = None try: # Get the list of build links. with build_url.extractor() as extractor: links = sorted(set(extractor.get_links(self._arch, timeout)), reverse=True) except requests.ConnectionError as e: utils.connection_error(str(e)) sys.exit(1) except builds.BuildURLError as e: utils.bad_url(url, str(e)) sys.exit(1) except requests.RequestException as e: utils.url_error(url, str(e)) sys.exit(1) if __addon__.getSetting('archive') == "true": # Look in archive area for local build files. archive_root = __addon__.getSetting('archive_root') archive_dir = os.path.join(archive_root, source) if not xbmcvfs.mkdirs(archive_dir): xbmcgui.Dialog().ok("Directory Error", "{} is not accessible.".format(archive_root), "Check the archive directory in the addon settings.") __addon__.openSettings() sys.exit(1) files = xbmcvfs.listdir(archive_dir)[1] for link in links: if link.tar_name in files: link.set_archive(archive_dir) if not links: utils.bad_url(url, "No builds were found for {}.".format(self._arch)) sys.exit(1) return source, links
if isinstance(installed_build, builds.Release) and source == "Official Releases": # Don't do the job of the official auto-update system. utils.log("Skipping build check - official release") else: try: if __addon__.getSetting('set_arch') == 'true': arch = __addon__.getSetting('arch') else: arch = constants.ARCH subdir = __addon__.getSetting('subdir') if source == "Other": url = __addon__.getSetting('custom_url') build_url = builds.BuildsURL(url, subdir) else: build_url = builds.sources(arch)[source] url = build_url.url if __addon__.getSetting('set_timeout') == 'true': timeout = int(__addon__.getSetting('timeout')) else: timeout = None utils.log("Checking {}".format(url)) with build_url.extractor() as parser: latest = sorted(parser.get_links(arch, timeout), reverse=True)[0] if latest > installed_build: if (check_prompt == 1 and xbmc.Player().isPlayingVideo()) or check_prompt == 0: utils.log("Notifying that new build {} is available".format(latest)) utils.notify("Build {} is available".format(latest), 7500) else: