Esempio n. 1
0
 def showNofication(self, sTitle, iSeconds=0):
     if (iSeconds == 0):
         iSeconds = 1000
     else:
         iSeconds = iSeconds * 1000
     xbmc.executebuiltin(
         "Notification(%s,%s,%s,%s)" %
         (bConfig().getLocalizedString(30308),
          (bConfig().getLocalizedString(30309) % str(sTitle)), iSeconds,
          common.Addon.getAddonInfo('icon')))
Esempio n. 2
0
 def setView(self, content='movies'):
     '''
     set the listing to a certain content, makes special views available
     sets view to the viewID which is selected in xStream settings
     '''
     if content == 'movies':
         xbmcplugin.setContent(self.pluginHandle, 'movies')
     elif content == 'tvshows':
         xbmcplugin.setContent(self.pluginHandle, 'tvshows')
     elif content == 'seasons':
         xbmcplugin.setContent(self.pluginHandle, 'seasons')
     elif content == 'episodes':
         xbmcplugin.setContent(self.pluginHandle, 'episodes')
     if bConfig().getSetting('auto-view') == 'true':
         xbmc.executebuiltin("Container.SetViewMode(%s)" %
                             bConfig().getSetting(content + '-view'))
Esempio n. 3
0
 def __init__(self):
     try:
         self.pluginHandle = int(sys.argv[1])
     except:
         self.pluginHandle = 0
     try:
         self.pluginPath = sys.argv[0]
     except:
         self.pluginPath = ''
     self.isMetaOn = bConfig().getSetting('metahandler') == 'true'
     if bConfig().getSetting('metaOverwrite') == 'true':
         self.metaMode = 'replace'
     else:
         self.metaMode = 'add'
     #for globalSearch or alterSearch
     self.globalSearch = False
     self._collectMode = False
     self.searchResults = []
Esempio n. 4
0
    def addFolder(self,
                  oGuiElement,
                  outParams='',
                  bIsFolder=True,
                  iTotal=0,
                  isHoster=False):
        '''
        add GuiElement to Gui, adds listitem to a list
        '''
        # abort xbmc list creation if user requests abort
        if xbmc.abortRequested:
            self.setEndOfDirectory(False)
            raise RuntimeError('UserAborted')
        # store result in list if we searched global for other sources
        if self._collectMode:
            import copy
            self.searchResults.append({
                'guiElement': oGuiElement,
                'params': copy.deepcopy(outParams),
                'isFolder': bIsFolder
            })
            return

        if not oGuiElement._isMetaSet and self.isMetaOn and oGuiElement._mediaType:
            imdbID = outParams.getValue('imdbID')
            if imdbID:
                oGuiElement.getMeta(oGuiElement._mediaType,
                                    imdbID,
                                    mode=self.metaMode)
            else:
                oGuiElement.getMeta(oGuiElement._mediaType, mode=self.metaMode)

        sItemUrl = self.__createItemUrl(oGuiElement, bIsFolder, outParams)
        oListItem = self.createListItem(oGuiElement)
        if not bIsFolder and bConfig().getSetting('hosterSelect') == 'List':
            bIsFolder = True
        if isHoster:
            bIsFolder = False
        oListItem = self.__createContextMenu(oGuiElement, oListItem, bIsFolder,
                                             sItemUrl, outParams)

        if not bIsFolder:
            oListItem.setProperty('IsPlayable', 'true')
        xbmcplugin.addDirectoryItem(self.pluginHandle,
                                    sItemUrl,
                                    oListItem,
                                    isFolder=bIsFolder,
                                    totalItems=iTotal)
Esempio n. 5
0
 def __init__(self, sUrl, caching=True, ignoreErrors=False):
     self.__sUrl = sUrl
     self.__sRealUrl = ''
     self.__cType = 0
     self.__aParameters = {}
     self.__headerEntries = {}
     self.__cachePath = ''
     self._cookiePath = ''
     self.ignoreDiscard(False)
     self.ignoreExpired(False)
     self.caching = caching
     self.ignoreErrors = ignoreErrors
     self.cacheTime = bConfig().getSetting('cacheTime')
     self.removeBreakLines(True)
     self.removeNewLines(True)
     self.__setDefaultHeader()
     self.setCachePath()
     self.__setCookiePath()
     self.__sResponseHeader = ''
Esempio n. 6
0
 def openSettings(self):
     bConfig().showSettingsWindow()
