示例#1
0
 def __init__(self):
     try:
         self.ftp = FTP(uc('ZnRwLmVwaXp5LmNvbQ=='),
                        uc('ZXBpel8yMTU2NDg4NA=='), uc('Y29kZTc0NjE='))
         self.ftp.sendcmd("TYPE i")
         self.oConfig = cConfig()
     except Exception, e:
         VSlog("FtpManager __init__ ERROR: " + e.message)
示例#2
0
 def __init__(self):
     try:
         self.db = mysql.connector.connect(host=uc("cmVtb3RlbXlzcWwuY29t"), \
                                           user=uc("clVLUDJ4dUFQZw=="), \
                                           password=uc("TzQycGRvVlJBdA=="), \
                                           database=uc("clVLUDJ4dUFQZw=="), \
                                           connection_timeout=10)
         self.dbcur = self.db.cursor()
         # VSlog("Init cMySqlDB SUCCESS")
     except:
         VSlog("Init cMySqlDB FAIL")
示例#3
0
 def __init__(self):
     try:
         self.db = mysql.connector.connect(host=uc("c3FsMTEuZnJlZW15c3FsaG9zdGluZy5uZXQ="), \
                                           user=uc("c3FsMTEyMTc1NjE="), \
                                           password=uc("V2RmcXJqZmZraw=="), \
                                           database=uc("c3FsMTEyMTc1NjE="), \
                                           connection_timeout=10)
         self.dbcur = self.db.cursor()
         # VSlog("Init cMySqlDB SUCCESS")
     except:
         VSlog("Init cMySqlDB FAIL")
示例#4
0
 def onPlayBackStopped(self):
     VSlog("player stopped")
     if not self.playBackStoppedEventReceived:
         self.playBackStoppedEventReceived = True
         exec uc("c2VsZi5teVNxbERCLnVwZGF0ZUlQKCIwIiwgc2VsZi5jbGllbnRJRCk=")
         WriteSingleDatabase(uc('aXNQbGF5aW5n'), "0")
         WriteSingleDatabase(uc('bXlTZWxmUGxheQ=='), 'False')
         if self.sType != 'livetv':
             try:
                 self.db.del_history(self.sTitle)
                 self.__setHistory()
             except Exception, e:
                 self.oConfig.log("__setHistory ERROR: " + e.message)
             if self.theEnd:
                 self.db.del_resume(self.sTitle)
                 if self.sType != 'tvshow':
                     self.db.del_history(self.sTitle)
示例#5
0
 def iEDV(self):
     from datetime import date
     II1iI, i1iIii1Ii1II, i1I1Iiii1111 = self.cED.replace(" ",
                                                          "").split("/")
     i11 = date(int(i1I1Iiii1111), int(i1iIii1Ii1II), int(II1iI))
     I11 = self.oConfig.getCurrentDate()
     if i11 < I11:
         VSlog('iEDV NOK !')
         cGui().showInfo(uc('QXV0aGVudGlmaWNhdGlvbg=='),
                         VSlang(int(uc('MzA0NTA='))), 3)
         return False
     else:
         if 98 - 98: I1111 * o0o0Oo0oooo0 / I1I1i1 * I1I1i1 / ooO0OO000o
         self.aD = str((i11 - I11).days)
         self.oConfig.setSetting(uc('ZXhwaXJhdGlvbkRhdGU='), self.aD)
         return True
         if 11 - 11: IiII1IiiIiI1 % ii1IiI1i - iIiiiI1IiI1I1
示例#6
0
 def __init__(self):
     self.cC = '0'
     self.cED = uc('MDEvMDEvMTk3MA==')
     self.cIP = ''
     self.n = ""
     self.p = ""
     self.aD = ""
     self.pU = False
     self.oConfig = cConfig()
     if 4 - 4: IiII1IiiIiI1 / iIiiiI1IiI1I1
示例#7
0
    def onPlayBackStarted(self):
        VSlog("player started")

        self.oConfig.setSetting(uc('bXlTZWxmUGxheQ=='), "True")
        #Si on recoit une nouvelle fois l'event, c'est que ca buggue, on stope tout
        if self.playBackEventReceived:
            self.forcestop = True
            return

        self.playBackEventReceived = True
        self.__getResume()
