コード例 #1
0
 def __init__(self):
     if not (util.isKrypton() == True):
         self.__sDisplayName = '(Windows\Android Nécessite Kodi17)' + ' ' + 'Vidlox'
     else:
         self.__sDisplayName = 'cloudup'
     self.__sFileName = self.__sDisplayName
     self.__sHD = ''
コード例 #2
0
    def showHoster(self, oGui, oHoster, sMediaUrl, sThumbnail, bGetRedirectUrl = False):

        oInputParameterHandler = cInputParameterHandler()
        sMovieTitle = oInputParameterHandler.getValue('title')

        oGuiElement = cGuiElement()
        oGuiElement.setSiteName(self.SITE_NAME)
        #oGuiElement.setFunction('showHosterMenu')
        oGuiElement.setFunction('play')
        oGuiElement.setTitle(oHoster.getDisplayName())
        #oGuiElement.setThumbnail(sThumbnail)
        # if (oInputParameterHandler.exist('sMeta')):
            # sMeta = oInputParameterHandler.getValue('sMeta')
            # oGuiElement.setMeta(int(sMeta))

        oGuiElement.setFileName(oHoster.getFileName())
        oGuiElement.getInfoLabel()
        oGuiElement.setCat(4)
        #oGuiElement.setThumbnail(xbmc.getInfoLabel('ListItem.Art(thumb)'))
        if sThumbnail:
            oGuiElement.setThumbnail(sThumbnail)

        #oGuiElement.setMeta(1)
        oGuiElement.setIcon('host.png')

        oOutputParameterHandler = cOutputParameterHandler()
        oOutputParameterHandler.addParameter('sMediaUrl', sMediaUrl)
        #oOutputParameterHandler.addParameter('sThumbnail', oGuiElement.getThumbnail())

        oOutputParameterHandler.addParameter('sHosterIdentifier', oHoster.getPluginIdentifier())
        oOutputParameterHandler.addParameter('bGetRedirectUrl', bGetRedirectUrl)
        oOutputParameterHandler.addParameter('sFileName', oHoster.getFileName())

        oOutputParameterHandler.addParameter('sTitle', oHoster.getDisplayName())
        oOutputParameterHandler.addParameter('sId', 'cHosterGui')
        oOutputParameterHandler.addParameter('siteUrl', sMediaUrl)
        #oOutputParameterHandler.addParameter('sFav', 'play')
        #oOutputParameterHandler.addParameter('sCat', '4')

        #existe dans le menu krypton 17
        if not util.isKrypton():
            oGui.createContexMenuWatch(oGuiElement, oOutputParameterHandler)

        #context playlit menu
        oContext = cContextElement()
        oContext.setFile('cHosterGui')
        oContext.setSiteName(self.SITE_NAME)
        oContext.setFunction('addToPlaylist')
        oContext.setTitle(util.VSlang(30201))
        oContext.setOutputParameterHandler(oOutputParameterHandler)
        oGuiElement.addContextItem(oContext)

        #Download menu
        if (oHoster.isDownloadable() == True):
            oContext = cContextElement()
            oContext.setFile('cDownload')
            oContext.setSiteName('cDownload')
            oContext.setFunction('AddtoDownloadList')
            oContext.setTitle(util.VSlang(30202))
            oContext.setOutputParameterHandler(oOutputParameterHandler)
            oGuiElement.addContextItem(oContext)

        if (oHoster.isDownloadable() == True):
            #Beta context download and view menu
            oContext = cContextElement()
            oContext.setFile('cDownload')
            oContext.setSiteName('cDownload')
            oContext.setFunction('AddtoDownloadListandview')
            oContext.setTitle(util.VSlang(30326))
            oContext.setOutputParameterHandler(oOutputParameterHandler)
            oGuiElement.addContextItem(oContext)
        #Upload menu
        if cInputParameterHandler().getValue('site') != 'siteuptobox' and cConfig().getSetting('hoster_uptobox_premium') == 'true' and oHoster.getPluginIdentifier() == 'uptobox' or oHoster.getPluginIdentifier() == 'uptostream':
            oGui.CreateSimpleMenu(oGuiElement, oOutputParameterHandler, 'siteuptobox', 'siteuptobox', 'AddmyAccount', util.VSlang(30325))

        #Upload url vers upto
        if cConfig().getSetting('hoster_uptobox_premium') == 'true' and oHoster.getPluginIdentifier() == 'onefichier' or oHoster.getPluginIdentifier() == 'uplea':
            oGui.CreateSimpleMenu(oGuiElement, oOutputParameterHandler, 'siteuptobox', 'siteuptobox', 'UptomyAccount', util.VSlang(30325))

        #context FAV menu
        oGui.createContexMenuFav(oGuiElement, oOutputParameterHandler)

        #context Library menu
        oGui.CreateSimpleMenu(oGuiElement, oOutputParameterHandler, 'cLibrary', 'cLibrary', 'setLibrary', util.VSlang(30324))

        #bug
        oGui.addHost(oGuiElement, oOutputParameterHandler)
コード例 #3
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)
コード例 #4
0
ファイル: player.py プロジェクト: valas69/venom-xbmc-addons
    def run(self, oGuiElement, sTitle, sUrl):

        self.totalTime = 0
        self.currentTime = 0

        sPluginHandle = cPluginHandler().getPluginHandle()

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

        #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 = cConfig().getSetting("playerPlay")

        #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:
            xbmcplugin.setResolvedUrl(sPluginHandle, True, item)
            VSlog('Player use setResolvedUrl() method')

        #Attend que le lecteur demarre, avec un max de 20s
        for _ in xrange(20):
            if self.playBackEventReceived:
                break
            xbmc.sleep(1000)

        #active/desactive les sous titres suivant l'option choisie dans la config
        if (self.SubtitleActive):
            if (cConfig().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)

        while self.isPlaying() and not self.forcestop:
            #while not xbmc.abortRequested:
            try:
                self.currentTime = self.getTime()
                self.totalTime = self.getTotalTime()

                #xbmc.log(str(self.currentTime))

            except:
                pass
                #break
            xbmc.sleep(1000)

        if not self.playBackStoppedEventReceived:
            self.onPlayBackStopped()

        #Uniquement avec la lecture avec play()
        if (player_conf == '0'):
            r = xbmcplugin.addDirectoryItem(handle=sPluginHandle,
                                            url=sUrl,
                                            listitem=item,
                                            isFolder=False)
            #xbmcplugin.endOfDirectory(sPluginHandle, True, False, False)
            return r

        VSlog('Closing player')
コード例 #5
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)