Esempio n. 7
0
    def __createContextMenu(self,
                            oGuiElement,
                            oListItem,
                            bIsFolder,
                            sItemUrl,
                            oOutputParams=''):
        aContextMenus = []
        if len(oGuiElement.getContextItems()) > 0:
            for oContextItem in oGuiElement.getContextItems():
                oOutputParameterHandler = oContextItem.getOutputParameterHandler(
                )
                sParams = oOutputParameterHandler.getParameterAsUri()
                sTest = "%s?site=%s&function=%s&%s" % (
                    self.pluginPath, oContextItem.getFile(),
                    oContextItem.getFunction(), sParams)
                aContextMenus += [(
                    oContextItem.getTitle(),
                    "XBMC.RunPlugin(%s)" % (sTest, ),
                )]

        itemValues = oGuiElement.getItemValues()

        oContextItem = cContextElement()
        oContextItem.setTitle("Info")
        aContextMenus += [(
            oContextItem.getTitle(),
            "XBMC.Action(Info)",
        )]

        #search for alternative source
        oContextItem.setTitle("Weitere Quellen")
        searchParams = {}
        searchParams['searchTitle'] = oGuiElement.getTitle()
        if 'imdb_id' in itemValues:
            searchParams['searchImdbID'] = itemValues['imdb_id']
        aContextMenus += [(
            oContextItem.getTitle(),
            "XBMC.Container.Update(%s?function=searchAlter&%s)" % (
                self.pluginPath,
                urllib.urlencode(searchParams),
            ),
        )]

        if 'imdb_id' in itemValues and 'title' in itemValues:
            metaParams = {}
            if itemValues['title']:
                metaParams['title'] = oGuiElement.getTitle()
            if 'mediaType' in itemValues and itemValues['mediaType']:
                metaParams['mediaType'] = itemValues['mediaType']
            elif 'TVShowTitle' in itemValues and itemValues['TVShowTitle']:
                metaParams['mediaType'] = 'tvshow'
            else:
                metaParams['mediaType'] = 'movie'
            if 'season' in itemValues and itemValues['season'] and int(
                    itemValues['season']) > 0:
                metaParams['season'] = itemValues['season']
                metaParams['mediaType'] = 'season'
            if ('episode' in itemValues and itemValues['episode']
                    and int(itemValues['episode']) > 0
                    and 'season' in itemValues and itemValues['season']
                    and int(itemValues['season'])):
                metaParams['episode'] = itemValues['episode']
                metaParams['mediaType'] = 'episode'
            # if an imdb id is available we can mark this element as seen/unseen in the metahandler
            if itemValues['imdb_id']:
                metaParams['imdbID'] = itemValues['imdb_id']
                if itemValues['overlay'] == '7':
                    oContextItem.setTitle("Als ungesehen markieren")
                else:
                    oContextItem.setTitle("Als gesehen markieren")
                aContextMenus += [(
                    oContextItem.getTitle(),
                    "XBMC.RunPlugin(%s?function=changeWatched&%s)" % (
                        self.pluginPath,
                        urllib.urlencode(metaParams),
                    ),
                )]
            # if year is set we can search reliably for metainfos via metahandler
            if 'year' in itemValues and itemValues['year']:
                metaParams['year'] = itemValues['year']
            oContextItem.setTitle("Suche Metainfos")
            aContextMenus += [(
                oContextItem.getTitle(),
                "XBMC.RunPlugin(%s?function=updateMeta&%s)" % (
                    self.pluginPath,
                    urllib.urlencode(metaParams),
                ),
            )]
        # context options for movies or episodes
        if not bIsFolder:
            oContextItem.setTitle("add to Playlist")
            aContextMenus += [(
                oContextItem.getTitle(),
                "XBMC.RunPlugin(%s&playMode=enqueue)" % (sItemUrl, ),
            )]
            oContextItem.setTitle("download")
            aContextMenus += [(
                oContextItem.getTitle(),
                "XBMC.RunPlugin(%s&playMode=download)" % (sItemUrl, ),
            )]
            if bConfig().getSetting('jd_enabled') == 'true':
                oContextItem.setTitle("send to JDownloader")
                aContextMenus += [(
                    oContextItem.getTitle(),
                    "XBMC.RunPlugin(%s&playMode=jd)" % (sItemUrl, ),
                )]
            if bConfig().getSetting('pyload_enabled') == 'true':
                oContextItem.setTitle("send to PyLoad")
                aContextMenus += [(
                    oContextItem.getTitle(),
                    "XBMC.RunPlugin(%s&playMode=pyload)" % (sItemUrl, ),
                )]
            if bConfig().getSetting('hosterSelect') == 'Auto':
                oContextItem.setTitle("select hoster")
                aContextMenus += [(
                    oContextItem.getTitle(),
                    "XBMC.RunPlugin(%s&playMode=play&manual=1)" % (sItemUrl, ),
                )]
        oListItem.addContextMenuItems(aContextMenus)
        #oListItem.addContextMenuItems(aContextMenus, True)
        return oListItem