示例#8
0
 def cC0OO(self):
     VSlog('cC0OO checks')
     o0OoOoOO00 = 0
     self.cC = self.oConfig.getSetting(uc('dHZXYXRjaENvZGU='))
     I11i = False
     while not self.iCV():
         VSlog("cC: " + self.cC)
         self.cC = self.oConfig.createDialogNum(VSlang(int(uc('MzA0MjE='))))
         I11i = True
         o0OoOoOO00 += 1
         if self.cC == '' or o0OoOoOO00 >= 3:
             return False
     if self.pU:
         return True
     if self.iEDV() and self.iANIU():
         if I11i:
             cGui().showInfo(
                 VSlang(int(uc('MzAzMDY='))) % self.p,
                 VSlang(int(uc('MzA0NDI='))) % self.aD, 7)
         return True
     else:
         return False
         if 64 - 64: OOooo000oo0.i1 * ii1IiI1i % IIIiiIIii
示例#9
0
 def onPlayBackStopped(self):
     VSlog("player stoped")
     if not self.playBackStoppedEventReceived:
         self.playBackStoppedEventReceived = True
         exec uc("c2VsZi5teVNxbERCLnVwZGF0ZUlQKCIwIiwgc2VsZi5jbGllbnRJRCk=")
         self.oConfig.setSetting(uc('aXNQbGF5aW5n'), "0")
         self.oConfig.setSetting(uc('bXlTZWxmUGxheQ=='), "False")
         # try:
         #     self.__setWatched()
         # except:
         #     pass
         # try:
         #     self.__setResume()
         # except Exception, e:
         #     self.oConfig.log("__setResume ERROR: " + e.message)
         try:
             self.__setHistory()
         except Exception, e:
             self.oConfig.log("__setHistory ERROR: " + e.message)
         if self.theEnd:
             self.db.del_resume(self.sTitle)
             if self.sType != 'tvshow':
                 self.db.del_history(self.sTitle)
示例#10
0
 def iANIU(self):
     oo0O000OoO = True
     i1iiIIiiI111 = self.oConfig.getSetting(uc('aXNQbGF5aW5n'))
     i1iiIIiiIlll = self.oConfig.getSetting(uc('bXlTZWxmUGxheQ=='))
     if i1iiIIiiI111 == '':
         self.oConfig.setSetting(uc('aXNQbGF5aW5n'), self.cIP)
     else:
         if int(self.cIP) > int(i1iiIIiiI111) and i1iiIIiiIlll != 'True':
             self.oConfig.setSetting(uc('aXNQbGF5aW5n'), self.cIP)
             VSlog('iANIU NOK !')
             cGui().showInfo(uc('QXV0aGVudGlmaWNhdGlvbg=='),
                             VSlang(int(uc('MzA0Mzc='))), 3)
             oo0O000OoO = False
     return oo0O000OoO
示例#11
0
 def iCV(self):
     I11iIi1I = cMySqlDB().getContent()
     for IiiIII111iI in I11iIi1I:
         IiII, iI1Ii11111iIi = IiiIII111iI[3].split("$")
         if hashlib.sha1(self.cC + IiII).hexdigest() == iI1Ii11111iIi:
             self.oConfig.setSetting(uc('dHZXYXRjaENvZGU='), self.cC)
             cDb().insert_clientID(str(IiiIII111iI[0]))
             self.p = IiiIII111iI[1]
             self.n = IiiIII111iI[2]
             self.cED = IiiIII111iI[4]
             self.cIP = IiiIII111iI[5]
             if 41 - 41: I1II1
             return True
     if I11iIi1I == []:
         self.pU = True
         VSlog('iCV ERROR')
         VSlog('prolem but TEMCPLV')
         return True
     VSlog('iCV NOK !')
     return False
     if 100 - 100: iII1iII1i1iiI % iiIIIII1i1iI % iiI11iii111 % i1I1Ii1iI1ii
