def checkSkin(): wiz.log("[Build Check] Invalid Skin Check Start") DEFAULTSKIN = wiz.getS('defaultskin') DEFAULTNAME = wiz.getS('defaultskinname') DEFAULTIGNORE = wiz.getS('defaultskinignore') if not DEFAULTSKIN == '': if os.path.exists(os.path.join(ADDONS, DEFAULTSKIN)): if DIALOG.yesno(ADDONTITLE, "It seems that the skin has been set back to [COLOR yellow]%s[/COLOR]" % SKIN[5:].title(), "Would you like to set the skin back to:", '[COLOR yellow]%s[/COLOR]' % DEFAULTNAME): gotoskin = DEFAULTSKIN gotoname = DEFAULTNAME else: wiz.log("Skin was not reset"); wiz.setS('defaultskinignore', 'true') else: wiz.setS('defaultskin', ''); wiz.setS('defaultskinname', ''); DEFAULTSKIN = ''; DEFAULTNAME = '' if DEFAULTSKIN == '': skinname = [] skinlist = [] for folder in glob.glob(os.path.join(ADDONS, 'skin.*/')): xml = "%s/addon.xml" % folder if os.path.exists(xml): f = open(xml,mode='r'); g = f.read().replace('\n','').replace('\r','').replace('\t',''); f.close(); match = re.compile('<addon.+?id="(.+?)".+?>').findall(g) match2 = re.compile('<addon.+?name="(.+?)".+?>').findall(g) wiz.log("%s: %s" % (folder, str(match[0]))) if len(match) > 0: skinlist.append(str(match[0])); skinname.append(str(match2[0])) else: wiz.log("ID not found for %s" % folder) else: wiz.log("ID not found for %s" % folder) if len(skinlist) > 0: if len(skinlist) > 1: if DIALOG.yesno(ADDONTITLE, "It seems that the skin has been set back to [COLOR yellow]%s[/COLOR]" % SKIN[5:].title(), "Would you like to view a list of avaliable skins?"): choice = DIALOG.select("Select skin to switch to!", skinname) if choice == -1: wiz.log("Skin was not reset"); wiz.setS('defaultskinignore', 'true') else: gotoskin = skinlist[choice] gotoname = skinname[choice] else: wiz.log("Skin was not reset"); wiz.setS('defaultskinignore', 'true') else: if DIALOG.yesno(ADDONTITLE, "It seems that the skin has been set back to [COLOR yellow]%s[/COLOR]" % SKIN[5:].title(), "Would you like to set the skin back to:", '[COLOR yellow]%s[/COLOR]' % skinname[0]): gotoskin = skinlist[0] gotoname = skinname[0] else: wiz.log("Skin was not reset"); wiz.setS('defaultskinignore', 'true') else: wiz.log("No skins found in addons folder."); wiz.setS('defaultskinignore', 'true') if gotoskin: skinSwitch.swapSkins(gotoskin) x = 0 xbmc.sleep(1000) while not xbmc.getCondVisibility("Window.isVisible(yesnodialog)"): if x == 150: break x += 1 xbmc.sleep(200) if xbmc.getCondVisibility("Window.isVisible(yesnodialog)"): xbmc.executebuiltin('SetFocus(11)') xbmc.executebuiltin('Action(Select)') wiz.LogNotify("Skin Swap", 'Skin reset to %s' % gotoname) else: wiz.LogNotify(ADDONTITLE,'[COLOR red]Skin Swap Timed Out![/COLOR]') wiz.log("[Build Check] Invalid Skin Check End")
def checkSkin(): wiz.log("[Build Check] Invalid Skin Check Start") DEFAULTSKIN = wiz.getS('defaultskin') DEFAULTNAME = wiz.getS('defaultskinname') DEFAULTIGNORE = wiz.getS('defaultskinignore') gotoskin = False if not DEFAULTSKIN == '': if os.path.exists(os.path.join(ADDONS, DEFAULTSKIN)): if DIALOG.yesno(ADDONTITLE, "[COLOR %s]It seems that the skin has been set back to [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Would you like to set the skin back to:[/COLOR]", '[COLOR %s]%s[/COLOR]' % (COLOR1, DEFAULTNAME)): gotoskin = DEFAULTSKIN gotoname = DEFAULTNAME else: wiz.log("Skin was not reset", xbmc.LOGNOTICE); wiz.setS('defaultskinignore', 'true'); gotoskin = False else: wiz.setS('defaultskin', ''); wiz.setS('defaultskinname', ''); DEFAULTSKIN = ''; DEFAULTNAME = '' if DEFAULTSKIN == '': skinname = [] skinlist = [] for folder in glob.glob(os.path.join(ADDONS, 'skin.*/')): xml = "%s/addon.xml" % folder if os.path.exists(xml): f = open(xml,mode='r'); g = f.read().replace('\n','').replace('\r','').replace('\t',''); f.close(); match = wiz.parseDOM(g, 'addon', ret='id') match2 = wiz.parseDOM(g, 'addon', ret='name') wiz.log("%s: %s" % (folder, str(match[0])), xbmc.LOGNOTICE) if len(match) > 0: skinlist.append(str(match[0])); skinname.append(str(match2[0])) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) if len(skinlist) > 0: if len(skinlist) > 1: if DIALOG.yesno(ADDONTITLE, "[COLOR %s]It seems that the skin has been set back to [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Would you like to view a list of avaliable skins?[/COLOR]"): choice = DIALOG.select("Select skin to switch to!", skinname) if choice == -1: wiz.log("Skin was not reset", xbmc.LOGNOTICE); wiz.setS('defaultskinignore', 'true') else: gotoskin = skinlist[choice] gotoname = skinname[choice] else: wiz.log("Skin was not reset", xbmc.LOGNOTICE); wiz.setS('defaultskinignore', 'true') else: if DIALOG.yesno(ADDONTITLE, "[COLOR %s]It seems that the skin has been set back to [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Would you like to set the skin back to:[/COLOR]", '[COLOR %s]%s[/COLOR]' % (COLOR1, skinname[0])): gotoskin = skinlist[0] gotoname = skinname[0] else: wiz.log("Skin was not reset", xbmc.LOGNOTICE); wiz.setS('defaultskinignore', 'true') else: wiz.log("No skins found in addons folder.", xbmc.LOGNOTICE); wiz.setS('defaultskinignore', 'true'); gotoskin = False if gotoskin: skinSwitch.swapSkins(gotoskin) x = 0 xbmc.sleep(1000) while not xbmc.getCondVisibility("Window.isVisible(yesnodialog)") and x < 150: x += 1 xbmc.sleep(200) if xbmc.getCondVisibility("Window.isVisible(yesnodialog)"): wiz.ebi('SendClick(11)') wiz.lookandFeelData('restore') else: wiz.LogNotify("[COLOR %s]%s[/COLOR]" % (COLOR1, ADDONTITLE),'[COLOR %s]Skin Swap Timed Out![/COLOR]' % COLOR2) wiz.log("[Build Check] Invalid Skin Check End", xbmc.LOGNOTICE)
def checkUpdate(): BUILDNAME = wiz.getS('buildname') BUILDVERSION = wiz.getS('buildversion') link = wiz.openURL(BUILDFILE).replace('\n','').replace('\r','').replace('\t','') match = re.compile('name="%s".+?ersion="(.+?)"' % BUILDNAME).findall(link) if len(match) > 0: version = match[0] wiz.setS('latestversion', version) if version > BUILDVERSION: notify.updateWindow() else: wiz.log("[Check Updates] [Installed Version: %s] [Current Version: %s]" % (BUILDVERSION, version)) else: wiz.log("[Check Updates] ERROR: Unable to find build version in build text file")
def updateDebrid(do, who): file = DEBRIDID[who]['file'] settings = DEBRIDID[who]['settings'] data = DEBRIDID[who]['data'] addonid = wiz.addonId(DEBRIDID[who]['plugin']) saved = DEBRIDID[who]['saved'] default = DEBRIDID[who]['default'] user = addonid.getSetting(default) suser = wiz.getS(saved) name = DEBRIDID[who]['name'] icon = DEBRIDID[who]['icon'] if do == 'update': if not user == '': try: with open(file, 'w') as f: for debrid in data: f.write('<debrid>\n\t<id>%s</id>\n\t<value>%s</value>\n</debrid>\n' % (debrid, addonid.getSetting(debrid))) f.close() user = addonid.getSetting(default) wiz.setS(saved, user) wiz.LogNotify("[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Datos de Real Debrid: Guardados![/COLOR]' % COLOR2, 2000, icon) except Exception, e: wiz.log("[Real Debrid Data] Unable to Update %s (%s)" % (who, str(e)), xbmc.LOGERROR) else: wiz.LogNotify("[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Datos de Real Debrid: No registrado![/COLOR]' % COLOR2, 2000, icon)
def onInit(self): self.title = 101 self.okbutton = 201 self.trakt = 301 self.debrid = 302 self.login = 303 self.sources = 304 self.profiles = 305 self.advanced = 306 self.favourites = 307 self.superfav = 308 self.repo = 309 self.whitelist = 310 self.cache = 311 self.packages = 312 self.thumbs = 313 self.showdialog() self.controllist = [self.trakt, self.debrid, self.login, self.sources, self.profiles, self.advanced, self.favourites, self.superfav, self.repo, self.whitelist, self.cache, self.packages, self.thumbs] self.controlsettings = ['keeptrakt', 'keepdebrid', 'keeplogin', 'keepsources', 'keepprofiles', 'keepadvanced', 'keepfavourites', 'keeprepos', 'keepsuper', 'keepwhitelist', 'clearcache', 'clearpackages', 'clearthumbs'] for item in self.controllist: if wiz.getS(self.controlsettings[self.controllist.index(item)]) == 'true': self.getControl(item).setSelected(True)
def updateTrakt(do, who): file = TRAKTID[who]['file'] settings = TRAKTID[who]['settings'] data = TRAKTID[who]['data'] addonid = wiz.addonId(TRAKTID[who]['plugin']) saved = TRAKTID[who]['saved'] default = TRAKTID[who]['default'] user = addonid.getSetting(default) suser = wiz.getS(saved) name = TRAKTID[who]['name'] icon = TRAKTID[who]['icon'] if do == 'update': if not user == '': try: with open(file, 'w') as f: for trakt in data: f.write('<trakt>\n\t<id>%s</id>\n\t<value>%s</value>\n</trakt>\n' % (trakt, addonid.getSetting(trakt))) f.close() user = addonid.getSetting(default) wiz.setS(saved, user) wiz.LogNotify("[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Trakt Data: Saved![/COLOR]' % COLOR2, 2000, icon) except Exception, e: wiz.log("[Trakt Data] Unable to Update %s (%s)" % (who, str(e)), xbmc.LOGERROR) else: wiz.LogNotify("[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Trakt Data: Not Registered![/COLOR]' % COLOR2, 2000, icon)
def checkUpdate(): BUILDNAME = wiz.getS('buildname') BUILDVERSION = wiz.getS('buildversion') link = wiz.openURL(BUILDFILE).replace('\n','').replace('\r','').replace('\t','') match = re.compile('name="%s".+?ersion="(.+?)".+?con="(.+?)".+?anart="(.+?)"' % BUILDNAME).findall(link) if len(match) > 0: version = match[0][0] icon = match[0][1] fanart = match[0][2] wiz.setS('latestversion', version) if version > BUILDVERSION: if DISABLEUPDATE == 'false': wiz.log("[Check Updates] [Installed Version: %s] [Current Version: %s] Opening Update Window" % (BUILDVERSION, version), xbmc.LOGNOTICE) notify.updateWindow(BUILDNAME, BUILDVERSION, version, icon, fanart) else: wiz.log("[Check Updates] [Installed Version: %s] [Current Version: %s] Update Window Disabled" % (BUILDVERSION, version), xbmc.LOGNOTICE) else: wiz.log("[Check Updates] [Installed Version: %s] [Current Version: %s]" % (BUILDVERSION, version), xbmc.LOGNOTICE) else: wiz.log("[Check Updates] ERROR: Unable to find build version in build text file", xbmc.LOGERROR)
def checkUpdate(): BUILDNAME = wiz.getS('buildname') BUILDVERSION = wiz.getS('buildversion') link = wiz.openURL(BUILDFILE).replace('\n','').replace('\r','').replace('\t','') match = re.compile('name="%s".+?ersion="(.+?)"' % BUILDNAME).findall(link) if len(match) > 0: version = match[0] wiz.setS('latestversion', version) if version > BUILDVERSION: yes_pressed = DIALOG.yesno(ADDONTITLE,"New version of your current build avaliable: %s v%s" % (BUILDNAME, version), "Click Go to Build Page to install update.", yeslabel="Go to Build Page", nolabel="Ignore for 3 days") if yes_pressed: wiz.log("[Check Updates] [Installed Version: %s] [Current Version: %s] [User Selected: Install build]" % (BUILDVERSION, version)) url = 'plugin://%s/?mode=viewbuild&name=%s' % (ADDON_ID, urllib.quote_plus(BUILDNAME)) xbmc.executebuiltin('ActivateWindow(10025 ,%s, return)' % url) wiz.setS('lastbuildcheck', str(NEXTCHECK)) else: wiz.log("[Check Updates] [Installed Version: %s] [Current Version: %s] [User Selected: Wait 3 days]" % (BUILDVERSION, version)) DIALOG.ok(ADDONTITLE, 'You can still update %s to %s from the %s.' % (BUILDNAME, version, ADDONTITLE)) wiz.setS('lastbuildcheck', str(THREEDAYS)) else: wiz.log("[Check Updates] [Installed Version: %s] [Current Version: %s]" % (BUILDVERSION, version)) else: wiz.log("[Check Updates] ERROR: Unable to find build version in build text file")
def autoUpdate(who): if who == 'all': for log in DEBRIDID: if os.path.exists(DEBRIDID[log]['path']): autoUpdate(log) elif DEBRIDID[who]: if os.path.exists(DEBRIDID[who]['path']): u = debridUser(who) su = wiz.getS(DEBRIDID[who]['saved']) n = DEBRIDID[who]['name'] if u == None or u == '': return elif not u == su: if DIALOG.yesno(ADDONTITLE, "Would you like to save the Real Debrid data for %s?" % n, "Addon: [COLOR green][B]%s[/B][/COLOR]" % u, "Saved: [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Saved: [COLOR red][B]None[/B][/COLOR]', yeslabel="Yes Save", nolabel="No Cancel"): debridIt('update', who)
def autoUpdate(who): if who == 'all': for log in DEBRIDID: if os.path.exists(DEBRIDID[log]['path']): autoUpdate(log) elif DEBRIDID[who]: if os.path.exists(DEBRIDID[who]['path']): u = debridUser(who) su = wiz.getS(DEBRIDID[who]['saved']) n = DEBRIDID[who]['name'] if u == None or u == '': return elif su == '': debridIt('update', who) elif not u == su: if DIALOG.yesno(ADDONTITLE, "[COLOR %s]Quieres guardar los datos de [COLOR %s]Real Debrid[/COLOR] para [COLOR %s]%s[/COLOR]?" % (COLOR2, COLOR1, COLOR1, n), "Addon: [COLOR green][B]%s[/B][/COLOR]" % u, "Guardado:[/COLOR] [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Guardado:[/COLOR] [COLOR red][B]Ninguno[/B][/COLOR]', yeslabel="[B][COLOR green]Guardar datos[/COLOR][/B]", nolabel="[B][COLOR red]No, Cancelar[/COLOR][/B]"): debridIt('update', who) else: debridIt('update', who)
def autoUpdate(who): if who == 'all': for log in DEBRIDID: if os.path.exists(DEBRIDID[log]['path']): autoUpdate(log) elif DEBRIDID[who]: if os.path.exists(DEBRIDID[who]['path']): u = debridUser(who) su = wiz.getS(DEBRIDID[who]['saved']) n = DEBRIDID[who]['name'] if u == None or u == '': return elif su == '': debridIt('update', who) elif not u == su: if DIALOG.yesno(ADDONTITLE, "[COLOR %s]Would you like to save the [COLOR %s]Real Debrid[/COLOR] data for [COLOR %s]%s[/COLOR]?" % (COLOR2, COLOR1, COLOR1, n), "Addon: [COLOR green][B]%s[/B][/COLOR]" % u, "Saved:[/COLOR] [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Saved:[/COLOR] [COLOR red][B]None[/B][/COLOR]', yeslabel="[B][COLOR green]Save Data[/COLOR][/B]", nolabel="[B][COLOR red]No Cancel[/COLOR][/B]"): debridIt('update', who) else: debridIt('update', who)
def autoUpdate(who): if who == 'all': for log in TRAKTID: if os.path.exists(TRAKTID[log]['path']): autoUpdate(log) elif TRAKTID[who]: if os.path.exists(TRAKTID[who]['path']): u = traktUser(who) su = wiz.getS(TRAKTID[who]['saved']) n = TRAKTID[who]['name'] if u == None or u == '': return elif su == '': traktIt('update', who) elif not u == su: if DIALOG.yesno(ADDONTITLE, "[COLOR %s]Would you like to save the [COLOR %s]Trakt Data[/COLOR] for [COLOR %s]%s[/COLOR]?" % (COLOR2, COLOR1, COLOR1, n), "Addon: [COLOR springgreen][B]%s[/B][/COLOR]" % u, "Saved:[/COLOR] [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Saved:[/COLOR] [COLOR red][B]None[/B][/COLOR]', yeslabel="[B][COLOR springgreen]Save Data[/COLOR][/B]", nolabel="[B][COLOR red]No Cancel[/COLOR][/B]"): traktIt('update', who) else: traktIt('update', who)
def updateDebrid(do, who): file = DEBRIDID[who]['file'] settings = DEBRIDID[who]['settings'] data = DEBRIDID[who]['data'] addonid = wiz.addonId(DEBRIDID[who]['plugin']) saved = DEBRIDID[who]['saved'] default = DEBRIDID[who]['default'] user = addonid.getSetting(default) suser = wiz.getS(saved) name = DEBRIDID[who]['name'] icon = DEBRIDID[who]['icon'] if do == 'update': if not user == '': with open(file, 'w') as f: for debrid in data: f.write('<debrid>\n\t<id>%s</id>\n\t<value>%s</value>\n</debrid>\n' % (debrid, addonid.getSetting(debrid))) f.close() user = addonid.getSetting(default) wiz.setS(saved, user) wiz.LogNotify(name,'Real Debrid Data: [COLOR green]Saved![/COLOR]', 2000, icon) else: wiz.LogNotify(name,'Real Debrid Data: [COLOR red]Not Registered![/COLOR]', 2000, icon) elif do == 'restore': if os.path.exists(file): f = open(file,mode='r'); g = f.read().replace('\n','').replace('\r','').replace('\t',''); f.close(); match = re.compile('<debrid><id>(.+?)</id><value>(.+?)</value></debrid>').findall(g) if len(match) > 0: for debrid, value in match: addonid.setSetting(debrid, value) user = addonid.getSetting(default) wiz.setS(saved, user) wiz.LogNotify(name,'Real Debrid: [COLOR green]Restored![/COLOR]', 2000, icon) #else: wiz.LogNotify(name,'Real Debrid Data: [COLOR red]Not Found![/COLOR]', 2000, icon) elif do == 'clearaddon': wiz.log('%s SETTINGS: %s' % (name, settings)) if os.path.exists(settings): f = open(settings,"r"); lines = f.readlines(); f.close() f = open(settings,"w") for line in lines: match = re.compile('<setting.+?id="(.+?)".+?/>').findall(line) if len(match) == 0: f.write(line) elif match[0] not in data: f.write(line) else: wiz.log('[Debrid Clear Addon] Removing Line: %s' % line) f.close() wiz.LogNotify(name,'Addon Data: [COLOR green]Cleared![/COLOR]', 2000, icon) else: wiz.LogNotify(name,'Addon Data: [COLOR red]Clear Failed![/COLOR]', 2000, icon) xbmc.executebuiltin('Container.Refresh')
def importlist(who): if who == 'all': for log in TRAKTID: if os.path.exists(TRAKTID[log]['file']): importlist(log) elif TRAKTID[who]: if os.path.exists(TRAKTID[who]['file']): d = TRAKTID[who]['default'] sa = TRAKTID[who]['saved'] su = wiz.getS(sa) n = TRAKTID[who]['name'] f = open(TRAKTID[who]['file'], mode='r') g = f.read().replace('\n', '').replace('\r', '').replace('\t', '') f.close() m = re.compile('<trakt><id>%s</id><value>(.+?)</value></trakt>' % d).findall(g) if len(m) > 0: if not m[0] == su: if DIALOG.yesno( ADDONTITLE, "[COLOR %s]Would you like to import the [COLOR %s]Trakt Data[/COLOR] for [COLOR %s]%s[/COLOR]?" % (COLOR2, COLOR1, COLOR1, n), "File: [COLOR springgreen][B]%s[/B][/COLOR]" % m[0], "Saved:[/COLOR] [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Saved:[/COLOR] [COLOR red][B]None[/B][/COLOR]', yeslabel="[B]Save Data[/B]", nolabel="[B]No Cancel[/B]"): wiz.setS(sa, m[0]) wiz.log('[Import Data] %s: %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log( '[Import Data] Declined Import(%s): %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log( '[Import Data] Duplicate Entry(%s): %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log('[Import Data] No Match(%s): %s' % (who, str(m)), xbmc.LOGNOTICE)
def importlist(who): if who == 'all': for log in TRAKTID: if os.path.exists(TRAKTID[log]['file']): importlist(log) elif TRAKTID[who]: if os.path.exists(TRAKTID[who]['file']): d = TRAKTID[who]['default'] sa = TRAKTID[who]['saved'] su = wiz.getS(sa) n = TRAKTID[who]['name'] f = open(TRAKTID[who]['file'], mode='r') g = f.read().replace('\n', '').replace('\r', '').replace('\t', '') f.close() m = re.compile('<trakt><id>%s</id><value>(.+?)</value></trakt>' % d).findall(g) if len(m) > 0: if not m[0] == su: if DIALOG.yesno( ADDONTITLE, "[COLOR %s]Willst du die [COLOR %s]Trakt[/COLOR] Daten fur [COLOR %s]%s[/COLOR] importieren?" % (COLOR2, COLOR1, COLOR1, n), "File: [COLOR lime][B]%s[/B][/COLOR]" % m[0], "Gespeichert:[/COLOR] [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Gespeichert:[/COLOR] [COLOR red][B]Keine[/B][/COLOR]', yeslabel="[B]JA, Daten speichern[/B]", nolabel="[B]NEIN, abbrechen[/B]"): wiz.setS(sa, m[0]) wiz.log('[Import Data] %s: %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log( '[Import Data] Declined Import(%s): %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log( '[Import Data] Duplicate Entry(%s): %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log('[Import Data] No Match(%s): %s' % (who, str(m)), xbmc.LOGNOTICE)
def importlist(who): if who == 'all': for log in DEBRIDID: if os.path.exists(DEBRIDID[log]['file']): importlist(log) elif DEBRIDID[who]: if os.path.exists(DEBRIDID[who]['file']): d = DEBRIDID[who]['default'] sa = DEBRIDID[who]['saved'] su = wiz.getS(sa) n = DEBRIDID[who]['name'] f = open(DEBRIDID[who]['file'], mode='r') g = f.read().replace('\n', '').replace('\r', '').replace('\t', '') f.close() m = re.compile('<debrid><id>%s</id><value>(.+?)</value></debrid>' % d).findall(g) if len(m) > 0: if not m[0] == su: if DIALOG.yesno( ADDONTITLE, "[COLOR %s]Quieres importar los datos de [COLOR %s]Real Debrid[/COLOR] para [COLOR %s]%s[/COLOR]?" % (COLOR2, COLOR1, COLOR1, n), "Archivo: [COLOR green][B]%s[/B][/COLOR]" % m[0], "Guardado:[/COLOR] [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Guardado:[/COLOR] [COLOR red][B]None[/B][/COLOR]', yeslabel= "[B][COLOR green]Guardar datos[/COLOR][/B]", nolabel="[B][COLOR red]No, Cancelar[/COLOR][/B]"): wiz.setS(sa, m[0]) wiz.log('[Import Data] %s: %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log( '[Import Data] Declined Import(%s): %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log('[Import Data] Duplicate Entry(%s): %s' % (who, str(m))), xbmc.LOGNOTICE else: wiz.log('[Import Data] No Match(%s): %s' % (who, str(m)), xbmc.LOGNOTICE)
def importlist(who): if who == 'all': for log in DEBRIDID: if os.path.exists(DEBRIDID[log]['file']): importlist(log) elif DEBRIDID[who]: if os.path.exists(DEBRIDID[who]['file']): d = DEBRIDID[who]['default'] sa = DEBRIDID[who]['saved'] su = wiz.getS(sa) n = DEBRIDID[who]['name'] f = open(DEBRIDID[who]['file'],mode='r'); g = f.read().replace('\n','').replace('\r','').replace('\t',''); f.close(); m = re.compile('<debrid><id>%s</id><value>(.+?)</value></debrid>' % d).findall(g) if len(m) > 0: if not m[0] == su: if DIALOG.yesno(ADDONTITLE, "[COLOR %s]Quieres importar los datos de [COLOR %s]Real Debrid[/COLOR] para [COLOR %s]%s[/COLOR]?" % (COLOR2, COLOR1, COLOR1, n), "Archivo: [COLOR green][B]%s[/B][/COLOR]" % m[0], "Guardado:[/COLOR] [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Guardado:[/COLOR] [COLOR red][B]None[/B][/COLOR]', yeslabel="[B][COLOR green]Guardar datos[/COLOR][/B]", nolabel="[B][COLOR red]No, Cancelar[/COLOR][/B]"): wiz.setS(sa, m[0]) wiz.log('[Import Data] %s: %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log('[Import Data] Declined Import(%s): %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log('[Import Data] Duplicate Entry(%s): %s' % (who, str(m))), xbmc.LOGNOTICE else: wiz.log('[Import Data] No Match(%s): %s' % (who, str(m)), xbmc.LOGNOTICE)
def importlist(who): if who == 'all': for log in TRAKTID: if os.path.exists(TRAKTID[log]['file']): importlist(log) elif TRAKTID[who]: if os.path.exists(TRAKTID[who]['file']): d = TRAKTID[who]['default'] sa = TRAKTID[who]['saved'] su = wiz.getS(sa) n = TRAKTID[who]['name'] f = open(TRAKTID[who]['file'],mode='r'); g = f.read().replace('\n','').replace('\r','').replace('\t',''); f.close(); m = re.compile('<trakt><id>%s</id><value>(.+?)</value></trakt>' % d).findall(g) if len(m) > 0: if not m[0] == su: if DIALOG.yesno(ADDONTITLE, "[COLOR %s]Would you like to import the [COLOR %s]Trakt Data[/COLOR] for [COLOR %s]%s[/COLOR]?" % (COLOR2, COLOR1, COLOR1, n), "File: [COLOR springgreen][B]%s[/B][/COLOR]" % m[0], "Saved:[/COLOR] [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Saved:[/COLOR] [COLOR red][B]None[/B][/COLOR]', yeslabel="[B]Save Data[/B]", nolabel="[B]No Cancel[/B]"): wiz.setS(sa, m[0]) wiz.log('[Import Data] %s: %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log('[Import Data] Declined Import(%s): %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log('[Import Data] Duplicate Entry(%s): %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log('[Import Data] No Match(%s): %s' % (who, str(m)), xbmc.LOGNOTICE)
def importlist(who): if who == 'all': for log in DEBRIDID: if os.path.exists(DEBRIDID[log]['file']): importlist(log) elif DEBRIDID[who]: if os.path.exists(DEBRIDID[who]['file']): d = DEBRIDID[who]['default'] sa = DEBRIDID[who]['saved'] su = wiz.getS(sa) n = DEBRIDID[who]['name'] f = open(DEBRIDID[who]['file'],mode='r'); g = f.read().replace('\n','').replace('\r','').replace('\t',''); f.close(); m = re.compile('<debrid><id>%s</id><value>(.+?)</value></debrid>' % d).findall(g) if len(m) > 0: if not m[0] == su: if DIALOG.yesno(ADDONTITLE, "Would you like to import the Real Debrid data for %s?" % n, "File: [COLOR green][B]%s[/B][/COLOR]" % m[0], "Saved: [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Saved: [COLOR red][B]None[/B][/COLOR]', yeslabel="Yes Save", nolabel="No Cancel"): wiz.setS(sa, m[0]) wiz.log('[Import Data] %s: %s' % (who, str(m))) else: wiz.log('[Import Data] Declined Import(%s): %s' % (who, str(m))) else: wiz.log('[Import Data] Duplicate Entry(%s): %s' % (who, str(m))) else: wiz.log('[Import Data] No Match(%s): %s' % (who, str(m)))
def importlist(who): if who == 'all': for log in DEBRIDID: if os.path.exists(DEBRIDID[log]['file']): importlist(log) elif DEBRIDID[who]: if os.path.exists(DEBRIDID[who]['file']): d = DEBRIDID[who]['default'] sa = DEBRIDID[who]['saved'] su = wiz.getS(sa) n = DEBRIDID[who]['name'] f = open(DEBRIDID[who]['file'],mode='r'); g = f.read().replace('\n','').replace('\r','').replace('\t',''); f.close(); m = re.compile('<debrid><id>%s</id><value>(.+?)</value></debrid>' % d).findall(g) if len(m) > 0: if not m[0] == su: if DIALOG.yesno("[COLOR %s]%s[/COLOR]" % (COLOR1, ADDONTITLE), "[COLOR %s]Would you like to import the [COLOR %s]Real Debrid[/COLOR] Info for [COLOR %s]%s[/COLOR]?" % (COLOR2, COLOR1, COLOR1, n), "File: [COLOR green][B]%s[/B][/COLOR]" % m[0], "Saved:[/COLOR] [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Saved:[/COLOR] [COLOR red][B]None[/B][/COLOR]', yeslabel="[B][COLOR %s]Import Debrid[/COLOR][/B]" % COLOR2, nolabel="[B][COLOR %s]No, Cancel[/COLOR][/B]" % COLOR1): wiz.setS(sa, m[0]) wiz.log('[Import Data] %s: %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log('[Import Data] Declined Import(%s): %s' % (who, str(m)), xbmc.LOGNOTICE) else: wiz.log('[Import Data] Duplicate Entry(%s): %s' % (who, str(m))), xbmc.LOGNOTICE else: wiz.log('[Import Data] No Match(%s): %s' % (who, str(m)), xbmc.LOGNOTICE)
def importlist(who): if who == 'all': for log in LOGINID: if os.path.exists(LOGINID[log]['file']): importlist(log) elif LOGINID[who]: if os.path.exists(LOGINID[who]['file']): d = LOGINID[who]['default'] sa = LOGINID[who]['saved'] su = wiz.getS(sa) n = LOGINID[who]['name'] f = open(LOGINID[who]['file'],mode='r'); g = f.read().replace('\n','').replace('\r','').replace('\t',''); f.close(); m = re.compile('<login><id>%s</id><value>(.+?)</value></login>' % d).findall(g) if len(m) > 0: if not m[0] == su: if DIALOG.yesno(ADDONTITLE, "Would you like to import the Login data for %s?" % n, "File: [COLOR green][B]%s[/B][/COLOR]" % m[0], "Saved: [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Saved: [COLOR red][B]None[/B][/COLOR]', yeslabel="Yes Save", nolabel="No Cancel"): wiz.setS(sa, m[0]) wiz.log('[Import Data] %s: %s' % (who, str(m))) else: wiz.log('[Import Data] Declined Import(%s): %s' % (who, str(m))) else: wiz.log('[Import Data] Duplicate Entry(%s): %s' % (who, str(m))) else: wiz.log('[Import Data] No Match(%s): %s' % (who, str(m)))
def autoUpdate(who): if who == 'all': for log in LOGINID: if os.path.exists(LOGINID[log]['path']): autoUpdate(log) elif LOGINID[who]: if os.path.exists(LOGINID[who]['path']): u = loginUser(who) su = wiz.getS(LOGINID[who]['saved']) n = LOGINID[who]['name'] if u == None or u == '': return elif not u == su: if DIALOG.yesno( ADDONTITLE, "Would you like to save the Login data for %s?" % n, "Addon: [COLOR green][B]%s[/B][/COLOR]" % u, "Saved: [COLOR red][B]%s[/B][/COLOR]" % su if not su == '' else 'Saved: [COLOR red][B]None[/B][/COLOR]', yeslabel="Yes Save", nolabel="No Cancel"): loginIt('update', who)
def updateTrakt(do, who): file = TRAKTID[who]['file'] settings = TRAKTID[who]['settings'] data = TRAKTID[who]['data'] addonid = wiz.addonId(TRAKTID[who]['plugin']) saved = TRAKTID[who]['saved'] default = TRAKTID[who]['default'] user = addonid.getSetting(default) suser = wiz.getS(saved) name = TRAKTID[who]['name'] icon = TRAKTID[who]['icon'] if do == 'update': if not user == '': try: with open(file, 'w') as f: for trakt in data: f.write( '<trakt>\n\t<id>%s</id>\n\t<value>%s</value>\n</trakt>\n' % (trakt, addonid.getSetting(trakt))) f.close() user = addonid.getSetting(default) wiz.setS(saved, user) wiz.LogNotify( "[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Trakt Daten: Gespeichert![/COLOR]' % COLOR2, 2000, icon) except Exception, e: wiz.log( "[Trakt Data] Unable to Update %s (%s)" % (who, str(e)), xbmc.LOGERROR) else: wiz.LogNotify( "[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Trakt Daten: Nicht registriert![/COLOR]' % COLOR2, 2000, icon)
def updateDebrid(do, who): file = DEBRIDID[who]['file'] settings = DEBRIDID[who]['settings'] data = DEBRIDID[who]['data'] addonid = wiz.addonId(DEBRIDID[who]['plugin']) saved = DEBRIDID[who]['saved'] default = DEBRIDID[who]['default'] user = addonid.getSetting(default) suser = wiz.getS(saved) name = DEBRIDID[who]['name'] icon = DEBRIDID[who]['icon'] if do == 'update': if not user == '': try: with open(file, 'w') as f: for debrid in data: f.write( '<debrid>\n\t<id>%s</id>\n\t<value>%s</value>\n</debrid>\n' % (debrid, addonid.getSetting(debrid))) f.close() user = addonid.getSetting(default) wiz.setS(saved, user) wiz.LogNotify( "[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Real Debrid Data: Saved![/COLOR]' % COLOR2, 2000, icon) except Exception, e: wiz.log( "[Real Debrid Data] Unable to Update %s (%s)" % (who, str(e)), xbmc.LOGERROR) else: wiz.LogNotify( "[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Real Debrid Data: Not Registered![/COLOR]' % COLOR2, 2000, icon)
ADDON_ID = uservar.ADDON_ID ADDONTITLE = uservar.ADDONTITLE ADDON = wiz.addonId(ADDON_ID) DIALOG = xbmcgui.Dialog() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) REALFOLD = os.path.join(ADDONDATA, 'debrid') ICON = os.path.join(PLUGIN, 'icon.png') TODAY = date.today() TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) REAL_EXODUS = wiz.getS('realexodus') REAL_SPECTO = wiz.getS('realspecto') REAL_URL = wiz.getS('urlresolver') KEEPTRAKT = wiz.getS('keepdebrid') REALSAVE = wiz.getS('debridlastsave') EXODUS = 'plugin.video.exodus' SPECTO = 'plugin.video.specto' URLRESOLVER = 'script.module.urlresolver' PATHEXODUS = os.path.join(ADDONS, EXODUS) PATHSPECTO = os.path.join(ADDONS, SPECTO) PATHURL = os.path.join(ADDONS, URLRESOLVER) def debridUser(who): user=None if who == 'exodus' and os.path.exists(PATHEXODUS): ADD_EXODUS = wiz.addonId(EXODUS); user = ADD_EXODUS.getSetting('realdebrid.id') if who == 'specto' and os.path.exists(PATHSPECTO): ADD_SPECTO = wiz.addonId(SPECTO); user = ADD_SPECTO.getSetting('realdebrid_client_id')
ADDONTITLE = uservar.ADDONTITLE ADDON = wiz.addonId(ADDON_ID) DIALOG = xbmcgui.Dialog() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) ADDOND = os.path.join(USERDATA, 'addon_data') REALFOLD = os.path.join(ADDONDATA, 'debrid') ICON = os.path.join(PLUGIN, 'icon.png') TODAY = date.today() TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) KEEPTRAKT = wiz.getS('keepdebrid') REALSAVE = wiz.getS('debridlastsave') COLOR1 = uservar.COLOR1 COLOR2 = uservar.COLOR2 ORDER = [ 'gaiard', 'gaiapm', 'pmzer', 'serenrd', 'serenpm', 'rurlrd', 'rurlpm', 'urlrd', 'urlpm' ] DEBRIDID = { 'gaiard': { 'name': 'Gaia RD', 'plugin': 'plugin.video.gaia', 'saved':
ADDON = wiz.addonId(ADDON_ID) VERSION = wiz.addonInfo(ADDON_ID,'version') DIALOG = xbmcgui.Dialog() DP = xbmcgui.DialogProgress() HOME = xbmc.translatePath('special://home/') PROFILE = xbmc.translatePath('special://profile/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) FANART = os.path.join(PLUGIN, 'fanart.jpg') ICON = os.path.join(PLUGIN, 'icon.png') ART = os.path.join(PLUGIN, 'resources', 'art') SKIN = xbmc.getSkinDir() BUILDNAME = wiz.getS('buildname') BUILDVERSION = wiz.getS('buildversion') BUILDLATEST = wiz.getS('latestversion') BUILDCHECK = wiz.getS('lastbuildcheck') AUTOCLEANUP = wiz.getS('autoclean') AUTOCACHE = wiz.getS('clearcache') AUTOPACKAGES = wiz.getS('clearpackages') TRAKTSAVE = wiz.getS('traktlastsave') REALSAVE = wiz.getS('debridlastsave') KEEPTRAKT = wiz.getS('keeptrakt') KEEPREAL = wiz.getS('keepdebrid') INSTALLED = wiz.getS('installed') EXTRACT = wiz.getS('extract') EXTERROR = wiz.getS('errors') NOTIFY = wiz.getS('notify') NOTEID = wiz.getS('noteid')
def doDismiss(self): try: wiz.setS("notedismiss","true") wiz.log("[Notification] NotifyID %s Dismissed" % wiz.getS('noteid'), xbmc.LOGNOTICE) except: pass self.CloseWindow()
###################################################################################################################################################### ## ## STARTUP SERVICE ## ###################################################################################################################################################### import xbmc, xbmcaddon, xbmcgui, xbmcplugin, os, sys, xbmcvfs, glob import shutil import urllib2,urllib import re import uservar from datetime import date, datetime, timedelta from resources.libs import wizard as wiz AUTOCLEANUP = wiz.getS('autoclean') AUTOCACHE = wiz.getS('clearcache') AUTOPACKAGES = wiz.getS('clearpackages') if AUTOCLEANUP == 'true': if AUTOCACHE == 'true': wiz.log('[AUTO CLEAN UP][Cache: on]'); wiz.clearCache() else: wiz.log('[AUTO CLEAN UP][Cache: off]') if AUTOPACKAGES == 'true': wiz.log('[AUTO CLEAN UP][Packages: on]'); wiz.clearPackages('startup') else: wiz.log('[AUTO CLEAN UP][Packages: off]') else: wiz.log('[AUTO CLEAN UP: off]')
def firstRunSettings(): class firstRun(xbmcgui.WindowXMLDialog): def __init__(self, *args, **kwargs): self.whitelistcurrent = kwargs['current'] def onInit(self): self.title = 101 self.okbutton = 201 self.trakt = 301 self.debrid = 302 self.login = 303 self.sources = 304 self.profiles = 305 self.advanced = 306 self.favourites = 307 self.superfav = 308 self.repo = 309 self.whitelist = 310 self.cache = 311 self.packages = 312 self.thumbs = 313 self.showdialog() self.controllist = [ self.trakt, self.debrid, self.login, self.sources, self.profiles, self.advanced, self.favourites, self.superfav, self.repo, self.whitelist, self.cache, self.packages, self.thumbs ] self.controlsettings = [ 'keeptrakt', 'keepdebrid', 'keeplogin', 'keepsources', 'keepprofiles', 'keepadvanced', 'keepfavourites', 'keeprepos', 'keepsuper', 'keepwhitelist', 'clearcache', 'clearpackages', 'clearthumbs' ] for item in self.controllist: if wiz.getS(self.controlsettings[self.controllist.index( item)]) == 'true': self.getControl(item).setSelected(True) def showdialog(self): self.getControl(self.title).setLabel(ADDONTITLE) self.setFocus(self.getControl(self.okbutton)) def onClick(self, controlId): if controlId == self.okbutton: self.close() for item in self.controllist: at = self.controllist.index(item) if self.getControl(item).isSelected(): wiz.setS(self.controlsettings[at], 'true') else: wiz.setS(self.controlsettings[at], 'false') if self.getControl(self.whitelist).isSelected( ) and not self.whitelistcurrent == 'true': wiz.whiteList('edit') fr = firstRun("FirstRunSaveData.xml", ADDON.getAddonInfo('path'), 'DefaultSkin', current=wiz.getS('keepwhitelist')) fr.doModal() del fr
def get_settings(self): self.email_address = wiz.getS('email') self.__log('settings: len(email)=%d' % len(self.email_address)) self.skip_oldlog = wiz.getS('skip_oldlog') == 'true' self.__log('settings: skip_oldlog=%s' % self.skip_oldlog)
ADDON_ID = uservar.ADDON_ID ADDON = wiz.addonId(ADDON_ID) ADDONTITLE = uservar.ADDONTITLE DIALOG = xbmcgui.Dialog() DP = xbmcgui.DialogProgress() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) FANART = os.path.join(PLUGIN, 'fanart.jpg') ICON = os.path.join(PLUGIN, 'icon.png') ART = os.path.join(PLUGIN, 'resources', 'art') NOTIFY = wiz.getS('notify') NOTEID = wiz.getS('noteid') NOTEDISMISS = wiz.getS('notedismiss') TODAY = date.today() TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) NOTIFICATION = uservar.NOTIFICATION ENABLE = uservar.ENABLE FONTSETTINGS = uservar.FONTSETTINGS if not uservar.FONTSETTINGS == "" else "Font14" BACKGROUND = uservar.BACKGROUND if not uservar.BACKGROUND == "" else FANART HEADERTYPE = uservar.HEADERTYPE if uservar.HEADERTYPE == 'Image' else 'Text' HEADERMESSAGE = uservar.HEADERMESSAGE FONTHEADER = uservar.FONTHEADER if not uservar.FONTHEADER == "" else "Font16" HEADERIMAGE = uservar.HEADERIMAGE ############################
def firstRunSettings(): class firstRun(xbmcgui.WindowXMLDialog): def __init__(self,*args,**kwargs): self.whitelistcurrent = kwargs['current'] def onInit(self): self.title = 101 self.okbutton = 201 self.trakt = 301 self.debrid = 302 self.login = 303 self.sources = 304 self.profiles = 305 self.advanced = 306 self.favourites = 307 self.superfav = 308 self.repo = 309 self.whitelist = 310 self.cache = 311 self.packages = 312 self.thumbs = 313 self.showdialog() self.controllist = [self.trakt, self.debrid, self.login, self.sources, self.profiles, self.advanced, self.favourites, self.superfav, self.repo, self.whitelist, self.cache, self.packages, self.thumbs] self.controlsettings = ['keeptrakt', 'keepdebrid', 'keeplogin', 'keepsources', 'keepprofiles', 'keepadvanced', 'keepfavourites', 'keeprepos', 'keepsuper', 'keepwhitelist', 'clearcache', 'clearpackages', 'clearthumbs'] for item in self.controllist: if wiz.getS(self.controlsettings[self.controllist.index(item)]) == 'true': self.getControl(item).setSelected(True) def showdialog(self): self.getControl(self.title).setLabel(ADDONTITLE) self.setFocus(self.getControl(self.okbutton)) def onClick(self, controlId): if controlId == self.okbutton: self.close() for item in self.controllist: at = self.controllist.index(item) if self.getControl(item).isSelected(): wiz.setS(self.controlsettings[at], 'true') else: wiz.setS(self.controlsettings[at], 'false') if self.getControl(self.whitelist).isSelected() and not self.whitelistcurrent == 'true': wiz.whiteList('edit') fr = firstRun( "FirstRunSaveData.xml" , ADDON.getAddonInfo('path'), 'DefaultSkin', current=wiz.getS('keepwhitelist')) fr.doModal() del fr
ADDONPATH = wiz.addonInfo(ADDON_ID,'path') ADDONTITLE = 'SalonDigital' DIALOG = xbmcgui.Dialog() DP = xbmcgui.DialogProgress() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) FANART = os.path.join(ADDONPATH, 'fanart.jpg') ICON = os.path.join(ADDONPATH, 'icon.png') ART = os.path.join(ADDONPATH, 'resources', 'art') SKINFOLD = os.path.join(ADDONPATH, 'resources', 'skins', 'DefaultSkin', 'media') ADVANCED = os.path.join(USERDATA, 'advancedsettings.xml') NOTIFY = wiz.getS('notify') NOTEID = wiz.getS('noteid') NOTEDISMISS = wiz.getS('notedismiss') BUILDNAME = wiz.getS('buildname') BUILDVERSION = wiz.getS('buildversion') LATESTVERSION = wiz.checkBuild(BUILDNAME, 'version') TODAY = date.today() KODIV = float(xbmc.getInfoLabel("System.BuildVersion")[:4]) TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) UPDATECHECK = 0 NEXTCHECK = TODAY + timedelta(days=UPDATECHECK) NOTIFICATION = 'http://' ENABLE = 'No' HEADERTYPE = 'Text' HEADERMESSAGE = 'SalonDigital.....'
def doRemindMeLater(self): if not test == True: wiz.setS("notedismiss","false") wiz.log("[Notification] NotifyID %s Remind Me Later" % wiz.getS('noteid'), xbmc.LOGNOTICE) self.close()
def doDismiss(self): if not test == True: wiz.setS("notedismiss","true") wiz.log("[Notification] NotifyID %s Dismissed" % wiz.getS('noteid'), xbmc.LOGNOTICE) self.close()
ADDON_ID = uservar.ADDON_ID ADDONTITLE = uservar.ADDONTITLE ADDON = wiz.addonId(ADDON_ID) DIALOG = xbmcgui.Dialog() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) TRAKTFOLD = os.path.join(ADDONDATA, 'trakt') ICON = os.path.join(PLUGIN, 'icon.png') TODAY = date.today() TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) TRAKT_EXODUS = wiz.getS('exodus') TRAKT_SALTS = wiz.getS('salts') TRAKT_SALTSHD = wiz.getS('saltshd') TRAKT_ROYALWE = wiz.getS('royalwe') TRAKT_VELOCITY = wiz.getS('velocity') TRAKT_VELOKIDS = wiz.getS('velocitykids') TRAKT_SPECTO = wiz.getS('specto') TRAKT_TRAKT = wiz.getS('trakt') KEEPTRAKT = wiz.getS('keeptrakt') TRAKTSAVE = wiz.getS('traktlastsave') EXODUS = 'plugin.video.exodus' VELOCITY = 'plugin.video.velocity' VELOCITYKIDS = 'plugin.video.velocitykids' SALTS = 'plugin.video.salts' SALTSHD = 'plugin.video.saltshd.lite' ROYALWE = 'plugin.video.theroyalwe'
DIALOG = xbmcgui.Dialog() DP = xbmcgui.DialogProgress() HOME = xbmc.translatePath('special://home/') PROFILE = xbmc.translatePath('special://profile/') KODIHOME = xbmc.translatePath('special://xbmc/') ADDONS = os.path.join(HOME, 'addons') KODIADDONS = os.path.join(KODIHOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) FANART = os.path.join(ADDONPATH, 'fanart.jpg') ICON = os.path.join(ADDONPATH, 'icon.png') ART = os.path.join(ADDONPATH, 'resources', 'art') SKIN = xbmc.getSkinDir() BUILDNAME = wiz.getS('buildname') DEFAULTSKIN = wiz.getS('defaultskin') DEFAULTNAME = wiz.getS('defaultskinname') DEFAULTIGNORE = wiz.getS('defaultskinignore') BUILDVERSION = wiz.getS('buildversion') BUILDLATEST = wiz.getS('latestversion') BUILDCHECK = wiz.getS('lastbuildcheck') DISABLEUPDATE = wiz.getS('disableupdate') AUTOCLEANUP = wiz.getS('autoclean') AUTOCACHE = wiz.getS('clearcache') AUTOPACKAGES = wiz.getS('clearpackages') AUTOTHUMBS = wiz.getS('clearthumbs') AUTOFEQ = wiz.getS('autocleanfeq') AUTONEXTRUN = wiz.getS('nextautocleanup') TRAKTSAVE = wiz.getS('traktlastsave') REALSAVE = wiz.getS('debridlastsave')
def updateLogin(do, who): file = LOGINID[who]['file'] settings = LOGINID[who]['settings'] data = LOGINID[who]['data'] addonid = wiz.addonId(LOGINID[who]['plugin']) saved = LOGINID[who]['saved'] default = LOGINID[who]['default'] user = addonid.getSetting(default) suser = wiz.getS(saved) name = LOGINID[who]['name'] icon = LOGINID[who]['icon'] if do == 'update': if not user == '': with open(file, 'w') as f: for login in data: f.write( '<login>\n\t<id>%s</id>\n\t<value>%s</value>\n</login>\n' % (login, addonid.getSetting(login))) f.close() user = addonid.getSetting(default) wiz.setS(saved, user) wiz.LogNotify(name, 'Login Data: [COLOR green]Saved![/COLOR]', 2000, icon) else: wiz.LogNotify(name, 'login Data: [COLOR red]Not Registered![/COLOR]', 2000, icon) elif do == 'restore': if os.path.exists(file): f = open(file, mode='r') g = f.read().replace('\n', '').replace('\r', '').replace('\t', '') f.close() match = re.compile( '<login><id>(.+?)</id><value>(.+?)</value></login>').findall(g) if len(match) > 0: for login, value in match: addonid.setSetting(login, value) user = addonid.getSetting(default) wiz.setS(saved, user) wiz.LogNotify(name, 'login: [COLOR green]Restored![/COLOR]', 2000, icon) #else: wiz.LogNotify(name,'login Data: [COLOR red]Not Found![/COLOR]', 2000, icon) elif do == 'clearaddon': wiz.log('%s SETTINGS: %s' % (name, settings)) if os.path.exists(settings): f = open(set, "r") lines = f.readlines() f.close() f = open(settings, "w") for line in lines: match = re.compile('<setting.+?id="(.+?)".+?/>').findall(line) if len(match) == 0: f.write(line) elif match[0] not in data: f.write(line) else: wiz.log('Removing Line: %s' % line) f.close() wiz.LogNotify(name, 'Addon Data: [COLOR green]Cleared![/COLOR]', 2000, icon) else: wiz.LogNotify(name, 'Addon Data: [COLOR red]Clear Failed![/COLOR]', 2000, icon) xbmc.executebuiltin('Container.Refresh')
ADDOND = os.path.join(USERDATA, 'addon_data') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) ADVANCED = os.path.join(USERDATA, 'advancedsettings.xml') SOURCES = os.path.join(USERDATA, 'sources.xml') FAVOURITES = os.path.join(USERDATA, 'favourites.xml') PROFILES = os.path.join(USERDATA, 'profiles.xml') GUISETTINGS = os.path.join(USERDATA, 'guisettings.xml') THUMBS = os.path.join(USERDATA, 'Thumbnails') DATABASE = os.path.join(USERDATA, 'Database') FANART = os.path.join(ADDONPATH, 'fanart.jpg') ICON = os.path.join(ADDONPATH, 'icon.png') ART = os.path.join(ADDONPATH, 'resources', 'art') WIZLOG = os.path.join(ADDONDATA, 'wizard.log') SKIN = xbmc.getSkinDir() SHOWMAINT = wiz.getS('showmaint') AUTOCLEANUP = wiz.getS('autoclean') AUTOCACHE = wiz.getS('clearcache') AUTOPACKAGES = wiz.getS('clearpackages') AUTOTHUMBS = wiz.getS('clearthumbs') AUTOFEQ = wiz.getS('autocleanfeq') AUTONEXTRUN = wiz.getS('nextautocleanup') INCLUDEVIDEO = wiz.getS('includevideo') INCLUDEALL = wiz.getS('includeall') INCLUDEBOB = wiz.getS('includebob') INCLUDEBOBP = wiz.getS('includebobp') INCLUDEPHOENIX = wiz.getS('includephoenix') INCLUDESPECTO = wiz.getS('includespecto') INCLUDESPECTOS = wiz.getS('includespectos') INCLUDEGENESIS = wiz.getS('includegenesis') INCLUDEEXODUS = wiz.getS('includeexodus')
def checkSkin(): wiz.log("[Wizard] Skin no localizado") DEFAULTSKIN = wiz.getS('defaultskin') DEFAULTNAME = wiz.getS('defaultskinname') DEFAULTIGNORE = wiz.getS('defaultskinignore') gotoskin = False if not DEFAULTSKIN == '': if os.path.exists(os.path.join(ADDONS, DEFAULTSKIN)): if DIALOG.yesno( ADDONTITLE, "[COLOR %s]Parece que el skin se ha establecido de nuevo a [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Le gustaria volver a configurar el skin:[/COLOR]", '[COLOR %s]%s[/COLOR]' % (COLOR1, DEFAULTNAME)): gotoskin = DEFAULTSKIN gotoname = DEFAULTNAME else: wiz.log("El skin no se reinicio", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') gotoskin = False else: wiz.setS('defaultskin', '') wiz.setS('defaultskinname', '') DEFAULTSKIN = '' DEFAULTNAME = '' if DEFAULTSKIN == '': skinname = [] skinlist = [] for folder in glob.glob(os.path.join(ADDONS, 'skin.*/')): xml = "%s/addon.xml" % folder if os.path.exists(xml): f = open(xml, mode='r') g = f.read().replace('\n', '').replace('\r', '').replace('\t', '') f.close() match = wiz.parseDOM(g, 'addon', ret='id') match2 = wiz.parseDOM(g, 'addon', ret='name') wiz.log("%s: %s" % (folder, str(match[0])), xbmc.LOGNOTICE) if len(match) > 0: skinlist.append(str(match[0])) skinname.append(str(match2[0])) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) if len(skinlist) > 0: if len(skinlist) > 1: if DIALOG.yesno( ADDONTITLE, "[COLOR %s]Parece que el skin se ha establecido de nuevo a [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Le gustaria ver una lista de los skin disponibles?[/COLOR]" ): choice = DIALOG.select("Seleccione el skin para cambiar", skinname) if choice == -1: wiz.log("El skin no se reinicio", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: gotoskin = skinlist[choice] gotoname = skinname[choice] else: wiz.log("El skin no se reinicio", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: if DIALOG.yesno( ADDONTITLE, "[COLOR %s]Parece que el skin se ha establecido de nuevo a [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Le gustaria volver a configurar el skin:[/COLOR]", '[COLOR %s]%s[/COLOR]' % (COLOR1, skinname[0])): gotoskin = skinlist[0] gotoname = skinname[0] else: wiz.log("El skin no se reinicio", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: wiz.log("No se encontraron skins en la carpeta de complementos.", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') gotoskin = False if gotoskin: skinSwitch.swapSkins(gotoskin) x = 0 xbmc.sleep(1000) while not xbmc.getCondVisibility( "Window.isVisible(yesnodialog)") and x < 150: x += 1 xbmc.sleep(200) if xbmc.getCondVisibility("Window.isVisible(yesnodialog)"): wiz.ebi('SendClick(11)') wiz.lookandFeelData('restore') else: wiz.LogNotify("[COLOR %s]%s[/COLOR]" % (COLOR1, ADDONTITLE), '[COLOR %s]Tiempo agotato[/COLOR]' % COLOR2) wiz.log("[Build Check] Skin Error", xbmc.LOGNOTICE)
# August 2016 # ######################################################################################################## import xbmc, xbmcaddon, xbmcgui, xbmcplugin, os, sys, xbmcvfs, glob import shutil import urllib2,urllib import re import uservar from datetime import date, datetime, timedelta from resources.libs import wizard as wiz AUTOCLEANUP = wiz.getS('autoclean') AUTOCACHE = wiz.getS('clearcache') AUTOPACKAGES = wiz.getS('clearpackages') if AUTOCLEANUP == 'true': if AUTOCACHE == 'true': wiz.log('[AUTO CLEAN UP][Cache: on]'); wiz.clearCache() else: wiz.log('[AUTO CLEAN UP][Cache: off]') if AUTOPACKAGES == 'true': wiz.log('[AUTO CLEAN UP][Packages: on]'); wiz.clearPackages('startup') else: wiz.log('[AUTO CLEAN UP][Packages: off]') else: wiz.log('[AUTO CLEAN UP: off]')
HOME = xbmc.translatePath('special://home/') PROFILE = xbmc.translatePath('special://profile/') KODIHOME = xbmc.translatePath('special://xbmc/') ADDONS = os.path.join(HOME, 'addons') KODIADDONS = os.path.join(KODIHOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) TEXTCACHE = os.path.join(ADDONDATA, 'Cache') FANART = os.path.join(ADDONPATH, 'fanart.jpg') ICON = os.path.join(ADDONPATH, 'icon.png') ART = os.path.join(ADDONPATH, 'resources', 'art') SKIN = xbmc.getSkinDir() THUMBS = os.path.join(USERDATA, 'Thumbnails') BUILDNAME = wiz.getS('buildname') DEFAULTSKIN = wiz.getS('defaultskin') DEFAULTNAME = wiz.getS('defaultskinname') DEFAULTIGNORE = wiz.getS('defaultskinignore') BUILDVERSION = wiz.getS('buildversion') BUILDLATEST = wiz.getS('latestversion') BUILDCHECK = wiz.getS('lastbuildcheck') DISABLEUPDATE = wiz.getS('disableupdate') AUTOCLEANUP = wiz.getS('autoclean') AUTOCACHE = wiz.getS('clearcache') AUTOPACKAGES = wiz.getS('clearpackages') AUTOTHUMBS = wiz.getS('clearthumbs') AUTOFEQ = wiz.getS('autocleanfeq') AUTONEXTRUN = wiz.getS('nextautocleanup') TRAKTSAVE = wiz.getS('traktlastsave') REALSAVE = wiz.getS('debridlastsave')
ADDONTITLE = uservar.ADDONTITLE DIALOG = xbmcgui.Dialog() DP = xbmcgui.DialogProgress() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) FANART = os.path.join(ADDONPATH, 'fanart.jpg') ICON = os.path.join(ADDONPATH, 'icon.png') ART = os.path.join(ADDONPATH, 'resources', 'art') SKINFOLD = os.path.join(ADDONPATH, 'resources', 'skins', 'DefaultSkin', 'media') ADVANCED = os.path.join(USERDATA, 'advancedsettings.xml') NOTIFY = wiz.getS('notify') NOTEID = wiz.getS('noteid') NOTEDISMISS = wiz.getS('notedismiss') BUILDNAME = wiz.getS('buildname') BUILDVERSION = wiz.getS('buildversion') LATESTVERSION = wiz.checkBuild(BUILDNAME, 'version') TODAY = date.today() KODIV = float(xbmc.getInfoLabel("System.BuildVersion")[:4]) TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) UPDATECHECK = uservar.UPDATECHECK if str(uservar.UPDATECHECK).isdigit() else 1 NEXTCHECK = TODAY + timedelta(days=UPDATECHECK) NOTIFICATION = uservar.NOTIFICATION ENABLE = uservar.ENABLE HEADERTYPE = uservar.HEADERTYPE if uservar.HEADERTYPE == 'Image' else 'Text' HEADERMESSAGE = uservar.HEADERMESSAGE
ADDONTITLE = uservar.ADDONTITLE ADDON = wiz.addonId(ADDON_ID) DIALOG = xbmcgui.Dialog() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) ADDOND = os.path.join(USERDATA, 'addon_data') TRAKTFOLD = os.path.join(ADDONDATA, 'trakt') ICON = os.path.join(PLUGIN, 'icon.png') TODAY = date.today() TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) KEEPTRAKT = wiz.getS('keeptrakt') TRAKTSAVE = wiz.getS('traktlastsave') COLOR1 = uservar.COLOR1 COLOR2 = uservar.COLOR2 ORDER = [ 'chappaai', 'placenta', 'incursion', 'gaia', 'magicality', 'trakt', 'wraith' ] TRAKTID = { 'chappaai': { 'name': 'Chappa\'ai', 'plugin': 'plugin.video.chappaai', 'saved':
def doDismiss(self): if not test == True: wiz.setS("notedismiss", "true") wiz.log("[Notification] NotifyID %s Entendi" % wiz.getS('noteid'), xbmc.LOGNOTICE) self.close()
def checkSkin(): wiz.log("[Build Check] Invalid Skin Check Start") DEFAULTSKIN = wiz.getS('defaultskin') DEFAULTNAME = wiz.getS('defaultskinname') DEFAULTIGNORE = wiz.getS('defaultskinignore') gotoskin = False if not DEFAULTSKIN == '': if os.path.exists(os.path.join(ADDONS, DEFAULTSKIN)): if DIALOG.yesno( ADDONTITLE, "[COLOR %s]It seems that the skin has been set back to [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Would you like to set the skin back to:[/COLOR]", '[COLOR %s]%s[/COLOR]' % (COLOR1, DEFAULTNAME)): gotoskin = DEFAULTSKIN gotoname = DEFAULTNAME else: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') gotoskin = False else: wiz.setS('defaultskin', '') wiz.setS('defaultskinname', '') DEFAULTSKIN = '' DEFAULTNAME = '' if DEFAULTSKIN == '': skinname = [] skinlist = [] for folder in glob.glob(os.path.join(ADDONS, 'skin.*/')): xml = "%s/addon.xml" % folder if os.path.exists(xml): f = open(xml, mode='r') g = f.read().replace('\n', '').replace('\r', '').replace('\t', '') f.close() match = wiz.parseDOM(g, 'addon', ret='id') match2 = wiz.parseDOM(g, 'addon', ret='name') wiz.log("%s: %s" % (folder, str(match[0])), xbmc.LOGNOTICE) if len(match) > 0: skinlist.append(str(match[0])) skinname.append(str(match2[0])) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) if len(skinlist) > 0: if len(skinlist) > 1: if DIALOG.yesno( ADDONTITLE, "[COLOR %s]It seems that the skin has been set back to [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Would you like to view a list of avaliable skins?[/COLOR]" ): choice = DIALOG.select("Select skin to switch to!", skinname) if choice == -1: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: gotoskin = skinlist[choice] gotoname = skinname[choice] else: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: if DIALOG.yesno( ADDONTITLE, "[COLOR %s]It seems that the skin has been set back to [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Would you like to set the skin back to:[/COLOR]", '[COLOR %s]%s[/COLOR]' % (COLOR1, skinname[0])): gotoskin = skinlist[0] gotoname = skinname[0] else: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: wiz.log("No skins found in addons folder.", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') gotoskin = False if gotoskin: if wiz.swapSkins(gotoskin): wiz.lookandFeelData('restore') wiz.log("[Build Check] Invalid Skin Check End", xbmc.LOGNOTICE)
def checkSkin(): wiz.log("[Build Check] Invalid Skin Check Start") DEFAULTSKIN = wiz.getS('defaultskin') DEFAULTNAME = wiz.getS('defaultskinname') DEFAULTIGNORE = wiz.getS('defaultskinignore') gotoskin = False if not DEFAULTSKIN == '': if os.path.exists(os.path.join(ADDONS, DEFAULTSKIN)): if DIALOG.yesno( ADDONTITLE, "[COLOR %s]Parece que a skin foi adiada para [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Você gostaria de colocar a skin de volta para:[/COLOR]", '[COLOR %s]%s[/COLOR]' % (COLOR1, DEFAULTNAME)): gotoskin = DEFAULTSKIN gotoname = DEFAULTNAME else: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') gotoskin = False else: wiz.setS('defaultskin', '') wiz.setS('defaultskinname', '') DEFAULTSKIN = '' DEFAULTNAME = '' if DEFAULTSKIN == '': skinname = [] skinlist = [] for folder in glob.glob(os.path.join(ADDONS, 'skin.*/')): xml = "%s/addon.xml" % folder if os.path.exists(xml): f = open(xml, mode='r') g = f.read().replace('\n', '').replace('\r', '').replace('\t', '') f.close() match = wiz.parseDOM(g, 'addon', ret='id') match2 = wiz.parseDOM(g, 'addon', ret='name') wiz.log("%s: %s" % (folder, str(match[0])), xbmc.LOGNOTICE) if len(match) > 0: skinlist.append(str(match[0])) skinname.append(str(match2[0])) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) if len(skinlist) > 0: if len(skinlist) > 1: if DIALOG.yesno( ADDONTITLE, "[COLOR %s]It seems that the skin has been set back to [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Would you like to view a list of avaliable skins?[/COLOR]" ): choice = DIALOG.select("Select skin to switch to!", skinname) if choice == -1: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: gotoskin = skinlist[choice] gotoname = skinname[choice] else: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: if DIALOG.yesno( ADDONTITLE, "[COLOR %s]It seems that the skin has been set back to [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Would you like to set the skin back to:[/COLOR]", '[COLOR %s]%s[/COLOR]' % (COLOR1, skinname[0])): gotoskin = skinlist[0] gotoname = skinname[0] else: wiz.log("A skin não foi reiniciada", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: wiz.log("Não foram encontradas peles na pasta addons.", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') gotoskin = False if gotoskin: skinSwitch.swapSkins(gotoskin) x = 0 xbmc.sleep(1000) while not xbmc.getCondVisibility( "Window.isVisible(yesnodialog)") and x < 150: x += 1 xbmc.sleep(200) if xbmc.getCondVisibility("Window.isVisible(yesnodialog)"): wiz.ebi('SendClick(11)') wiz.lookandFeelData('restore') else: wiz.LogNotify( "[COLOR %s]%s[/COLOR]" % (COLOR1, ADDONTITLE), '[COLOR %s]Troca de skin cronometrada![/COLOR]' % COLOR2) wiz.log("[Build Check] Extremidade de verificação de skin inválida", xbmc.LOGNOTICE)
def doRemindMeLater(self): try: wiz.setS("notedismiss","false") wiz.log("[Notification] NotifyID %s Remind Me Later" % wiz.getS('noteid'), xbmc.LOGNOTICE) except: pass self.CloseWindow()
ADDONTITLE = uservar.ADDONTITLE ADDON = wiz.addonId(ADDON_ID) DIALOG = xbmcgui.Dialog() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) ADDOND = os.path.join(USERDATA, 'addon_data') LOGINFOLD = os.path.join(ADDONDATA, 'login') ICON = os.path.join(PLUGIN, 'icon.png') TODAY = date.today() TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) KEEPLOGIN = wiz.getS('keeplogin') LOGINSAVE = wiz.getS('loginlastsave') COLOR1 = uservar.COLOR1 COLOR2 = uservar.COLOR2 ORDER = [ 'fanart-exodusredux', 'fanart-gaia', 'fanart-overeasy', 'fanart-metadatautils', 'fanart-placenta', 'fanart-premiumizer', 'fanart-realizer', 'fanart-yoda', 'imdb-exodusredux', 'imdb-gaia', 'imdb-overeasy', 'imdb-placenta', 'imdb-premiumizer', 'imdb-realizer', 'imdb-yoda', 'kitsu-wonderfulsubs', 'login-iagl', 'login-netflix', 'mal-wonderfulsubs', 'omdb-metadatautils', 'omdb-metahandler', 'login-opensubtitles', 'login-opensubsbyopensubs', 'login-orion', 'tmdb-exodusredux', 'login-eis', 'tmdb-gaia', 'tmdb-metadatautils', 'tmdb-eis', 'tmdb-openmeta', 'tmdb-overeasy', 'tmdb-placenta', 'tmdb-premiumizer', 'tmdb-realizer', 'tmdb-seren', 'tmdb-yoda', 'trakt-openmeta', 'trakt-seren', 'tvdb-metahandler', 'tvdb-openmeta',
def updateDebrid(do, who): file = DEBRIDID[who]['file'] settings = DEBRIDID[who]['settings'] data = DEBRIDID[who]['data'] addonid = wiz.addonId(DEBRIDID[who]['plugin']) saved = DEBRIDID[who]['saved'] default = DEBRIDID[who]['default'] user = addonid.getSetting(default) suser = wiz.getS(saved) name = DEBRIDID[who]['name'] icon = DEBRIDID[who]['icon'] if do == 'update': if not user == '': with open(file, 'w') as f: for debrid in data: f.write( '<debrid>\n\t<id>%s</id>\n\t<value>%s</value>\n</debrid>\n' % (debrid, addonid.getSetting(debrid))) f.close() user = addonid.getSetting(default) wiz.setS(saved, user) wiz.LogNotify( "[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Real Debrid Data: Saved![/COLOR]' % COLOR2, 2000, icon) else: wiz.LogNotify( "[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Real Debrid Data: Not Registered![/COLOR]' % COLOR2, 2000, icon) elif do == 'restore': if os.path.exists(file): f = open(file, mode='r') g = f.read().replace('\n', '').replace('\r', '').replace('\t', '') f.close() match = re.compile( '<debrid><id>(.+?)</id><value>(.+?)</value></debrid>').findall( g) if len(match) > 0: for debrid, value in match: addonid.setSetting(debrid, value) user = addonid.getSetting(default) wiz.setS(saved, user) wiz.LogNotify("[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Real Debrid: Restored![/COLOR]' % COLOR2, 2000, icon) #else: wiz.LogNotify(name,'Real Debrid Data: [COLOR red]Not Found![/COLOR]', 2000, icon) elif do == 'clearaddon': wiz.log('%s SETTINGS: %s' % (name, settings), xbmc.LOGDEBUG) if os.path.exists(settings): f = open(settings, "r") lines = f.readlines() f.close() f = open(settings, "w") for line in lines: match = re.compile('<setting.+?id="(.+?)".+?/>').findall(line) if len(match) == 0: f.write(line) elif match[0] not in data: f.write(line) else: wiz.log('[Debrid Clear Addon] Removing Line: %s' % line, xbmc.LOGNOTICE) f.close() wiz.LogNotify("[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Addon Data: Cleared![/COLOR]' % COLOR2, 2000, icon) else: wiz.LogNotify( "[COLOR %s]%s[/COLOR]" % (COLOR1, name), '[COLOR %s]Addon Data: Clear Failed![/COLOR]' % COLOR2, 2000, icon) wiz.refresh()
def checkSkin(): wiz.log("[Build Check] Invalid Skin Check Start") DEFAULTSKIN = wiz.getS('defaultskin') DEFAULTNAME = wiz.getS('defaultskinname') DEFAULTIGNORE = wiz.getS('defaultskinignore') gotoskin = False if not DEFAULTSKIN == '': if os.path.exists(os.path.join(ADDONS, DEFAULTSKIN)): if DIALOG.yesno( ADDONTITLE, "[COLOR lime]Cini se da je skin ponovno postavljen[/COLOR] [COLOR white]%s[/COLOR]" % (SKIN[5:].title()), "[COLOR lime]Zelite li vratiti skin na:[/COLOR]", '[COLOR white]%s[/COLOR]' % (DEFAULTNAME)): gotoskin = DEFAULTSKIN gotoname = DEFAULTNAME else: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') gotoskin = False else: wiz.setS('defaultskin', '') wiz.setS('defaultskinname', '') DEFAULTSKIN = '' DEFAULTNAME = '' if DEFAULTSKIN == '': skinname = [] skinlist = [] for folder in glob.glob(os.path.join(ADDONS, 'skin.*/')): xml = "%s/addon.xml" % folder if os.path.exists(xml): f = open(xml, mode='r') g = f.read().replace('\n', '').replace('\r', '').replace('\t', '') f.close() match = wiz.parseDOM(g, 'addon', ret='id') match2 = wiz.parseDOM(g, 'addon', ret='name') wiz.log("%s: %s" % (folder, str(match[0])), xbmc.LOGNOTICE) if len(match) > 0: skinlist.append(str(match[0])) skinname.append(str(match2[0])) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) if len(skinlist) > 0: if len(skinlist) > 1: if DIALOG.yesno( ADDONTITLE, "[COLOR lime]Cini se da je skin ponovno postavljen[/COLOR] [COLOR white]%s[/COLOR]" % (SKIN[5:].title()), "[COLOR lime]Zelite li vidjeti popis dostupnih skinova?[/COLOR]" ): choice = DIALOG.select("Select skin to switch to!", skinname) if choice == -1: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: gotoskin = skinlist[choice] gotoname = skinname[choice] else: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: if DIALOG.yesno( ADDONTITLE, "[COLOR lime]Cini se da je skin ponovno postavljen[/COLOR] [COLOR white]%s[/COLOR]" % (SKIN[5:].title()), "[COLOR lime]Zelite li vratiti skin na:[/COLOR]", '[COLOR white]%s[/COLOR]' % (skinname[0])): gotoskin = skinlist[0] gotoname = skinname[0] else: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: wiz.log("No skins found in addons folder.", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') gotoskin = False if gotoskin: skinSwitch.swapSkins(gotoskin) x = 0 xbmc.sleep(1000) while not xbmc.getCondVisibility( "Window.isVisible(yesnodialog)") and x < 150: x += 1 xbmc.sleep(200) if xbmc.getCondVisibility("Window.isVisible(yesnodialog)"): wiz.ebi('SendClick(11)') wiz.lookandFeelData('restore') else: wiz.LogNotify("[COLOR %s]%s[/COLOR]" % (COLOR1, ADDONTITLE), '[COLOR %s]Skin Swap Timed Out![/COLOR]' % COLOR2) wiz.log("[Build Check] Invalid Skin Check End", xbmc.LOGNOTICE)
ADDONTITLE = uservar.ADDONTITLE ADDON = wiz.addonId(ADDON_ID) DIALOG = xbmcgui.Dialog() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) ADDOND = os.path.join(USERDATA, 'addon_data') TRAKTFOLD = os.path.join(ADDONDATA, 'trakt') ICON = os.path.join(PLUGIN, 'icon.png') TODAY = date.today() TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) KEEPTRAKT = wiz.getS('keeptrakt') TRAKTSAVE = wiz.getS('traktlastsave') ORDER = ['exodus', 'metalliq', 'salts', 'saltshd', 'velocity', 'velocitykids', 'meta', 'royalwe', 'specto', 'trakt'] TRAKTID = { 'exodus': { 'name' : 'Exodus', 'plugin' : 'plugin.video.exodus', 'saved' : 'exodus', 'path' : os.path.join(ADDONS, 'plugin.video.exodus'), 'icon' : os.path.join(ADDONS, 'plugin.video.exodus', 'icon.png'), 'fanart' : os.path.join(ADDONS, 'plugin.video.exodus', 'fanart.jpg'), 'file' : os.path.join(TRAKTFOLD, 'exodus_trakt'), 'settings' : os.path.join(ADDOND, 'plugin.video.exodus', 'settings.xml'), 'default' : 'trakt.user', 'data' : ['trakt.user', 'trakt.refresh', 'trakt.token'],
ADDONTITLE = uservar.ADDONTITLE ADDON = wiz.addonId(ADDON_ID) DIALOG = xbmcgui.Dialog() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) ADDOND = os.path.join(USERDATA, 'addon_data') ALLUCFOLD = os.path.join(ADDONDATA, 'Alluc') ICON = os.path.join(PLUGIN, 'icon.png') TODAY = date.today() TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) KEEPALLUC = wiz.getS('keepalluc') ALLUCSAVE = wiz.getS('alluclastsave') COLOR1 = uservar.COLOR1 COLOR2 = uservar.COLOR2 ORDER = ['nan', 'notsure', 'specto', 'covenant', 'bennu', 'deathstreams'] ALLUCID = { 'nan': { 'name': 'Nan Scrapers', 'plugin': 'script.module.nanscrapers', 'saved': 'allucnan', 'path': os.path.join(ADDONS, 'script.module.nanscrapers'),
import zipfile, xbmcaddon, xbmc, uservar from resources.libs import wizard as wiz ADDON_ID = uservar.ADDON_ID ADDON = wiz.addonId(ADDON_ID) KEEPFAVS = wiz.getS('keepfavourites') KEEPSOURCES = wiz.getS('keepsources') KEEPPROFILES = wiz.getS('keepprofiles') KEEPADVANCED = wiz.getS('keepadvanced') def all(_in, _out, dp=None): if dp: return allWithProgress(_in, _out, dp) else: return allNoProgress(_in, _out) def allNoProgress(_in, _out): try: zin = zipfile.ZipFile(_in, 'r') zin.extractall(_out) except Exception, e: print str(e) return False return True def allWithProgress(_in, _out, dp): zin = zipfile.ZipFile(_in, 'r') nFiles = float(len(zin.namelist())) count = 0; errors = 0; error = ''; zipit = str(_in).replace('\\', '/').split('/'); zname = zipit[len(zipit)-1].replace('.zip', '') try: for item in zin.infolist(): count += 1; update = int(count / nFiles * 100);
ADDONTITLE = uservar.ADDONTITLE ADDON = wiz.addonId(ADDON_ID) DIALOG = xbmcgui.Dialog() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) ADDOND = os.path.join(USERDATA, 'addon_data') REALFOLD = os.path.join(ADDONDATA, 'debrid') ICON = os.path.join(PLUGIN, 'icon.png') TODAY = date.today() TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) KEEPTRAKT = wiz.getS('keepdebrid') REALSAVE = wiz.getS('debridlastsave') ORDER = ['exodus', 'specto', 'url'] DEBRIDID = { 'exodus': { 'name' : 'Exodus', 'plugin' : 'plugin.video.exodus', 'saved' : 'realexodus', 'path' : os.path.join(ADDONS, 'plugin.video.exodus'), 'icon' : os.path.join(ADDONS, 'plugin.video.exodus', 'icon.png'), 'fanart' : os.path.join(ADDONS, 'plugin.video.exodus', 'fanart.jpg'), 'file' : os.path.join(REALFOLD, 'exodus_debrid'), 'settings' : os.path.join(ADDOND, 'plugin.video.exodus', 'settings.xml'), 'default' : 'realdebrid.id', 'data' : ['realdebrid.auth', 'realdebrid.id', 'realdebrid.secret', 'realdebrid.token', 'realdebrid.refresh'],
def checkSkin(): wiz.log("[Build Check] Invalid Skin Check Start") DEFAULTSKIN = wiz.getS('defaultskin') DEFAULTNAME = wiz.getS('defaultskinname') DEFAULTIGNORE = wiz.getS('defaultskinignore') gotoskin = False if not DEFAULTSKIN == '': if os.path.exists(os.path.join(ADDONS, DEFAULTSKIN)): if DIALOG.yesno( ADDONTITLE, "[COLOR %s]It seems that the skin has been set back to [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Would you like to set the skin back to:[/COLOR]", '[COLOR %s]%s[/COLOR]' % (COLOR1, DEFAULTNAME)): gotoskin = DEFAULTSKIN gotoname = DEFAULTNAME else: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') gotoskin = False else: wiz.setS('defaultskin', '') wiz.setS('defaultskinname', '') DEFAULTSKIN = '' DEFAULTNAME = '' if DEFAULTSKIN == '': skinname = [] skinlist = [] for folder in glob.glob(os.path.join(ADDONS, 'skin.*/')): xml = "%s/addon.xml" % folder if os.path.exists(xml): f = open(xml, mode='r') g = f.read().replace('\n', '').replace('\r', '').replace('\t', '') f.close() match = re.compile('<addon.+?id="(.+?)".+?>').findall(g) match2 = re.compile('<addon.+?name="(.+?)".+?>').findall(g) wiz.log("%s: %s" % (folder, str(match[0])), xbmc.LOGNOTICE) if len(match) > 0: skinlist.append(str(match[0])) skinname.append(str(match2[0])) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) else: wiz.log("ID not found for %s" % folder, xbmc.LOGNOTICE) if len(skinlist) > 0: if len(skinlist) > 1: if DIALOG.yesno( ADDONTITLE, "[COLOR %s]It seems that the skin has been set back to [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Would you like to view a list of avaliable skins?[/COLOR]" ): choice = DIALOG.select("Select skin to switch to!", skinname) if choice == -1: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: gotoskin = skinlist[choice] gotoname = skinname[choice] else: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: if DIALOG.yesno( ADDONTITLE, "[COLOR %s]It seems that the skin has been set back to [COLOR %s]%s[/COLOR]" % (COLOR2, COLOR1, SKIN[5:].title()), "Would you like to set the skin back to:[/COLOR]", '[COLOR %s]%s[/COLOR]' % (COLOR1, skinname[0])): gotoskin = skinlist[0] gotoname = skinname[0] else: wiz.log("Skin was not reset", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') else: wiz.log("No skins found in addons folder.", xbmc.LOGNOTICE) wiz.setS('defaultskinignore', 'true') gotoskin = False if gotoskin: skinSwitch.swapSkins(gotoskin) x = 0 xbmc.sleep(1000) while not xbmc.getCondVisibility( "Window.isVisible(yesnodialog)") and x < 150: x += 1 xbmc.sleep(200) if xbmc.getCondVisibility("Window.isVisible(yesnodialog)"): wiz.ebi('SendClick(11)') wiz.lookandFeelData('restore') else: wiz.LogNotify("[COLOR %s]%s[/COLOR]" (COLOR1, ADDONTITLE), '[COLOR %s]Skin Swap Timed Out![/COLOR]' % COLOR2) wiz.log("[Build Check] Invalid Skin Check End", xbmc.LOGNOTICE)
ADDONTITLE = uservar.ADDONTITLE ADDON = wiz.addonId(ADDON_ID) DIALOG = xbmcgui.Dialog() HOME = xbmc.translatePath('special://home/') ADDONS = os.path.join(HOME, 'addons') USERDATA = os.path.join(HOME, 'userdata') PLUGIN = os.path.join(ADDONS, ADDON_ID) PACKAGES = os.path.join(ADDONS, 'packages') ADDONDATA = os.path.join(USERDATA, 'addon_data', ADDON_ID) ADDOND = os.path.join(USERDATA, 'addon_data') LOGINFOLD = os.path.join(ADDONDATA, 'login') ICON = os.path.join(PLUGIN, 'icon.png') TODAY = date.today() TOMORROW = TODAY + timedelta(days=1) THREEDAYS = TODAY + timedelta(days=3) KEEPLOGIN = wiz.getS('keeplogin') LOGINSAVE = wiz.getS('loginlastsave') ORDER = ['sportsaccess', 'communityportal', 'tvportal', 'sportsmania', 'sportsnationhdtv', 'ultimatemania', 'dexter', 'reboot', 'ivue', 'ontapptv', 'vpnicity', 'overlordtv', 'xtreamcodes'] LOGINID = { 'sportsaccess': { 'name' : 'Sports Access', 'plugin' : 'plugin.video.sportsaccess', 'saved' : 'loginsportsaccess', 'path' : os.path.join(ADDONS, 'plugin.video.sportsaccess'), 'icon' : os.path.join(ADDONS, 'plugin.video.sportsaccess', 'icon.png'), 'fanart' : os.path.join(ADDONS, 'plugin.video.sportsaccess', 'fanart.jpg'), 'file' : os.path.join(LOGINFOLD, 'sportsaccess_login'), 'settings' : os.path.join(ADDONS, 'plugin.video.sportsaccess', 'settings.xml'), 'default' : 'skyusername', 'data' : ['skyusername', 'skypassword'],