def new_depend(dataurl, script): kodi.log("SCRIPT LOOKED FOR IS : " + script) if "github" in dataurl: kodi.log("Is Github Repo") get_github(script, dataurl) else: kodi.log("Is Private Repo") try: link = kodi.open_url(tvpath) if script in link: script_url = tvpath + script + '/' version, orglist = get_url(script, script_url, link) kodi.log(' DOWNLOADING TVA FILE to ' + script + version + '.zip') depend_install(script, orglist) else: link = kodi.open_url(kodi_url) if script in link: script_url = kodi_url + script + '/' version, orglist = get_url(script, script_url, link) kodi.log(' DOWNLOADING Kodi FILE to ' + script + version + '.zip') depend_install(script, orglist) else: orglist = dataurl + script + '/' + script try: script_urls = dataurl + script + '/' link = kodi.open_url(script_urls) if not link: script_urls = script_urls.replace( "raw.", "").replace("/master/", "/tree/master/") link = kodi.open_url(script_urls) if link and "Invalid request" not in link: version, orglist = get_url(script, script_urls, link) orglist += version + '.zip' kodi.log(' DOWNLOADING NATIVE to ' + script + version + '.zip') depend_install(script, orglist) else: kodi.log("DEAD REPO LOCATION = " + dataurl) except Exception as e: kodi.log(str(e)) kodi.log("No local depend found = " + script + " Unfound URL is " + orglist) except Exception as e: kodi.log(str(e)) kodi.log("FAILED TO GET DEPENDS") traceback.print_exc(file=sys.stdout)
def OPENSUBINSTALL(url): path = xbmc.translatePath(os.path.join('special://home', 'addons', 'packages')) dp = xbmcgui.DialogProgress() dp.create("Please Wait", " ", '', 'Installing Official OpenSubtitles Addon') lib = os.path.join(path, 'opensubtitlesOfficial.zip') try: os.remove(lib) except OSError: pass page = kodi.open_url(url) url += re.search('''title="([^z]*zip)''', page).group(1) downloader.download(url, lib, dp, timeout=120) addonfolder = xbmc.translatePath(os.path.join('special://', 'home', 'addons')) time.sleep(2) try: extract.all(lib, addonfolder, '') except IOError as e: kodi.message("Failed to open required files", "Error is: ", str(e)) return False # except IOError, (errno, strerror): # kodi.message("Failed to open required files", "Error code is:", strerror) # return False # xbmc.executebuiltin("XBMC.UpdateLocalAddons()") addon_able.set_enabled("service.subtitles.opensubtitles_by_opensubtitles") xbmc.executebuiltin("XBMC.UpdateLocalAddons()") dialog.ok("Installation Complete!", " We hope you enjoy your Kodi addon experience!", " Brought To You By %s " % siteTitle)
def HUBINSTALL(name, url, script): a_list = [] script_url = url link = kodi.open_url(script_url) matcher = script + '-(.+?).zip' match = re.compile(matcher).findall(link) for version in match: a_list.append(version) a_list.sort(cmp=ver_cmp, reverse=True) newest_v = script + '-' + a_list[0] newest_v_url = script_url + script + '-' + a_list[0] + '.zip' kodi.log("Looking for : " + newest_v_url) path = xbmc.translatePath(os.path.join('special://home', 'addons', 'packages')) dp = xbmcgui.DialogProgress() dp.create("Starting up", "Initializing ", '', 'Please Stand By....') # lib = os.path.join(path, name + '.zip') lib = os.path.join(path, newest_v + '.zip') addonfolder = xbmc.translatePath(os.path.join('special://', 'home', 'addons')) if os.path.exists(lib): os.remove(lib) downloader.download(newest_v_url, lib, dp, timeout=120) try: # xbmc.executebuiltin("InstallAddon(%s)" % newest_v) extract.all(lib, addonfolder, '') time.sleep(2) except IOError as e: kodi.message("Failed to open required files", "Error is: ", str(e)) return False
def list_adult(): if settings.getSetting('adult') == 'true': confirm = xbmcgui.Dialog().yesno( "Please Confirm", " Please confirm that you are at least 18 years of age.", " ", " ", "NO (EXIT)", "YES (ENTER)") if confirm: url = 'https://indigo.tvaddons.co/installer/sources/xxx.php' link = kodi.open_url(url).replace('\r', '').replace('\n', '').replace( '\t', '') match = re.compile( "'name' => '(.+?)'.+?dataUrl' => '(.+?)'.+?xmlUrl' => '(.+?)'.+?downloadUrl' => '(.+?)'" ).findall(link) for name, dataurl, url, repourl in match: lang = 'Adults Only' add_2help_dir(name + ' (' + lang + ')', url, 'getaddoninfo', '', fanart, dataurl, repourl) if len(match) == 0: return else: kodi.set_setting('adult', 'false') return viewsetter.set_view("sets")
def getaddoninfo(url, dataurl, repourl): lang = 'Adults Only' link = kodi.open_url(url).replace('\r', '').replace('\n', '').replace('\t', '') match = re.compile('<addon id="(.+?)".+?ame="(.+?)".+?ersion="(.+?)"').findall(link) for adid, name, version in match: dload = dataurl + adid + "/" + adid + "-" + version + ".zip" addHELPDir(name + ' (' + lang + ')', dload, 'addoninstall', '', fanart, '', 'addon', repourl, '', '') viewsetter.set_view("sets")
def get_dir(script, source_url): match = re.findall(script + '(-.+?)?.zip', kodi.open_url(source_url)) match.sort(reverse=True) version = match[0] if match else '' newest_v_url = source_url + script + version + '.zip' lib = os.path.join(packages_path, script + version + '.zip') os.remove(lib) if os.path.exists(lib) else '' downloader.download(newest_v_url, lib, None, timeout=120, silent=True) extract.extract_all(os.path.join(packages_path, lib), addonspath, None) addon_able.set_enabled(script) xbmc.executebuiltin("UpdateLocalAddons()")
def NEW_Depend(dataurl, script): kodi.log("SCRIPT LOOKED FOR IS : " + script) if "github" in dataurl: kodi.log("Is Github Repo") GITHUBGET(script, dataurl) else: kodi.log("Is Private Repo") try: a_list = [] link = kodi.open_url(tvpath) if script in link: script_url = tvpath + script + '/' link = kodi.open_url(script_url) matcher = script + '-(.+?).zip' match = re.compile(matcher).findall(link) for version in match: a_list.append(version) a_list.sort(cmp=ver_cmp, reverse=True) orglist = script_url + script + '-' + a_list[0] + '.zip' kodi.log(' DOWNLOADING TVA FILE to ' + script + '.zip') DEPENDINSTALL(script, orglist) else: link = kodi.open_url(kodi_url) if script in link: script_url = kodi_url + script + '/' link = kodi.open_url(script_url) matcher = script + '-(.+?).zip' match = re.compile(matcher).findall(link) for version in match: a_list.append(version) a_list.sort(cmp=ver_cmp, reverse=True) orglist = script_url + script + '-' + a_list[0] + '.zip' kodi.log(' DOWNLOADING ORG FILE to ' + script + '.zip') DEPENDINSTALL(script, orglist) else: orglist = dataurl + script + '/' + script + '-' try: script_urls = dataurl + script + '/' link = kodi.open_url(script_urls) if not link: script_url = script_urls.replace("raw.", "").replace("/master/", "/tree/master/") link = kodi.open_url(script_url) if "Invalid request" in link: kodi.log("DEAD REPO LOCATION = " + dataurl) else: matcher = script + '-(.+?).zip' match = re.compile(matcher).findall(link) for version in match: a_list.append(version) a_list.sort(cmp=ver_cmp, reverse=True) orglist += a_list[0] + '.zip' kodi.log(' DOWNLOADING NATIVE to ' + script + '.zip') DEPENDINSTALL(script, orglist) except Exception as e: kodi.log(str(e)) kodi.log("No local depend found = " + script + " Unfound URL is " + orglist) except Exception as e: kodi.log(str(e)) kodi.log("FAILED TO GET DEPENDS") traceback.print_exc(file=sys.stdout)
def get_github(script, dataurl): try: link = kodi.open_url(tvpath) if script in link: script_url = tvpath + script + '/' version, orglist = get_url(script, script_url, link) kodi.log(' DOWNLOADING TVA FILE to ' + script + version + '.zip') depend_install(script, orglist) else: link = kodi.open_url(kodi_url) if script in link: script_url = kodi_url + script + '/' version, orglist = get_url(script, script_url, link) kodi.log(' DOWNLOADING KODI FILE to ' + script + version + '.zip') depend_install(script, orglist) else: fix_urls = dataurl + script + '/' fixed_url = fix_urls.replace("raw/", "").replace("/master/", "/blob/master/") \ .replace("githubusercontent", "github") link = kodi.open_url(fixed_url) if link and "Invalid request" not in link: version, orglist = get_url(script, fixed_url, link) kodi.log(' DOWNLOADING NATIVE to ' + script + version + '.zip') depend_install(script, orglist) else: fixed_url = fix_urls.replace("raw/", "").replace("/master/", "/tree/master/") \ .replace("githubusercontent", "github") link = kodi.open_url(fixed_url) if link and "Invalid request" not in link: version, orglist = get_url(script, fixed_url, link) kodi.log(' DOWNLOADING NATIVE to ' + script + version + '.zip') depend_install(script, orglist) else: kodi.log("DEAD REPO LOCATION = " + dataurl) except Exception as e: kodi.log("Failed to find required files " + str(e)) traceback.print_exc(file=sys.stdout)
def keymaps(): try: link = kodi.open_url(Keymaps_URL).replace('\n', '').replace('\r', '') except IOError: kodi.addDir("No Keymaps Available", '', '', artwork + 'unkeymap.png') kodi.log('Could not open keymaps URL') return match = re.compile('name="(.+?)".+?rl="(.+?)".+?mg="(.+?)".+?anart="(.+?)".+?ersion="(.+?)".+?ash="(.+?)"').findall( link) if os.path.isfile(KEYBOARD_FILE): kodi.addDir("Remove Current Keymap Configuration", '', 'uninstall_keymap', artwork + 'unkeymap.png') for name, url, iconimage, fanart, version, description in match: name = "[COLOR white][B]" + name + "[/B][/COLOR]" kodi.addDir(name, url, 'install_keymap', artwork + 'keymapadd.png') viewsetter.set_view("files")
def hub_install(script, script_url, silent=False, dp=None): version, newest_v_url = get_url(script, script_url, kodi.open_url(script_url)) kodi.log("Looking for : " + newest_v_url) if not silent: dp = xbmcgui.DialogProgress() dp.create("Starting up", "Initializing ", '', 'Please Stand By....') lib = os.path.join(packages_path, script + version + '.zip') os.remove(lib) if os.path.exists(lib) else '' downloader.download(newest_v_url, lib, dp, timeout=120) try: extract.extract_all(lib, addon_folder, None) time.sleep(2) except IOError as e: kodi.message("Failed to open required files", "Error is: ", str(e)) return False
def GITHUBGET(script, dataurl): try: fix_urls = dataurl + script + '/' fixed_url = fix_urls.replace("raw/", "").replace("/master/", "/blob/master/")\ .replace("githubusercontent", "github") a_list = [] link = kodi.open_url(tvpath) if script in link: script_url = tvpath + script + '/' link = kodi.open_url(script_url) matcher = script + '-(.+?).zip' match = re.compile(matcher).findall(link) for version in match: a_list.append(version) a_list.sort(cmp=ver_cmp, reverse=True) orglist = script_url + script + '-' + a_list[0] + '.zip' kodi.log(' DOWNLOADING TVA FILE to ' + script + '.zip') DEPENDINSTALL(script, orglist) else: link = kodi.open_url(kodi_url) if script in link: script_url = kodi_url + script + '/' link = kodi.open_url(script_url) matcher = script + '-(.+?).zip' match = re.compile(matcher).findall(link) for version in match: a_list.append(version) a_list.sort(cmp=ver_cmp, reverse=True) orglist = script_url + script + '-' + a_list[0] + '.zip' kodi.log(' DOWNLOADING ORG FILE to ' + script + '.zip') # kodi.log('From: '+orglist) DEPENDINSTALL(script, orglist) else: try: link = kodi.open_url(fixed_url) if link: matcher = script + '-(.+?).zip' match = re.compile(matcher).findall(link) for version in match: a_list.append(version) # a_list.sort(cmp=ver_cmp, reverse=True) a_list.sort(reverse=True) orglist = dataurl + script + '/' + script + '-' + a_list[0] + '.zip' # kodi.log(' DOWNLOADING to ' + script + '.zip') DEPENDINSTALL(script, orglist) kodi.log("TRYING NATIVE LOCATION") if "Invalid request" in link: kodi.log("DEAD REPO LOCATION = " + dataurl) else: matcher = script + '-(.+?).zip' match = re.compile(matcher).findall(link) for version in match: a_list.append(version) # a_list.sort(cmp=ver_cmp, reverse=True) a_list.sort(reverse=True) orglist = dataurl + script + '/' + script + '-' + a_list[0] + '.zip' kodi.log(' DOWNLOADING NATIVE to ' + script + '.zip') DEPENDINSTALL(script, orglist) except Exception as e: kodi.log("Could not find required files " + str(e)) traceback.print_exc(file=sys.stdout) except Exception as e: kodi.log("Failed to find required files " + str(e)) traceback.print_exc(file=sys.stdout)