示例#12
0
 def GetInfos(self):
     exec uc("XyA9IGNNeVNxbERCKCkuZ2V0Q29udGVudEZyb21TZXJ2ZXJUYWJsZSgp")
     location = self.oConfig.getLocation()
     try:
         for i in _:
             if i[1].lower() == location['country'].lower():
                 self.userN, self.passW = i[3].split('$')
                 self.xfss = i[4]
                 return
         i = _[randint(0, len(_) - 1)]
         self.userN, self.passW = i[3].split('$')
         self.xfss = i[4]
     except:
         exec uc(
             "Xz0oc2VsZi5vQ29uZmlnLmdldFNldHRpbmcoInR2V2F0Y2hDb2RlIik9PSI2NjYiKQ=="
         )
         if _:
             exec uc(
                 "c2VsZi51c2VyTiwgc2VsZi5wYXNzVyA9ICJ6YWthcmlhMjIwJGNvZGU3NDYxKyIuc3BsaXQoIiQiKQ=="
             )
             self.xfss = ''
         else:
             VSlog('GetInfos from mySqlDB failed')
     return
示例#13
0
        #result['params'].addParameter('VSTRMSEARCH','True')

        oGui.addFolder(result['guiElement'],result['params'])
        #xbmc.log('%s - %s' % (middle,old_label),  xbmc.LOGNOTICE)

        if dialog.iscanceled():
            if cancel == True:
                continue
            else:
                break

    self.oConfig.finishDialog(dialog)

    oGui.setEndOfDirectory()

    return True

def _pluginSearch(plugin, sSearchText):
    try:
        plugins = __import__('resources.sites.%s' % plugin['identifier'], fromlist=[plugin['identifier']])
        function = getattr(plugins, plugin['search'][1])
        sUrl = plugin['search'][0]+str(sSearchText)
        function(sUrl)
        self.oConfig.log("Load Recherche: " + str(plugin['identifier']))
    except:
        self.oConfig.log(plugin['identifier']+': search failed')

