def main(self, env): sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/plugin.video.vstream/changelog.txt' if (env == 'changelog'): oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() self.TextBoxes('vStream Changelog', sContent) return if (env == 'about'): sContent = ' Auteur: LordVenom\n Version & Repository: https://github.com/LordVenom/venom-xbmc-addons/releases\n Question & Support: https://github.com/LordVenom/venom-xbmc-addons/issues \n Question & Support: Twitter @lordvenom57\n' self.TextBoxes('vStream Information', sContent) return else : stats_in = self.get_remote_md5_sum(sUrl) stats_out = cConfig().getSetting('date_update') if (stats_out != stats_in): oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() self.TextBoxes('Changelog', sContent) cConfig().setSetting('date_update', str(stats_in)) return return
def __checkupdate(self, download): service_time = cConfig().getSetting('service_time') service_md5 = cConfig().getSetting('service_md5') try: #sUrl = 'https://api.github.com/repos/LordVenom/venom-xbmc-addons/commits/master' sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/updates.xml.md5' oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); if not service_md5: cConfig().setSetting('service_md5', sHtmlContent) service_md5 = sHtmlContent if (service_md5 != sHtmlContent): cConfig().setSetting('home_update', str('true')) if (download == 'true'): self.__checkdownload(sHtmlContent) else: if (download == 'true'): cConfig().showInfo('vStream', 'Fichier a jour') cConfig().setSetting('home_update', str('false')) except: return return
def __checkupdate(self, download): service_time = cConfig().getSetting('service_time') if (service_time != ''): try: sUrl = 'https://api.github.com/repos/LordVenom/venom-xbmc-addons/commits/master' oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request(); result = json.loads(sHtmlContent) time_service = self.__strptime(service_time, "%Y-%m-%d %H:%M:%S.%f") #pour test #time_service = time_service - datetime.timedelta(hours=50) time_source = self.__strptime(result['commit']['committer']['date'], "%Y-%m-%dT%H:%M:%SZ") if (time_source > time_service): if (download == 'true'): self.__checkdownload() cConfig().setSetting('home_update', str('true')) else: if (download == 'true'): cConfig().showInfo('vStream', 'Fichier a jour') cConfig().setSetting('home_update', str('false')) return except: cConfig().setSetting('service_time', str(datetime.datetime.now())) return return
def __checkdownload(self): aPlugins = self.getPlugins() total = len(aPlugins) dialog = cConfig().createDialog('Update') sContent = "" sdown = 0 for aPlugin in aPlugins: cConfig().updateDialog(dialog, total) RootUrl = aPlugin[0] WebUrl = aPlugin[1] ItemName = aPlugin[2] PlugWeb = self.get_remote_md5_sum(WebUrl) PlugRoot = self.get_root_md5_sum(RootUrl) if (PlugWeb != PlugRoot): try: self.__download(WebUrl, RootUrl) sContent += "[COLOR green]"+ItemName+"[/COLOR] \n" sdown = sdown+1 except: sContent += "[COLOR red]"+ItemName+"[/COLOR] \n" cConfig().finishDialog(dialog) sContent += "Fichier mise à jour %s / %s" % (sdown, total) #self.TextBoxes('vStream mise à Jour', sContent) cConfig().setSetting('service_time', str(datetime.datetime.now())) cConfig().createDialogOK(sContent) return
def main(self, env): if (env == 'changelog'): try: sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/plugin.video.vstream/changelog.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() self.TextBoxes('vStream Changelog', sContent) except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return return
def getRootPath(self, folder): sMath = cConfig().getAddonPath().replace('plugin.video.vstream', '') sFolder = os.path.join(sMath, folder) # xbox hack sFolder = sFolder.replace('\\', '/') return sFolder
def parse_argv(argv): myConfigFile = 'cron.conf' myMessage = "" myScript = os.path.basename(__file__) myConfig = None try: opts, args = getopt.getopt(argv,"hc:m:") except getopt.GetoptError: print myScript , ' -c <configfile>' sys.exit(2) for opt, arg in opts: if opt == '-h': print myScript , ' -c <configfile> ' sys.exit() elif opt in ("-c", "--cfile"): # config_file myConfigFile = arg elif opt in ("-m"): # message myMessage = arg myConfig = cConfig(myConfigFile) myConfig.message = myMessage myConfig.filename = myConfigFile return (myConfig)
def getUpdate(self): service_time = cConfig().getSetting('service_time') if (service_time): #delay mise a jour time_sleep = datetime.timedelta(hours=72) time_now = datetime.datetime.now() time_service = self.__strptime(service_time, "%Y-%m-%d %H:%M:%S.%f") #pour test #time_service = time_service - datetime.timedelta(hours=50) if (time_now - time_service > time_sleep): #test les fichier pour mise a jour self.checkupdate() #Function update auto else: cConfig().setSetting('service_time', str(datetime.datetime.now())) return
def main(self, env): if (env == 'urlresolver'): xbmcaddon.Addon('script.module.urlresolver').openSettings() return elif (env == 'metahandler'): xbmcaddon.Addon('script.module.metahandler').openSettings() return elif (env == 'changelog'): try: sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/plugin.video.vstream/changelog.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() from about import cAbout cAbout().TextBoxes('vStream Changelog', sContent) except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return elif (env == 'soutient'): try: sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/plugin.video.vstream/soutient.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() from about import cAbout cAbout().TextBoxes('vStream Soutient', sContent) except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return elif (env == 'addon'): dialog = xbmcgui.Dialog() if dialog.yesno('vStream', 'Êtes-vous sûr ?','','','Non', 'Oui'): cached_fav = cConfig().getFileFav() cached_DB = cConfig().getFileDB() self.ClearDir2(xbmc.translatePath(cached_fav),True) self.ClearDir2(xbmc.translatePath(cached_DB),True) xbmc.executebuiltin("XBMC.Notification(Clear Addon Cache,Successful,5000,"")") return elif (env == 'xbmc'): dialog = xbmcgui.Dialog() if dialog.yesno('vStream', 'Êtes-vous sûr ?','','','Non', 'Oui'): self.ClearDir(xbmc.translatePath('special://temp/'),True) xbmc.executebuiltin("XBMC.Notification(Clear XBMC Cache,Successful,5000,"")") return else: return return
def checkupdate(self): service_time = cConfig().getSetting('service_time') result = self.resultGit() sDownl = 0 if result: for i in result: try: rootpath = self.getRootPath(i['path']) if (self.size(rootpath) != i['size']): sDownl = sDownl + 1 break except: pass if (sDownl != 0): cConfig().setSetting('service_time', str(datetime.datetime.now())) cConfig().showInfo("vStream", "Mise à jour disponible") else: cConfig().setSetting('service_time', str(datetime.datetime.now())) return
def getRootPath(self, folder): sMath = cConfig().getAddonPath().replace('plugin.video.vstream', '').decode("utf-8") sFolder = os.path.join(sMath, folder) # xbox hack sFolder = sFolder.replace('\\', '/') return sFolder
def getUpdate(self): service_time = cConfig().getSetting('service_time') if (service_time): time_sleep = datetime.timedelta(hours=6) time_now = datetime.datetime.now() time_service = self.__strptime(service_time, "%Y-%m-%d %H:%M:%S.%f") if (time_now - time_service > time_sleep): self.checkupdate() else: cConfig().setSetting('service_last', str(time_sleep + time_service)) return
def get_remote_md5_sum(self, url, max_file_size=100*1024*1024): try: remote = urllib2.urlopen(url) hash = hashlib.md5() total_read = 0 while True: data = remote.read(4096) total_read += 4096 if not data or total_read > max_file_size: break hash.update(data) return hash.hexdigest() except: cConfig().error("%s,%s" % (cConfig().getLocalizedString(30205), url)) return False
def getPlugins(self): sFolder = cConfig().getAddonPath() sFolder = os.path.join(sFolder, 'resources/sites') # xbox hack sFolder = sFolder.replace('\\', '/') aFileNames = self.__getFileNamesFromFolder(sFolder) return aFileNames
def get_remote_md5_sum(self, url, max_file_size=100 * 1024 * 1024): try: remote = urllib2.urlopen(url) hash = hashlib.md5() total_read = 0 while True: data = remote.read(4096) total_read += 4096 if not data or total_read > max_file_size: break hash.update(data) return hash.hexdigest() except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), url)) return False
def get_root_md5_sum(self, root, max_file_size=100*1024*1024): try: remote = open(root,'r') hash = hashlib.md5() total_read = 0 while True: data = remote.read(4096) total_read += 4096 if not data or total_read > max_file_size: break hash.update(data) return hash.hexdigest() except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), url)) return False
def __init__(self, name, config_file): self.name = name self.cfg = cConfig(config_file) self.parse_config(); self.stop_print_service_flag = False self.myLCD = None self.mqtt = None self.stop_flag = False self.mqtt_msg_cnt = 0 self.mqtt_msg_arr = [] self.lcd_msg_q = Queue.Queue()
def main(self, env): if (env == 'changelog'): try: oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() self.TextBoxes('vStream Changelog', sContent) except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return if (env == 'update'): self.__checkupdate('true') return xbmc.executebuiltin("SendClick(10)") else : #service service_time = cConfig().getSetting('service_time') if (service_time != ''): #delay mise a jour time_sleep = datetime.timedelta(hours=48) time_now = datetime.datetime.now() time_service = self.__strptime(service_time, "%Y-%m-%d %H:%M:%S.%f") #pour test #time_service = time_service - datetime.timedelta(hours=50) if (time_now - time_service > time_sleep): self.__checkversion() self.__checkupdate('false') #Function update auto else: cConfig().setSetting('service_time', str(datetime.datetime.now())) return
def checkupdate(self): service_time = cConfig().getSetting('service_time') #dialog = cConfig().showInfo("vStream", "Cherche les mises a jour") result = self.resultGit() sDown = 0 if result: for i in result: try: rootpath = self.getRootPath(i['path']) if (self.size(rootpath) != i['size']): #print i['name'] #print self.size(rootpath) #print i['size'] sDown = sDown + 1 break #Si on en trouve un, pas besoin de tester les autres. except: pass if (sDown != 0): cConfig().setSetting('home_update', str('true')) cConfig().setSetting('service_time', str(datetime.datetime.now())) dialog = cConfig().showInfo("vStream", "Mise à jour disponible") else: #cConfig().showInfo('vStream', 'Fichier a jour') cConfig().setSetting('service_time', str(datetime.datetime.now())) cConfig().setSetting('home_update', str('false')) return
def onInit(self): self.container = self.getControl(6) self.button = self.getControl(5) self.getControl(3).setVisible(False) self.getControl(1).setLabel(cConfig().getlanguage(30094)) self.button.setLabel('OK') listitems = [] oPluginHandler = cPluginHandler() aPlugins = oPluginHandler.getSearchPlugins() for aPlugin in aPlugins: #teste si deja dans le dsip sPluginSettingsName = 'plugin_' + aPlugin[1] bPlugin = cConfig().getSetting(sPluginSettingsName) icon = os.path.join( unicode(cConfig().getRootArt(), 'utf-8'), 'sites', aPlugin[1] + '.png') stitle = aPlugin[0].replace( '[COLOR violet]', '').replace('[COLOR orange]', '').replace('[/COLOR]', '') if (bPlugin == 'true'): stitle = ('%s %s') % (stitle, valid) listitem = xbmcgui.ListItem(label=stitle, label2=aPlugin[2]) listitem.setArt({'icon': icon, 'thumb': icon}) listitem.setProperty('Addon.Summary', aPlugin[2]) listitem.setProperty('sitename', aPlugin[1]) if (bPlugin == 'true'): listitem.select(True) listitems.append(listitem) self.container.addItems(listitems) self.setFocus(self.container)
def checkupdate(self): service_time = cConfig().getSetting('service_time') #dialog = cConfig().showInfo("vStream", "Cherche les mises a jour") result = self.resultGit() sDown = 0 if result: for i in result: try: rootpath = self.getRootPath(i['path']) if (self.size(rootpath) != i['size']): #print i['name'] #print self.size(rootpath) #print i['size'] sDown = sDown+1 break #Si on en trouve un, pas besoin de tester les autres. except: pass if (sDown != 0): cConfig().setSetting('home_update', str('true')) cConfig().setSetting('service_time', str(datetime.datetime.now())) dialog = cConfig().showInfo("vStream", "Mise à jour disponible") else: #cConfig().showInfo('vStream', 'Fichier a jour') cConfig().setSetting('service_time', str(datetime.datetime.now())) cConfig().setSetting('home_update', str('false')) return
def __erase(self, siteName): try: folder = 'plugin.video.vstream/resources/sites/' sMath = cConfig().getAddonPath().replace('plugin.video.vstream', '') sFolder = os.path.join(sMath, folder) oldName = sFolder + siteName newName = sFolder + siteName + '.desactiver' xbmcvfs.rename(oldName, newName) except: pass return
def main(self, env): if (env == 'addon'): dialog = xbmcgui.Dialog() if dialog.yesno('vStream', 'Êtes-vous sûr ?','','','Non', 'Oui'): cached_fav = cConfig().getFileFav() cached_DB = cConfig().getFileDB() self.ClearDir2(xbmc.translatePath(cached_fav),True) self.ClearDir2(xbmc.translatePath(cached_DB),True) xbmc.executebuiltin("XBMC.Notification(Clear Addon Cache,Successful,5000,"")") return if (env == 'xbmc'): dialog = xbmcgui.Dialog() if dialog.yesno('vStream', 'Êtes-vous sûr ?','','','Non', 'Oui'): self.ClearDir(xbmc.translatePath('special://temp/'),True) xbmc.executebuiltin("XBMC.Notification(Clear XBMC Cache,Successful,5000,"")") return else : return return
def main(args): # Get configuration from the cConfig.py file conf = cConfig() if not os.path.exists('results'): os.makedirs('results') # Start an output file where all the results will be stored ofile = open("results/summary.csv", "w+") WriteHeader(ofile, conf) if conf.MODE == 0: MonteCarlo(conf, ofile) elif conf.MODE == 1: SimulatedAnneal(conf, ofile)
def __checkupdate(self, download): service_time = cConfig().getSetting("service_time") service_md5 = cConfig().getSetting("service_md5") try: # sUrl = 'https://api.github.com/repos/LordVenom/venom-xbmc-addons/commits/master' sUrl = "https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/updates.xml.md5" oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() if not service_md5: cConfig().setSetting("service_md5", sHtmlContent) service_md5 = sHtmlContent if service_md5 != sHtmlContent: if download == "true": self.__checkdownload() cConfig().setSetting("home_update", str("true")) else: if download == "true": cConfig().showInfo("vStream", "Fichier a jour") cConfig().setSetting("home_update", str("false")) except: return return
def __checkupdate(self, download): service_time = cConfig().getSetting('service_time') service_md5 = cConfig().getSetting('service_md5') try: #sUrl = 'https://api.github.com/repos/LordVenom/venom-xbmc-addons/commits/master' sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/updates.xml.md5' oRequestHandler = cRequestHandler(sUrl) sHtmlContent = oRequestHandler.request() if not service_md5: cConfig().setSetting('service_md5', sHtmlContent) service_md5 = sHtmlContent if (service_md5 != sHtmlContent): if (download == 'true'): self.__checkdownload() cConfig().setSetting('home_update', str('true')) else: if (download == 'true'): cConfig().showInfo('vStream', 'Fichier a jour') cConfig().setSetting('home_update', str('false')) except: return return
def getUpdate(self): service_time = cConfig().getSetting('service_time') #Si pas d'heure indique = premiere install if not (service_time): #On memorise la date d'aujourdhui cConfig().setSetting('service_time', str(datetime.datetime.now())) #Mais on force la maj avec une date a la con service_time = '2000-09-23 10:59:50.877000' if (service_time): #delay mise a jour time_sleep = datetime.timedelta(hours=72) time_now = datetime.datetime.now() time_service = self.__strptime(service_time, "%Y-%m-%d %H:%M:%S.%f") #pour test #time_service = time_service - datetime.timedelta(hours=50) if (time_now - time_service > time_sleep): #test les fichier pour mise a jour self.checkupdate() else: cConfig().log('Prochaine verification de MAJ le : ' + str(time_sleep + time_now) ) #Pas besoin de memoriser la date, a cause du cache kodi > pas fiable. return
def main(self, env): sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/plugin.video.vstream/changelog.txt' if (env == 'changelog'): try: oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() self.TextBoxes('vStream Changelog', sContent) except: cConfig().error("%s,%s" % (cConfig().getLocalizedString(30205), sUrl)) return if (env == 'about'): sContent = ' Auteur: LordVenom\n Version & Repository: https://github.com/LordVenom/venom-xbmc-addons/releases\n Question & Support: https://github.com/LordVenom/venom-xbmc-addons/issues \n Question & Support: Twitter @lordvenom57\n' self.TextBoxes('vStream Information', sContent) return else: stats_in = self.get_remote_md5_sum(sUrl) stats_out = cConfig().getSetting('date_update') if (stats_out != stats_in): try: oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() self.TextBoxes('Changelog', sContent) cConfig().setSetting('date_update', str(stats_in)) except: cConfig().error( "%s,%s" % (cConfig().getLocalizedString(30205), sUrl)) return return
def read_config(argv): lcd_config = 'mqtt_lcd_display.conf' lcd_message = "" try: opts, args = getopt.getopt(argv,"hc:") except getopt.GetoptError: print 'lcd_displayEx.py -c <configfile>' sys.exit(2) for opt, arg in opts: if opt == '-h': print 'lcd_displayEx.py -c <configfile> ' sys.exit() elif opt in ("-c", "--cfile"): lcd_config = arg lCfg = cConfig(lcd_config) lCfg.lcd_message = lcd_message return (lCfg)
def siteOff(self): folder = 'plugin.video.vstream/resources/sites/' sMath = cConfig().getAddonPath().replace('plugin.video.vstream', '') sFolder = os.path.join(sMath, folder) sFolder = sFolder.replace('\\', '/') aNameList = [] items = os.listdir(unicode(sFolder, 'utf-8')) items.sort() for sItemName in items: sFilePath = os.path.join(unicode(sFolder, 'utf-8'), sItemName) #xbox hack sFilePath = sFilePath.replace('\\', '/') noErase = ['tous_sport_tv.py', 'livetv_sport.py'] if (os.path.isdir(sFilePath) == False): if (sFilePath.lower().endswith('py')): if not sItemName in noErase: aNameList.append(sItemName) return aNameList
def getRootPath(self, folder): sMath = cConfig().getAddonPath().replace('plugin.video.vstream', '') sFolder = os.path.join(sMath, folder) # xbox hack sFolder = sFolder.replace('\\', '/') sFolder = sFolder.replace( 'resources/lib/home.py', 'plugin.video.vstream/resources/lib/home.py') sFolder = sFolder.replace( 'resources/lib/about.py', 'plugin.video.vstream/resources/lib/about.py') sFolder = sFolder.replace( 'resources/lib/statistic.py', 'plugin.video.vstream/resources/lib/statistic.py') sFolder = sFolder.replace( 'resources/lib/tous_sport_tv.py', 'plugin.video.vstream/resources/sites/tous_sport_tv.py') return sFolder
def main(self, env): if (env == 'changelog'): try: sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/plugin.video.vstream/changelog.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() self.TextBoxes('vStream Changelog', sContent) except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return if (env == 'update'): self.__checkupdate('true') return #return xbmc.executebuiltin("SendClick(10)") else: #service service_time = cConfig().getSetting('service_time') if (service_time != ''): #delay mise a jour time_sleep = datetime.timedelta(hours=48) time_now = datetime.datetime.now() time_service = self.__strptime(service_time, "%Y-%m-%d %H:%M:%S.%f") #pour test #time_service = time_service - datetime.timedelta(hours=50) if (time_now - time_service > time_sleep): self.__checkversion() self.__checkupdate('false') #Function update auto else: cConfig().setSetting('service_time', str(datetime.datetime.now())) return
def __init__(self): self.oConfig = cConfig() self.client_id = '85aab916fa0aa0b50a29' self.client_secret = '3276c40a94a9752510326873f2361e7b80df1a8e'
def __checkversion(self): service_version = cConfig().getSetting('service_version') if (service_version != ''): version = cConfig().getAddonVersion() if (version > service_version): try: sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/plugin.video.vstream/changelog.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() self.TextBoxes('Changelog', sContent) cConfig().setSetting('service_version', str(cConfig().getAddonVersion())) return except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return else: cConfig().setSetting('service_version', str(cConfig().getAddonVersion())) return
#-*- coding: utf-8 -*- #Venom. from config import cConfig import urllib, urllib2 import xbmc, xbmcgui, xbmcaddon import xbmcvfs import sys, datetime, time, os import hashlib, md5 try: import json except: import simplejson as json sLibrary = xbmc.translatePath(cConfig().getAddonPath()) sys.path.append (sLibrary) from resources.lib.handler.requestHandler import cRequestHandler SITE_IDENTIFIER = 'about' SITE_NAME = 'About' class cAbout: def __init__(self): self.main(sys.argv[1]) #self.__sFunctionName = '' def get_remote_md5_sum(self, url, max_file_size=100*1024*1024): try: remote = urllib2.urlopen(url) hash = hashlib.md5()
def main(self, env): if (env == 'urlresolver'): xbmcaddon.Addon('script.module.urlresolver').openSettings() return elif (env == 'metahandler'): xbmcaddon.Addon('script.module.metahandler').openSettings() return elif (env == 'changelog'): try: sUrl = 'https://raw.githubusercontent.com/Kodi-vStream/venom-xbmc-addons/master/plugin.video.vstream/changelog.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() from about import cAbout cAbout().TextBoxes('vStream Changelog', sContent) except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return elif (env == 'soutient'): try: sUrl = 'https://raw.githubusercontent.com/Kodi-vStream/venom-xbmc-addons/master/plugin.video.vstream/soutient.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() from about import cAbout cAbout().TextBoxes('vStream Soutient', sContent) except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return elif (env == 'addon'): dialog = xbmcgui.Dialog() if dialog.yesno('vStream', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): cached_fav = cConfig().getFileFav() cached_DB = cConfig().getFileDB() cached_Cache = cConfig().getFileCache() self.ClearDir2(VStranslatePath(cached_fav), True) self.ClearDir2(VStranslatePath(cached_DB), True) self.ClearDir2(VStranslatePath(cached_Cache), True) xbmc.executebuiltin( "XBMC.Notification(Clear Addon Cache,Successful,5000," ")") return elif (env == 'xbmc'): dialog = xbmcgui.Dialog() if dialog.yesno('vStream', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): self.ClearDir(VStranslatePath('special://temp/'), True) xbmc.executebuiltin( "XBMC.Notification(Clear XBMC Cache,Successful,5000," ")") return elif (env == 'fi'): dialog = xbmcgui.Dialog() if dialog.yesno('vStream', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): xbmc.executebuiltin( "XBMC.Notification(Clear .fi Files ,Successful,2000," ")") path = VStranslatePath('special://temp/') filenames = next(os.walk(path))[2] for i in filenames: if ".fi" in i: os.remove(os.path.join(path, i)) return elif (env == 'uplog'): dialog = xbmcgui.Dialog() if dialog.yesno('vStream', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): path = VStranslatePath('special://logpath/') UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0' headers = {'User-Agent': UA} filenames = next(os.walk(path))[2] for i in filenames: if 'kodi.log' in i: post_data = {} cUrl = 'http://slexy.org/index.php/submit' logop = open(path + i, 'rb') result = logop.read() logop.close() post_data['raw_paste'] = result post_data['author'] = 'kodi.log' post_data['language'] = 'text' post_data['permissions'] = 1 #private post_data['expire'] = 259200 #3j post_data['submit'] = 'Submit+Paste' request = urllib2.Request(cUrl, urllib.urlencode(post_data), headers) reponse = urllib2.urlopen(request) code = reponse.geturl().replace( 'http://slexy.org/view/', '') reponse.close() cConfig().createDialogOK( 'Ce code doit être transmis lorsque vous ouvrez une issue veuillez le noter:' + ' ' + code) return elif (env == 'search'): from resources.lib.handler.pluginHandler import cPluginHandler valid = '[COLOR green][x][/COLOR]' try: sDips = sys.argv[2] except: return class XMLDialog(xbmcgui.WindowXMLDialog): def __init__(self, *args, **kwargs): xbmcgui.WindowXMLDialog.__init__(self) pass def onInit(self): self.container = self.getControl(6) self.button = self.getControl(5) self.getControl(3).setVisible(False) self.getControl(1).setLabel(cConfig().getlanguage(30094)) self.button.setLabel('OK') listitems = [] oPluginHandler = cPluginHandler() aPlugins = oPluginHandler.getSearchPlugins() for aPlugin in aPlugins: #teste si deja dans le dsip sPluginSettingsName = sDips + '_' + aPlugin[1] bPlugin = cConfig().getSetting(sPluginSettingsName) icon = os.path.join( unicode(cConfig().getRootArt(), 'utf-8'), 'sites', aPlugin[1] + '.png') stitle = aPlugin[0].replace( '[COLOR violet]', '').replace('[COLOR orange]', '').replace('[/COLOR]', '') if (bPlugin == 'true'): stitle = ('%s %s') % (stitle, valid) listitem = xbmcgui.ListItem(label=stitle) listitem.setArt({'icon': icon, 'thumb': icon}) listitem.setProperty('Addon.Summary', aPlugin[2]) listitem.setProperty('sitename', aPlugin[1]) if (bPlugin == 'true'): listitem.select(True) listitems.append(listitem) self.container.addItems(listitems) self.setFocus(self.container) def message(self, message): dialog = xbmcgui.Dialog() dialog.ok(" My message title", message) def onClick(self, controlId): if controlId == 5: self.close() return elif controlId == 99: window = xbmcgui.Window(xbmcgui.getCurrentWindowId()) del window self.close() return elif controlId == 6: item = self.container.getSelectedItem() if item.isSelected() == True: label = item.getLabel().replace(valid, '') item.setLabel(label) item.select(False) sPluginSettingsName = ('%s_%s') % ( sDips, item.getProperty('sitename')) cConfig().setSetting(sPluginSettingsName, str('false')) else: label = ('%s %s') % (item.getLabel(), valid) item.setLabel(label) item.select(True) sPluginSettingsName = ('%s_%s') % ( sDips, item.getProperty('sitename')) cConfig().setSetting(sPluginSettingsName, str('true')) return def onFocus(self, controlId): self.controlId = controlId def _close_dialog(self): self.close() # def onAction( self, action ): # if action.getId() in ( 9, 10, 92, 216, 247, 257, 275, 61467, 61448, ): # self.close() wd = XMLDialog('DialogSelect.xml', cConfig().getAddonPath(), "Default") wd.doModal() del wd return elif (env == 'thumb'): dialog = xbmcgui.Dialog() if dialog.yesno( 'vStream', 'Êtes-vous sûr ? Ceci effacera toutes les thumbnails ', '', '', 'Non', 'Oui'): xbmc.executebuiltin( "XBMC.Notification(Clear Thumbnails ,Successful,2000," ")") path = VStranslatePath('special://userdata/Thumbnails/') path2 = VStranslatePath('special://userdata/Database/') for i in os.listdir(path): folders = os.path.join(path, i).encode('utf-8') if os.path.isdir(folders): p = next(os.walk(folders))[2] for x in p: os.remove(os.path.join(folders, x).encode('utf-8')) filenames = next(os.walk(path2))[2] for x in filenames: if "exture" in x: con = sqlite3.connect( os.path.join(path2, x).encode('utf-8')) cursor = con.cursor() cursor.execute("DELETE FROM texture") con.commit() cursor.close() con.close() return else: return return
#-*- coding: utf-8 -*- #Venom. from config import cConfig import xbmc, xbmcgui, xbmcaddon import sys, os import urllib, urllib2 import sqlite3 sLibrary = xbmc.translatePath(cConfig().getAddonPath()).decode("utf-8") sys.path.append(sLibrary) from resources.lib.util import VStranslatePath SITE_IDENTIFIER = 'runscript' SITE_NAME = 'runscript' class cClear: def __init__(self): self.main(sys.argv[1]) #self.__sFunctionName = '' def main(self, env): if (env == 'urlresolver'): xbmcaddon.Addon('script.module.urlresolver').openSettings() return elif (env == 'metahandler'): xbmcaddon.Addon('script.module.metahandler').openSettings()
def main(self, env): if (env == 'urlresolver'): xbmcaddon.Addon('script.module.urlresolver').openSettings() return elif (env == 'metahandler'): xbmcaddon.Addon('script.module.metahandler').openSettings() return elif (env == 'changelog'): try: sUrl = 'https://raw.githubusercontent.com/Kodi-vStream/venom-xbmc-addons/master/plugin.video.vstream/changelog.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() from about import cAbout cAbout().TextBoxes('vStream Changelog', sContent) except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return elif (env == 'soutient'): try: sUrl = 'https://raw.githubusercontent.com/Kodi-vStream/venom-xbmc-addons/master/plugin.video.vstream/soutient.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() from about import cAbout cAbout().TextBoxes('vStream Soutient', sContent) except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return elif (env == 'addon'): dialog = xbmcgui.Dialog() if dialog.yesno('vStream', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): cached_fav = cConfig().getFileFav() cached_DB = cConfig().getFileDB() self.ClearDir2(xbmc.translatePath(cached_fav), True) self.ClearDir2(xbmc.translatePath(cached_DB), True) xbmc.executebuiltin( "XBMC.Notification(Clear Addon Cache,Successful,5000," ")") return elif (env == 'xbmc'): dialog = xbmcgui.Dialog() if dialog.yesno('vStream', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): self.ClearDir(xbmc.translatePath('special://temp/'), True) xbmc.executebuiltin( "XBMC.Notification(Clear XBMC Cache,Successful,5000," ")") return elif (env == 'fi'): dialog = xbmcgui.Dialog() if dialog.yesno('vStream', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): xbmc.executebuiltin( "XBMC.Notification(Clear .fi Files ,Successful,2000," ")") path = xbmc.translatePath('special://temp/') filenames = next(os.walk(path))[2] for i in filenames: if ".fi" in i: os.remove(os.path.join(path, i)) return elif (env == 'thumb'): dialog = xbmcgui.Dialog() if dialog.yesno( 'vStream', 'Êtes-vous sûr ? Ceci effacera toutes les thumbnails ', '', '', 'Non', 'Oui'): xbmc.executebuiltin( "XBMC.Notification(Clear Thumbnails ,Successful,2000," ")") path = xbmc.translatePath('special://userdata/Thumbnails/') path2 = xbmc.translatePath('special://userdata/Database/') for i in os.listdir(path): folders = os.path.join(path, i) if os.path.isdir(folders): p = next(os.walk(folders))[2] for x in p: os.remove(os.path.join(folders, x)) filenames = next(os.walk(path2))[2] for x in filenames: if "exture" in x: con = sqlite3.connect(os.path.join(path2, x)) cursor = con.cursor() cursor.execute("DELETE FROM texture") con.commit() cursor.close() con.close() return else: return return
def __checkversion(self): service_version = cConfig().getSetting('service_version') if (service_version): version = cConfig().getAddonVersion() if (version > service_version): try: sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/plugin.video.vstream/changelog.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() self.TextBoxes('Changelog', sContent) cConfig().setSetting('service_version', str(cConfig().getAddonVersion())) return except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return else: cConfig().setSetting('service_version', str(cConfig().getAddonVersion())) return
def main(self, env): if (env == 'urlresolver'): xbmcaddon.Addon('script.module.urlresolver').openSettings() return elif (env == 'metahandler'): xbmcaddon.Addon('script.module.metahandler').openSettings() return elif (env == 'changelog'): try: sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/plugin.video.vstream/changelog.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() from about import cAbout cAbout().TextBoxes('OTV_MEDIA Changelog', sContent) except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return elif (env == 'soutient'): try: sUrl = 'https://raw.githubusercontent.com/LordVenom/venom-xbmc-addons/master/plugin.video.vstream/soutient.txt' oRequest = urllib2.Request(sUrl) oResponse = urllib2.urlopen(oRequest) sContent = oResponse.read() from about import cAbout cAbout().TextBoxes('OTV_MEDIA Soutient', sContent) except: cConfig().error("%s,%s" % (cConfig().getlanguage(30205), sUrl)) return elif (env == 'addon'): dialog = xbmcgui.Dialog() if dialog.yesno('OTV_MEDIA', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): cached_fav = cConfig().getFileFav() cached_DB = cConfig().getFileDB() self.ClearDir2(xbmc.translatePath(cached_fav), True) self.ClearDir2(xbmc.translatePath(cached_DB), True) xbmc.executebuiltin( "XBMC.Notification(Clear Addon Cache,Successful,5000," ")") return elif (env == 'xbmc'): dialog = xbmcgui.Dialog() if dialog.yesno('OTV_MEDIA', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): self.ClearDir(xbmc.translatePath('special://temp/'), True) xbmc.executebuiltin( "XBMC.Notification(Clear XBMC Cache,Successful,5000," ")") return else: return return
#-*- coding: utf-8 -*- #Venom from config import cConfig from resources.lib.gui.gui import cGui import urllib, urllib2 import xbmc, xbmcgui, xbmcaddon import xbmcvfs import sys, datetime, time, os sLibrary = xbmc.translatePath(cConfig().getAddonPath()) sys.path.append(sLibrary) from resources.lib.handler.requestHandler import cRequestHandler class cAbout: def GGcreateDialogOK(self, label): oDialog = xbmcgui.Dialog() oDialog.ok('vStream', label) return oDialog def GGcreateDialogYesNo(self, label): oDialog = xbmcgui.Dialog() qst = oDialog.yesno("vStream", label) return qst def GGcreateDialog(self, sSite): oDialog = xbmcgui.DialogProgress() oDialog.create(sSite) return oDialog
#-*- coding: utf-8 -*- #Venom. from config import cConfig import xbmc, xbmcgui, xbmcaddon import sys, os import urllib, urllib2 try: from sqlite3 import dbapi2 as sqlite cConfig().log('SQLITE 3 as DB engine') except: from pysqlite2 import dbapi2 as sqlite cConfig().log('SQLITE 2 as DB engine') sLibrary = xbmc.translatePath(cConfig().getAddonPath()).decode("utf-8") sys.path.append(sLibrary) from resources.lib.util import VStranslatePath SITE_IDENTIFIER = 'runscript' SITE_NAME = 'runscript' class cClear: def __init__(self): self.main(sys.argv[1]) #self.__sFunctionName = '' def main(self, env):
def checkdownload(self): result = self.resultGit() total = len(result) dialog = cConfig().createDialog('Update') site = [] sdown = 0 if result: for i in result: cConfig().updateDialog(dialog, total) try: rootpath = self.getRootPath(i['path']) if (self.size(rootpath) != i['size']): try: self.__download(i['download_url'], rootpath) site.append("[COLOR green]"+i['name'].encode("utf-8")+"[/COLOR]") sdown = sdown+1 except: site.append("[COLOR red]"+i['name'].encode("utf-8")+"[/COLOR]") sdown = sdown+1 pass except: pass cConfig().finishDialog(dialog) sContent = "Fichier mise à jour %s / %s \n %s" % (sdown, total, site) #self.TextBoxes('vStream mise à Jour', sContent) cConfig().setSetting('service_time', str(datetime.datetime.now())) cConfig().setSetting('home_update', str('false')) fin = cConfig().createDialogOK(sContent) cConfig().update() return
def resultGit2(self, link): try: import json except: import simplejson as json try: dialog = self.GGcreateDialog('Mise à jour en cours') if (link == 'link1'): sUrl = [ 'vstream/resources/sites', 'vstream/resources/hosters', 'vstream/resources', 'vstream', 'vstream/resources/lib/handler', 'vstream/resources/lib/gui', 'vstream/resources/lib', 'vstream/resources/language/French', 'vstream/resources/skins/default/720p', 'Gamegit/contents/resources/lib' ] if (link == 'link2'): sUrl = [ 'vstream/resources/art/sites', 'vstream/resources/art/tv', 'vstream/resources/art', 'vstream/resources/language/English', 'vstream/resources/skins/default/media' ] total = len(sUrl) total2 = 0 cConfig.COUNT = 1 mode = "Chargement: " repo = ' [ via Repo Github vStream Beta ]' maj = '' for url in sUrl: url2 = 'https://api.github.com/repos/Kodi-vStream/venom-xbmc-addons/contents/plugin.video.' + url if 'Gamegit' in url: url2 = 'https://api.github.com/repos/Gametogit/' + url test = '[COLOR skyblue]' + '>> ' + url + '[/COLOR]' self.GGupdateDialog3(dialog, mode, total, repo, test, maj) oRequestHandler = cRequestHandler(url2) sHtmlContent = oRequestHandler.request() if ('vstream/resources/lib' == url): sHtmlContent = sHtmlContent.replace( 'about.py', 'xxxxx').replace('home.py', 'xxxxx').replace( 'statistic.py', 'xxxxx') if 'Gamegit' in url: sHtmlContent = sHtmlContent.replace('default.py', 'xxxxx') if ('vstream/resources/sites' == url): sHtmlContent = sHtmlContent.replace('en_cours', 'xxxxx').replace( 'trash', 'xxxxx') if (total2 == 0): result = json.loads(sHtmlContent) else: result += json.loads(sHtmlContent) total2 = total2 + 1 endList = "[COLOR skyblue] [ OK ][/COLOR]\n\n[COLOR skyblue] >> Liste Fichiers Téléchargées - Patientez...[/COLOR]" erase = "\n\n\n\n" self.GGupdateDialog2(dialog, erase) self.GGupdateDialog2(dialog, endList) xbmc.sleep(2000) self.GGupdateDialog2(dialog, erase) except: cConfig().showInfo("Maj Vstream", "Erreur: Veuillez réessayer plus tard", 3) return False return result
def main(self, env): if (env == 'urlresolver'): xbmcaddon.Addon('script.module.urlresolver').openSettings() return elif (env == 'metahandler'): xbmcaddon.Addon('script.module.metahandler').openSettings() return elif (env == 'addon'): dialog = xbmcgui.Dialog() if dialog.yesno('TvWatch', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): #cached_fav = cConfig().getFileFav() #cached_DB = cConfig().getFileDB() cached_Cache = cConfig().getFileCache() #self.ClearDir2(util.VStranslatePath(cached_fav),True) #self.ClearDir2(util.VStranslatePath(cached_DB),True) self.ClearDir2(util.VStranslatePath(cached_Cache), True) xbmc.executebuiltin( "XBMC.Notification(Clear Addon Cache,Successful,5000," ")") return elif (env == 'clean'): dialog = xbmcgui.Dialog() liste = [ 'Historiques', 'Lecture en cours', 'Marqués vues', 'Marque-Pages', 'Téléchargements' ] ret = dialog.select('BDD à supprimer', liste) cached_DB = cConfig().getFileDB() sql_drop = "" if ret > -1: if ret == 0: sql_drop = "DROP TABLE history" elif ret == 1: sql_drop = "DROP TABLE resume" elif ret == 2: sql_drop = "DROP TABLE watched" elif ret == 3: sql_drop = "DROP TABLE favorite" elif ret == 4: sql_drop = "DROP TABLE download" try: db = sqlite.connect(cached_DB) dbcur = db.cursor() dbcur.execute(sql_drop) db.commit() dbcur.close() db.close() xbmc.executebuiltin( "XBMC.Notification(Suppression BDD,Successful,5000," ")") except: xbmc.executebuiltin( "XBMC.Notification(Suppresion BDD,Error,5000," ")") return elif (env == 'xbmc'): dialog = xbmcgui.Dialog() if dialog.yesno('TvWatch', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): self.ClearDir(util.VStranslatePath('special://temp/'), True) xbmc.executebuiltin( "XBMC.Notification(Clear XBMC Cache,Successful,5000," ")") return elif (env == 'fi'): dialog = xbmcgui.Dialog() if dialog.yesno('TvWatch', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): xbmc.executebuiltin( "XBMC.Notification(Clear .fi Files ,Successful,2000," ")") path = util.VStranslatePath('special://temp/') filenames = next(os.walk(path))[2] for i in filenames: if ".fi" in i: os.remove(os.path.join(path, i)) return elif (env == 'uplog'): dialog = xbmcgui.Dialog() if dialog.yesno('TvWatch', 'Êtes-vous sûr ?', '', '', 'Non', 'Oui'): path = util.VStranslatePath('special://logpath/') UA = 'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:50.0) Gecko/20100101 Firefox/50.0' headers = {'User-Agent': UA} filenames = next(os.walk(path))[2] for i in filenames: if 'kodi.log' in i: post_data = {} cUrl = 'http://slexy.org/index.php/submit' logop = open(path + i, 'rb') result = logop.read() logop.close() post_data['raw_paste'] = result post_data['author'] = 'kodi.log' post_data['language'] = 'text' post_data['permissions'] = 1 #private post_data['expire'] = 259200 #3j post_data['submit'] = 'Submit+Paste' request = urllib2.Request(cUrl, urllib.urlencode(post_data), headers) reponse = urllib2.urlopen(request) code = reponse.geturl().replace( 'http://slexy.org/view/', '') reponse.close() util.VScreateDialogOK( 'Ce code doit être transmis lorsque vous ouvrez une issue veuillez le noter:' + ' ' + code) return elif (env == 'sendLogsByFTP'): from resources.lib.ftpmanager import cFtpManager util.VS_show_busy_dialog() cFtpManager().sendLogs() util.VS_hide_busy_dialog() util.VScreateDialogOK(util.VSlang(30464)) elif (env == 'selectDlFolder'): dlFolder = xbmcgui.Dialog().browse(0, "TvWatch", "files") cConfig().setSetting('dlFolder', str(dlFolder)) elif (env == 'deleteCache'): from resources.lib.db import cDb if util.VScreateDialogYesNo(util.VSlang(30466)): util.VSlog("Delete Cache from RunScript") util.VS_show_busy_dialog() # Delete tvwatch.db cDb(True).dropTables() # Delete metada.db path = util.VSGetCachePath() dirs, files = xbmcvfs.listdir(path) for f in files: if "settings.xml" not in f: f = os.path.join(path, f).decode("utf-8") xbmcvfs.delete(f) util.VS_hide_busy_dialog() util.VScreateDialogOK(util.VSlang(30467)) xbmc.executebuiltin('Container.Refresh') elif (env == 'search'): from resources.lib.handler.pluginHandler import cPluginHandler valid = '[COLOR khaki][x][/COLOR]' class XMLDialog(xbmcgui.WindowXMLDialog): def __init__(self, *args, **kwargs): xbmcgui.WindowXMLDialog.__init__(self) pass def onInit(self): self.container = self.getControl(6) self.button = self.getControl(5) self.getControl(3).setVisible(False) self.getControl(1).setLabel(cConfig().getlanguage(30094)) self.button.setLabel('OK') listitems = [] oPluginHandler = cPluginHandler() aPlugins = oPluginHandler.getSearchPlugins() for aPlugin in aPlugins: #teste si deja dans le dsip sPluginSettingsName = 'plugin_' + aPlugin[1] bPlugin = cConfig().getSetting(sPluginSettingsName) icon = os.path.join( unicode(cConfig().getRootArt(), 'utf-8'), 'sites', aPlugin[1] + '.png') stitle = aPlugin[0].replace( '[COLOR violet]', '').replace('[COLOR orange]', '').replace('[/COLOR]', '') if (bPlugin == 'true'): stitle = ('%s %s') % (stitle, valid) listitem = xbmcgui.ListItem(label=stitle, label2=aPlugin[2]) listitem.setArt({'icon': icon, 'thumb': icon}) listitem.setProperty('Addon.Summary', aPlugin[2]) listitem.setProperty('sitename', aPlugin[1]) if (bPlugin == 'true'): listitem.select(True) listitems.append(listitem) self.container.addItems(listitems) self.setFocus(self.container) def message(self, message): dialog = xbmcgui.Dialog() dialog.ok(" My message title", message) def onClick(self, controlId): if controlId == 5: self.close() return elif controlId == 99: window = xbmcgui.Window(xbmcgui.getCurrentWindowId()) del window self.close() return elif controlId == 7: window = xbmcgui.Window(xbmcgui.getCurrentWindowId()) del window self.close() return elif controlId == 6: item = self.container.getSelectedItem() if item.isSelected() == True: label = item.getLabel().replace(valid, '') item.setLabel(label) item.select(False) sPluginSettingsName = ('plugin_%s') % ( item.getProperty('sitename')) cConfig().setSetting(sPluginSettingsName, str('false')) else: label = ('%s %s') % (item.getLabel(), valid) item.setLabel(label) item.select(True) sPluginSettingsName = ('plugin_%s') % ( item.getProperty('sitename')) cConfig().setSetting(sPluginSettingsName, str('true')) return def onFocus(self, controlId): self.controlId = controlId def _close_dialog(self): self.close() # def onAction( self, action ): # if action.getId() in ( 9, 10, 92, 216, 247, 257, 275, 61467, 61448, ): # self.close() wd = XMLDialog('DialogSelect.xml', cConfig().getAddonPath(), "Default") wd.doModal() del wd return elif (env == 'thumb'): dialog = xbmcgui.Dialog() if dialog.yesno( 'TvWatch', 'Êtes-vous sûr ? Ceci effacera toutes les thumbnails ', '', '', 'Non', 'Oui'): xbmc.executebuiltin( "XBMC.Notification(Clear Thumbnails ,Successful,2000," ")") path = util.VStranslatePath('special://userdata/Thumbnails/') path2 = util.VStranslatePath('special://userdata/Database/') for i in os.listdir(path): folders = os.path.join(path, i).encode('utf-8') if os.path.isdir(folders): p = next(os.walk(folders))[2] for x in p: os.remove(os.path.join(folders, x).encode('utf-8')) filenames = next(os.walk(path2))[2] for x in filenames: if "exture" in x: con = sqlite.connect( os.path.join(path2, x).encode('utf-8')) cursor = con.cursor() cursor.execute("DELETE FROM texture") con.commit() cursor.close() con.close() return else: return return
def checkdownload(self, link): if (link == 'link1'): siteLocal = self.siteOff() siteKO = [] siteKO2 = [] siteGit = [] result = self.resultGit2(link) total = len(result) dialog = self.GGcreateDialog('Mise à jour') site = [] sdown = 0 cConfig.COUNT = 1 mode = "Vérification: " vstream = "[COLOR skyblue]>> vStream déjà à jour ;-)[/COLOR]" repo = '' if result: for i in result: maj = '' c = i['name'] if (link == 'link1') and ( 'plugin.video.vstream/resources/sites/' in i['path']): siteGit.append(c) test = '[COLOR skyblue]' + '>> ' + c + '[/COLOR]' self.GGupdateDialog3(dialog, mode, total, repo, test, maj) try: rootpath = self.getRootPath(i['path']) if (self.size(rootpath) != i['size']): try: maj = '[COLOR lime]' + 'Maj Fichier: ' + c self.GGupdateDialog3(dialog, mode, total, repo, test, maj) self.__download(i['download_url'], rootpath) site.append("[COLOR lime]" + i['name'].encode("utf-8") + "[/COLOR]") sdown = sdown + 1 except: site.append("[COLOR red]" + i['name'].encode("utf-8") + "[/COLOR]") sdown = sdown + 1 pass except: pass if (link == 'link1'): for a in siteLocal: if a in siteGit: pass else: b = a.replace('.py', '') siteKO.append(a.encode("utf-8")) siteKO2.append("[COLOR skyblue]" + b.encode("utf-8") + "[/COLOR]") self.GGfinishDialog(dialog) compteur = '[COLOR skyblue]' + str(sdown) + '/' + str( total) + '[/COLOR]' if sdown > 0: sContent = "Fichier mis à jour: %s \n %s" % (compteur, site) else: sContent = "Fichier mis à jour: %s \n\n %s" % (compteur, vstream) fin = self.GGcreateDialogOK(sContent) if (link == 'link1'): t = len(siteKO) if (t > 0) and (t < 15) and (siteGit > 40): sContent = "Les sites suivants ne fonctionnent plus. \nVoulez-vous les désactiver de vStream ? \n %s" % ( siteKO2) oDialog = self.GGcreateDialogYesNo(sContent) if (oDialog == 1): for a in siteKO: self.__erase(a) cConfig().showInfo('vStream', 'Sites désactivés', 3) for s in site: if ('about.py' in s): sContent = '[COLOR skyblue]' + 'Attention !!' + '[/COLOR]' + '\nLe fichier ' + '[COLOR lime]' + 'about.py ' + '[/COLOR]' + ' a été MAJ.' + '\nVeuillez relancer le lien' + '[COLOR green]' + ' Maj (Sites/Hosters/Configs)' + '[/COLOR]' + '\npour être 100% à jour et éviter les bugs.' fin2 = self.GGcreateDialogOK(sContent) self.GGupdate() return
def __checkdownload(self, service_md5): aPlugins = self.getPlugins() total = len(aPlugins) dialog = cConfig().createDialog('Update') sContent = "" sdown = 0 for aPlugin in aPlugins: cConfig().updateDialog(dialog, total) RootUrl = aPlugin[0] WebUrl = aPlugin[1] ItemName = aPlugin[2] PlugWeb = self.get_remote_md5_sum(WebUrl) PlugRoot = self.get_root_md5_sum(RootUrl) if (PlugWeb != PlugRoot) and (PlugWeb): try: self.__download(WebUrl, RootUrl) sContent += "[COLOR green]" + ItemName + "[/COLOR] \n" sdown = sdown + 1 except: sContent += "[COLOR red]" + ItemName + "[/COLOR] \n" cConfig().finishDialog(dialog) sContent += "Fichier mise à jour %s / %s" % (sdown, total) #self.TextBoxes('vStream mise à Jour', sContent) cConfig().setSetting('service_time', str(datetime.datetime.now())) cConfig().setSetting('service_md5', service_md5) cConfig().setSetting('home_update', str('false')) cConfig().createDialogOK(sContent) return
def checkdownload(self): result = self.resultGit() total = len(result) dialog = cConfig().createDialog('Update') site = [] sdown = 0 if result: for i in result: cConfig().updateDialog(dialog, total) try: rootpath = self.getRootPath(i['path']) if (self.size(rootpath) != i['size']): try: self.__download(i['download_url'], rootpath) site.append("[COLOR green]" + i['name'].encode("utf-8") + "[/COLOR]") sdown = sdown + 1 except: site.append("[COLOR red]" + i['name'].encode("utf-8") + "[/COLOR]") sdown = sdown + 1 pass except: pass cConfig().finishDialog(dialog) sContent = "Fichier mise à jour %s / %s \n %s" % (sdown, total, site) #self.TextBoxes('vStream mise à Jour', sContent) cConfig().setSetting('service_time', str(datetime.datetime.now())) cConfig().setSetting('home_update', str('false')) fin = cConfig().createDialogOK(sContent) cConfig().update() return
def __init__(self, config_file): self.cfg = cConfig(config_file)