示例#1
0
    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
示例#2
0
    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
示例#3
0
 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
示例#4
0
    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
示例#5
0
 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
示例#6
0
 def getRootPath(self, folder):
     sMath = cConfig().getAddonPath().replace('plugin.video.vstream', '') 
     
     sFolder = os.path.join(sMath, folder)
     # xbox hack        
     sFolder = sFolder.replace('\\', '/')
     return sFolder
示例#7
0
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)    
示例#8
0
    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
示例#9
0
    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
示例#10
0
    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
示例#11
0
    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
示例#12
0
    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
示例#13
0
    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
示例#14
0
 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
示例#15
0
    def getPlugins(self):

        sFolder = cConfig().getAddonPath()
        sFolder = os.path.join(sFolder, 'resources/sites')

        # xbox hack        
        sFolder = sFolder.replace('\\', '/')
        
        aFileNames = self.__getFileNamesFromFolder(sFolder)
        return aFileNames
示例#16
0
    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
示例#17
0
    def getPlugins(self):

        sFolder = cConfig().getAddonPath()
        sFolder = os.path.join(sFolder, 'resources/sites')

        # xbox hack
        sFolder = sFolder.replace('\\', '/')

        aFileNames = self.__getFileNamesFromFolder(sFolder)
        return aFileNames
示例#18
0
 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
示例#19
0
 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()
示例#20
0
    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
示例#21
0
    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
示例#22
0
                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)
示例#23
0
 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
示例#24
0
    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
示例#25
0
    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)
示例#27
0
    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
示例#28
0
    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
示例#29
0
 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
示例#30
0
    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
示例#31
0
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)    
示例#32
0
    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
示例#33
0
    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
示例#34
0
    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
示例#35
0
 def __init__(self):
     self.oConfig = cConfig()
     self.client_id = '85aab916fa0aa0b50a29'
     self.client_secret = '3276c40a94a9752510326873f2361e7b80df1a8e'
示例#36
0
 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
示例#37
0
#-*- 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()
示例#38
0
    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
示例#39
0
#-*- 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()
示例#40
0
    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
示例#41
0
 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
示例#42
0
    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
示例#43
0
#-*- 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
示例#44
0
#-*- 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):
示例#45
0
    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
示例#46
0
    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
示例#47
0
    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
示例#48
0
    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
示例#49
0
    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
示例#50
0
    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
示例#51
0
 def __init__(self, config_file):
     self.cfg = cConfig(config_file)