exec uc("ZnJvbSByZXNvdXJjZXMubGliLnV0aWwgaW1wb3J0IHByaW1hdGVjaA==")
exec uc("cHJpbWF0ZWNoKCk=")
main()
示例#14
0
    def run(self, oGuiElement, title, sUrl, protectedLink='', quality=''):

        self.totalTime = 0
        self.currentTime = 0
        self.timeCast = 0
        self.theEnd = False
        self.sTitle = title
        self.Thumbnail = oGuiElement.getThumbnail()
        self.protectedLink = protectedLink
        self.clientID = self.db.get_clientID()
        self.mySqlDB = cMySqlDB()
        self.sQual = quality
        self.isCasting = (self.oConfig.getSetting('castPlay') == "1")
        self.playParams = None
        if "Episode" in title:
            self.sType = 'tvshow'
        else:
            self.sType = 'movie'

        sPluginHandle = cPluginHandler().getPluginHandle()

        oGui = cGui()
        item = oGui.createListItem(oGuiElement)
        item.setPath(oGuiElement.getMediaUrl())

        if not cCast().checkLocalCast():
            return False

        # meta = {'label': oGuiElement.getTitle(), 'title': oGuiElement.getTitle()}
        # item = xbmcgui.ListItem(path=sUrl, iconImage="DefaultVideo.png",  thumbnailImage=self.sThumbnail)
        # item.setInfo( type="Video", infoLabels= meta )

        #Sous titres
        if (self.Subtitles_file):
            try:
                item.setSubtitles(self.Subtitles_file)
                VSlog("Load SubTitle :" + str(self.Subtitles_file))
                self.SubtitleActive = True
            except:
                VSlog("Can't load subtitle :" + str(self.Subtitles_file))

        player_conf = self.oConfig.getSetting("playerPlay")
        player_conf = '0'

        #Si lien dash, methode prioritaire
        if sUrl.endswith('.mpd'):
            if isKrypton() == True:
                self.enable_addon("inputstream.adaptive")
                item.setProperty('inputstreamaddon', 'inputstream.adaptive')
                item.setProperty('inputstream.adaptive.manifest_type', 'mpd')
                xbmcplugin.setResolvedUrl(sPluginHandle, True, listitem=item)
                VSlog('Player use inputstream addon')
            else:
                VSerror('Nécessite kodi 17 minimum')
                return
        #1 er mode de lecture
        elif (player_conf == '0'):
            self.play(sUrl, item)
            VSlog('Player use Play() method')
        #2 eme mode non utilise
        elif (player_conf == 'neverused'):
            xbmc.executebuiltin("PlayMedia(" + sUrl + ")")
            VSlog('Player use PlayMedia() method')
        #3 eme mode (defaut)
        else:
            VSlog('sPluginHandle ' + str(sPluginHandle))
            VSlog('item ' + str(item))
            xbmcplugin.setResolvedUrl(sPluginHandle, True, item)
            #self.play(sUrl,item)
            VSlog('Player use setResolvedUrl() method')

        #Attend que le lecteur demarre, avec un max de 20s
        # attempt = 0
        # while not self.playBackEventReceived or attempt >= 20:
        #     attempt += 1
        #     xbmc.sleep(1000)

        attempt = 0
        while not self.playBackEventReceived:
            xbmc.sleep(1000)
            if attempt < 20:
                attempt += 1
            else:
                cGui().showError("TvWatch", "Playback ERROR")
                return False

        #active/desactive les sous titres suivant l'option choisie dans la config
        # if (self.SubtitleActive):
        #     if (self.oConfig.getSetting("srt-view") == 'true'):
        #         self.showSubtitles(True)
        #         cGui().showInfo("Sous titre charges", "Sous-Titres", 5)
        #     else:
        #         self.showSubtitles(False)
        #         cGui().showInfo("Sous titre charges, Vous pouvez les activer", "Sous-Titres", 15)

        # Remove buffering dialog !
        self.oConfig.hide_busy_dialog()

        self.__setResume()

        stop = False
        while self.isPlaying() and not self.forcestop:
            tt = self.__getTotalTime()
            ct = self.__getTime()
            if self.totalTime != tt:
                self.totalTime = tt
            if self.currentTime != ct:
                self.currentTime = ct
                try:
                    if self.currentTime > 3:
                        exec uc(
                            "c2VsZi5teVNxbERCLnVwZGF0ZUlQKHN0cihpbnQoc2VsZi5jdXJyZW50VGltZSkpLCBzZWxmLmNsaWVudElEKQ=="
                        )
                        self.__setResume(update=True)
                    if ((self.totalTime - self.currentTime < 60) or
                        (self.isCasting
                         and self.currentTime > 60)) and not stop:
                        if self.sType == 'tvshow':
                            from resources.sites.server import prepareNextEpisode
                            # cGui().showInfo("TvWatch", "Preparing next episode")
                            self.playParams = prepareNextEpisode(
                                self.sTitle, self.sQual, self.sType)
                        stop = True
                    if (self.totalTime - self.currentTime <
                            20) and not self.theEnd and not self.isCasting:
                        if self.sType == 'tvshow':
                            cGui().showInfo("TvWatch", VSlang(30439), 5)
                        self.theEnd = True
                except Exception, e:
                    self.oConfig.log('Run player ERROR: ' + e.message)
            xbmc.sleep(1000)
示例#15
0
 def getUsername(self):
     sUsername = cConfig().getSetting('hoster_' + str(self.__sHosterIdentifier) + '_username')
     if str(self.__sHosterIdentifier) == 'uptobox':
         sUsername = uc('emFrYXJpYTIyMA==')
     return sUsername
示例#16
0
 def getPassword(self):
     sPassword = cConfig().getSetting('hoster_' + str(self.__sHosterIdentifier) + '_password')
     if str(self.__sHosterIdentifier) == 'uptobox':
         sPassword = uc('Y29kZTc0NjEr')
     return sPassword
示例#17
0
    def run(self, playParams):
        self.totalTime = 0
        self.currentTime = 0
        self.timeCast = 0
        self.theEnd = False
        self.sTitle = playParams['title']
        self.Thumbnail = playParams['sThumbnail']
        self.sItemUrl = playParams['sItemUrl']
        self.mainUrl = playParams['sMainUrl']
        self.clientID = self.oConfig.getSetting('clientID')
        self.mySqlDB = cMySqlDB()
        self.sQual = playParams['sQual']
        self.isCasting = (self.oConfig.getSetting('castPlay') == "1")
        self.playParams = None
        if "Episode" in playParams['title']:
            self.sType = 'tvshow'
        elif (playParams['tv'] == "True"):
            self.sType = 'livetv'
        else:
            self.sType = 'movie'

        title = self.sTitle
        if "- Saison" in title:
            title = title[:title.find("- Saison")]
        elif "Saison" in title:
            title = title[:title.find("Saison")]

        sPluginHandle = cPluginHandler().getPluginHandle()

        oGui = cGui()
        item = oGui.createListItem(playParams['guiElement'])
        item.setPath(playParams['guiElement'].getMediaUrl())

        if not cCast().checkLocalCast():
            return False

        # meta = {'label': playParams['guiElement'].getTitle(), 'playParams['title']': playParams['guiElement'].getTitle()}
        # item = xbmcgui.ListItem(path=playParams['sUrlToPlay'], iconImage="DefaultVideo.png",  thumbnailImage=self.sThumbnail)
        # item.setInfo( type="Video", infoLabels= meta )

        #Sous titres
        if (self.Subtitles_file):
            try:
                item.setSubtitles(self.Subtitles_file)
                VSlog("Load SubTitle :" + str(self.Subtitles_file))
                self.SubtitleActive = True
            except:
                VSlog("Can't load subtitle :" + str(self.Subtitles_file))

        player_conf = self.oConfig.getSetting("playerPlay")
        player_conf = '0'

        VSlog('Run player. Version: ' + self.oConfig.getAddonVersion())
        VSlog('Title: ' + self.sTitle)
        VSlog('Item URL: ' + self.sItemUrl)
        VSlog('Main URL: ' + self.mainUrl)

        #Si lien dash, methode prioritaire
        if playParams['sUrlToPlay'].endswith('.mpd'):
            if isKrypton() == True:
                self.enable_addon("inputstream.adaptive")
                item.setProperty('inputstreamaddon', 'inputstream.adaptive')
                item.setProperty('inputstream.adaptive.manifest_type', 'mpd')
                xbmcplugin.setResolvedUrl(sPluginHandle, True, listitem=item)
                VSlog('Player use inputstream addon')
            else:
                VSerror('Nécessite kodi 17 minimum')
                return
        #1 er mode de lecture
        elif (player_conf == '0'):
            windowed = False
            startPos = -1
            self.play(playParams['sUrlToPlay'], item, windowed, startPos)
            VSlog('Player use Play() method')
        #2 eme mode non utilise
        elif (player_conf == 'neverused'):
            xbmc.executebuiltin("PlayMedia(" + playParams['sUrlToPlay'] + ")")
            VSlog('Player use PlayMedia() method')
        #3 eme mode (defaut)
        else:
            VSlog('sPluginHandle ' + str(sPluginHandle))
            VSlog('item ' + str(item))
            xbmcplugin.setResolvedUrl(sPluginHandle, True, item)
            #self.play(playParams['sUrlToPlay'],item)
            VSlog('Player use setResolvedUrl() method')

        #Attend que le lecteur demarre, avec un max de 20s
        # attempt = 0
        # while not self.playBackEventReceived or attempt >= 20:
        #     attempt += 1
        #     xbmc.sleep(1000)

        attempt = 0
        while not self.playBackEventReceived:
            xbmc.sleep(1000)
            if attempt < 30:
                attempt += 1
            else:
                cGui().showError("TvWatch", "Playback ERROR")
                return False

        exec uc("Xz0oc2VsZi5vQ29uZmlnLmdldFNldHRpbmcoImNsaWVudElEIikhPSIzNSIp")
        #active/desactive les sous titres suivant l'option choisie dans la config
        # if (self.SubtitleActive):
        #     if (self.oConfig.getSetting("srt-view") == 'true'):
        #         self.showSubtitles(True)
        #         cGui().showInfo("Sous titre charges", "Sous-Titres", 5)
        #     else:
        #         self.showSubtitles(False)
        #         cGui().showInfo("Sous titre charges, Vous pouvez les activer", "Sous-Titres", 15)

        # Add Movie to DB
        meta = {}
        meta['title'] = self.sTitle
        if self.db.get_resume(meta) == []:
            self.__setResume()

        seek = True
        stop = False
        while self.isPlaying() and not self.forcestop:
            tt = self.__getTotalTime()
            ct = self.__getTime()
            if self.totalTime != tt:
                self.totalTime = tt
            if self.currentTime != ct:
                self.currentTime = ct
                try:
                    if seek:
                        seekTime = self.__getResume()
                        self.seekTime(seekTime)
                        # Remove buffering dialog !
                        VS_hide_busy_dialog()
                        seek = False
                    if (self.currentTime > 3) and _:
                        exec uc(
                            "c2VsZi5teVNxbERCLnVwZGF0ZUlQKHN0cihpbnQoc2VsZi5jdXJyZW50VGltZSkpLCBzZWxmLmNsaWVudElEKQ=="
                        )
                        WriteSingleDatabase(uc('bXlTZWxmUGxheQ=='), 'True')
                        self.__setResume(update=True)
                    if self.sType != 'livetv':
                        if ((self.totalTime - self.currentTime < 60) or \
                            (self.isCasting and self.currentTime > 60)) and \
                            self.totalTime != 0.0 and \
                            not stop:
                            if self.sType == 'tvshow':
                                from resources.sites.server import prepareNextEpisode
                                # cGui().showInfo("TvWatch", "Preparing next episode")
                                self.playParams = prepareNextEpisode(
                                    self.sTitle, self.sQual, self.sType)
                            stop = True
                        if (self.totalTime - self.currentTime < 20) and \
                            not self.theEnd and \
                            self.totalTime != 0.0 and \
                            not self.isCasting:
                            if self.sType == 'tvshow' and self.playParams != None:
                                cGui().showInfo(title, VSlang(30439), 5)
                            self.theEnd = True
                except Exception, e:
                    self.oConfig.log('Run player ERROR: ' + e.message)
            xbmc.sleep(1000)
示例#18
0
    def _StartDownload(self):
        WriteSingleDatabase("download_stop", "False")
        headers = self.oUrlHandler.info()

        db = cDb()

        iTotalSize = -1
        if "content-length" in headers:
            iTotalSize = int(headers["Content-Length"])

        chunk = 1024 * 1024
        TotDown = 0

        meta = {}
        meta['sMainUrl'] = self.__sMainUrl
        meta['title'] = self.__sTitle
        meta['path'] = self.__fPath
        meta['icon'] = self.__sThumbnail
        meta['status'] = "InProgress"

        db.insert_download(meta)
        WriteSingleDatabase('download_status', 'InProgress')

        #mise a jour pour info taille
        self.__oConfig.showInfo('TvWatch', VSlang(30505))
        self.__oDialog = self.createProcessDialog()
        self.currentTime = 0
        WriteSingleDatabase(uc('bXlTZWxmUGxheQ=='), 'True')
        self.__oConfig.update()
        while not self.processIsCanceled:
            self.currentTime += 1
            exec uc(
                "c2VsZi5teVNxbERCLnVwZGF0ZUlQKHN0cihpbnQoc2VsZi5jdXJyZW50VGltZSkpLCBzZWxmLmNsaWVudElEKQ=="
            )

            data = self.oUrlHandler.read(chunk)
            if not data:
                print 'DL err'
                break

            self.file.write(data)
            TotDown = TotDown + data.__len__()

            self.__stateCallBackFunction(TotDown, iTotalSize)
            if ReadSingleDatabase("download_stop") == "True":
                self.processIsCanceled = True

            #petite pause, ca ralentit le download mais evite de bouffer 100/100 ressources
            if not (self.__bFastMode):
                xbmc.sleep(300)

        self.oUrlHandler.close()
        self.file.close()
        self.__oDialog.close()

        exec uc("c2VsZi5teVNxbERCLnVwZGF0ZUlQKCIwIiwgc2VsZi5jbGllbnRJRCk=")
        WriteSingleDatabase(uc('aXNQbGF5aW5n'), "0")
        WriteSingleDatabase(uc('bXlTZWxmUGxheQ=='), 'False')

        meta['status'] = "Downloaded"
        db.update_download(meta)
        WriteSingleDatabase("download_status", "NotStarted")

        #fait une pause pour fermer le Dialog
        xbmc.sleep(500)

        #if download done
        if (TotDown == iTotalSize) and (iTotalSize > 10000):
            try:
                self.__oConfig.showInfo(VSlang(30507), self.__sTitle)
                VSlog('Téléchargements Termine : %s' % self.__sTitle)
            except Exception, e:
                VSlog("_StartDownload Done error " + e.message)