Пример #1
0
def listEpisodes(series, season=0):
    xbmcplugin.setContent(ADDON_HANDLE, 'episodes')
    try:
        xbmcplugin.setPluginCategory(ADDON_HANDLE,
                                     getValue(data, series, 'title'))
        xbmcplugin.setPluginFanart(
            ADDON_HANDLE, getValue(data, series, 'cover_image', 'path'))
        episodes = data[series]['seasons']['data'][season]['episodes']['data']
        for ep in episodes:
            li = xbmcgui.ListItem(getValue(ep, 'title'),
                                  getValue(ep, 'tagline'))
            li.setArt({
                'thumb': getValue(ep, 'videos', 'screenshots', 'path'),
                'poster': getValue(ep, 'cover', 'path')
            })
            li.setInfo(
                'video', {
                    'episode': getValue(ep, 'number'),
                    'season': str(season + 1),
                    'plot': getValue(ep, 'synopsis', 'long'),
                    'plotoutline': getValue(ep, 'synopsis', 'short'),
                    'title': getValue(ep, 'title'),
                    'tagline': getValue(ep, 'tagline')
                })
            xbmcplugin.addDirectoryItem(ADDON_HANDLE,
                                        getValue(ep, 'videos', 'hls', 'path'),
                                        listitem=li)
    except Exception as e:
        log("error showing episode list - " + str(e), xbmc.LOGERROR)
        xbmcgui.Dialog().notification(ADDON_NAME, LANGUAGE(30002), ICON, 4000)
    xbmcplugin.endOfDirectory(ADDON_HANDLE)
Пример #2
0
def build_directoryContent(content,
                           addon_handle,
                           cache=True,
                           root=False,
                           con='movies'):
    fanart = __addon__.getAddonInfo('path') + '/fanart.jpg'
    xbmcplugin.setContent(addon_handle, con)
    xbmcplugin.setPluginFanart(addon_handle, fanart)
    for record in content:
        record['thumbnail'] = record.get('thumbnail', fanart)
        record['image'] = record.get('image', "")

        li = xbmcgui.ListItem(record['title'], iconImage=record['image'])
        li.setInfo(type='Video', infoLabels=record)
        li.setArt({
            'icon': record['image'],
            'thumb': record['image'],
            'poster': record['thumbnail'],
            'banner': record['thumbnail']
        })
        li.setProperty('Fanart_Image', record['thumbnail'])
        xbmcplugin.addDirectoryItem(handle=addon_handle,
                                    url=record['url'],
                                    listitem=li,
                                    isFolder=record['isFolder'])

    xbmcplugin.endOfDirectory(addon_handle, True, root, cache)
    '''
Пример #3
0
 def _fill_media_list( self, categories ):
     try:
         ok = True
         # enumerate through the list of categories and add the item to the media list
         for ( ltitle, method, userid_required, pq, gq, uq, issearch, thumbnail, authtoken_required, ) in categories:
             # if a user id is required for category and none supplied, skip category
             if ( userid_required and self.user_id == "" ): continue
             if ( authtoken_required and self.authtoken == "" ): continue
             # set the callback url with all parameters
             url = '%s?title=%s&category=%s&userid=%s&usernsid=%s&photosetid=""&photoid=""&groupid=""&primary=""&secret=""&server=""&photos=0&page=1&prevpage=0&pq=%s&gq=%s&uq=%s&issearch=%d&update_listing=%d&' % ( sys.argv[ 0 ], quote_plus( repr( ltitle ) ), repr( method ), repr( self.user_id ), repr( self.user_nsid ), quote_plus( repr( pq ) ), quote_plus( repr( gq ) ), quote_plus( repr( uq ) ), issearch, False, )
             # check for a valid custom thumbnail for the current method
             thumbnail = thumbnail or self._get_thumbnail( method )
             # set the default icon
             icon = "DefaultFolder.png"
             # only need to add label, icon and thumbnail, setInfo() and addSortMethod() takes care of label2
             listitem=xbmcgui.ListItem( ltitle, iconImage=icon, thumbnailImage=thumbnail )
             # add the item to the media list
             ok = xbmcplugin.addDirectoryItem( handle=int( sys.argv[ 1 ] ), url=url, listitem=listitem, isFolder=True, totalItems=len( categories ) )
             # if user cancels, call raise to exit loop
             if ( not ok ): raise
         # we do not want to sort queries list
         if ( "category='presets_photos'" in sys.argv[ 2 ] or "category='presets_groups'" in sys.argv[ 2 ] or "category='presets_users'" in sys.argv[ 2 ] ):
             xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
         # set our plugin category
         xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=self.args.title )
         # set our fanart from user setting
         if ( xbmcplugin.getSetting( "fanart_image" ) ):
             xbmcplugin.setPluginFanart( handle=int( sys.argv[ 1 ] ), image=xbmcplugin.getSetting( "fanart_image" ) )
     except:
         # user cancelled dialog or an error occurred
         print "ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__, sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno, sys.exc_info()[ 1 ], )
         ok = False
     return ok
Пример #4
0
def listSeasons(series):
    xbmcplugin.setContent(ADDON_HANDLE, 'tvshows')
    try:
        xbmcplugin.setPluginCategory(ADDON_HANDLE,
                                     getValue(data, series, 'title'))
        xbmcplugin.setPluginFanart(
            ADDON_HANDLE, getValue(data, series, 'cover_image', 'path'))
        for i, sn in enumerate(data[series]['seasons']['data']):
            li = xbmcgui.ListItem(getValue(sn, 'title'))
            li.setArt({
                'thumb': getValue(sn, 'cover', 'path'),
                'poster': getValue(sn, 'cover', 'path')
            })
            li.setInfo('video', {
                'plot': getValue(sn, 'plot'),
                'title': getValue(sn, 'title')
            })
            url = ADDON_BASE + '?series=' + str(series) + '&season=' + str(i)
            url += '&view=1'
            xbmcplugin.addDirectoryItem(ADDON_HANDLE,
                                        url,
                                        listitem=li,
                                        isFolder=True)
    except Exception as e:
        log("error showing season list - " + str(e), xbmc.LOGERROR)
        xbmcgui.Dialog().notification(ADDON_NAME, LANGUAGE(30002), ICON, 4000)
    xbmcplugin.endOfDirectory(ADDON_HANDLE)
Пример #5
0
def addPic( action="" , title="" , plot="" , url="" , thumbnail="" , fanart="" , show="" , episode="" , extra="", page="", info_labels = None, isPlayable = False , folder=True ):
    _log("add_item action=["+action+"] title=["+title+"] url=["+url+"] thumbnail=["+thumbnail+"] fanart=["+fanart+"] show=["+show+"] episode=["+episode+"] extra=["+extra+"] page=["+page+"] isPlayable=["+str(isPlayable)+"] folder=["+str(folder)+"]")
    
    listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail )
    if info_labels is None:
        info_labels = { "Title" : title, "FileName" : title, "Plot" : plot }
    listitem.setInfo( "type", "pictures" )
    listitem.setInfo( "pictures", info_labels )
    xbmcplugin.setContent( int(sys.argv[1]) ,"pictures" )
        
    if fanart!="":
        listitem.setProperty('fanart_image',fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)	
    else:
        listitem.setProperty('fanart_image', "%s/fanart.jpg" % addonPath)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)

    if isPlayable:
        listitem.setProperty("Video", "True")
        listitem.setProperty('IsPlayable', 'True')
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s&view=%s' % ( sys.argv[ 0 ] , action , urllib.quote_plus( title ) , urllib.quote_plus(url) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( fanart ) , urllib.quote_plus( plot ) , urllib.quote_plus( extra ) , urllib.quote_plus( page ) , get_setting("movies_id") )
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=itemurl, listitem=listitem, isFolder=True)   
    else:
        listitem.setProperty('IsPlayable', 'False')
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s&view=%s' % ( sys.argv[ 0 ] , action , urllib.quote_plus( title ) , urllib.quote_plus(url) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( fanart ) , urllib.quote_plus( plot ) , urllib.quote_plus( extra ) , urllib.quote_plus( page ) , get_setting("movies_id") )        
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=itemurl, listitem=listitem, isFolder=True)
Пример #6
0
def build_directoryContent(content, addon_handle, cache=True, root=False, con='movies'):
  xbmcplugin.setContent(addon_handle, con)
  xbmcplugin.setPluginFanart(addon_handle, __addon__.getAddonInfo('path') + '/fanart.jpg')
  for record in content:
    # set missing properties
    record['image'] = record.get('image', "")
    record['plot'] = record.get('plot', "")
    record['thumbnail'] = record.get('thumbnail', "")
    record['selected'] = record.get('selected', False)
    record['genre'] = record.get('genre', "")
    record['year'] = record.get('year', " ")
    record['country'] = record.get('country', "")
    record['category'] = record.get('category', "")
    
    li = xbmcgui.ListItem(record['title'], iconImage=record['image'])
    li.setInfo('video', {'plot':record['plot'] })
    li.setInfo('video', {'genre':record['genre'] })
    li.setInfo('video', {'year':record['year'] })
    li.setInfo('video', {'country':record['country']})
    li.setInfo('video', {'category':record['category']})
    li.setProperty('fanart_image', record['thumbnail'])
    li.select(record['selected'])
          
    xbmcplugin.addDirectoryItem(handle=addon_handle, url=record['url'], listitem=li, isFolder=record['isFolder'])
    
  xbmcplugin.endOfDirectory(addon_handle, True, root, cache)
Пример #7
0
    def __init__(self):
        params = {}
        splitparams = sys.argv[2][sys.argv[2].find('?') + 1:].split('&')
        for param in splitparams:
            if (len(param) > 0):
                splitparam = param.split('=')
                key = splitparam[0]
                try:
                    value = splitparam[1].encode("utf-8")
                except:
                    value = splitparam[1]
                params[key] = value

        try:
            action = urllib.unquote_plus(params["action"])
        except:
            action = None
        try:
            channel = urllib.unquote_plus(params["channel"])
        except:
            channel = None

        if action == None: channels().get()
        elif action == 'epg_menu': contextMenu().epg(channel)
        elif action == 'refresh': index().container_refresh()
        elif action == 'play': player().run(channel)

        xbmcplugin.setContent(int(sys.argv[1]), 'Episodes')
        xbmcplugin.setPluginFanart(int(sys.argv[1]), addonFanart)
        xbmcplugin.endOfDirectory(int(sys.argv[1]))
Пример #8
0
 def _add_albums_directory(self, albums, artistid=0, isverified=False):
     n = len(albums)
     itemsExisting = n
     if __debugging__:
         xbmc.log("Found " + str(n) + " albums...")
     i = 0
     while i < n:
         album = albums[i]
         albumID = album[3]
         if isverified or groovesharkApi.getDoesAlbumExist(albumID):
             albumArtistName = album[0]
             albumName = album[2]
             albumImage = self._get_icon(album[4], 'album-' + str(albumID))
             self._add_dir(albumName + " - " + albumArtistName, '',
                           MODE_ALBUM, albumImage, albumID, itemsExisting)
         else:
             itemsExisting = itemsExisting - 1
         i = i + 1
     # Not supported by key
     #if artistid > 0:
     #    self._add_dir('Similar artists...', '', MODE_SIMILAR_ARTISTS, self.artistImg, artistid)
     xbmcplugin.setContent(self._handle, 'albums')
     xbmcplugin.addSortMethod(self._handle,
                              xbmcplugin.SORT_METHOD_ALBUM_IGNORE_THE)
     xbmcplugin.setPluginFanart(int(sys.argv[1]), self.fanImg)
Пример #9
0
    def __init__(self):
        index().container_data()
        params = {}
        splitparams = sys.argv[2][sys.argv[2].find('?') + 1:].split('&')
        for param in splitparams:
            if (len(param) > 0):
                splitparam = param.split('=')
                key = splitparam[0]
                try:	value = splitparam[1].encode("utf-8")
                except:	value = splitparam[1]
                params[key] = value

        try:		action = urllib.unquote_plus(params["action"])
        except:		action = None
        try:		name = urllib.unquote_plus(params["name"])
        except:		name = None
        try:		show = urllib.unquote_plus(params["show"])
        except:		show = None
        try:		type = urllib.unquote_plus(params["type"])
        except:		type = None
        try:		url = urllib.unquote_plus(params["url"])
        except:		url = None
        try:		image = urllib.unquote_plus(params["image"])
        except:		image = None

        if action == None:							categories().get()
        elif action == 'item_play':					contextMenu().item_play()
        elif action == 'item_random_play':			contextMenu().item_random_play()
        elif action == 'item_queue':				contextMenu().item_queue()
        elif action == 'item_play_from_here':		contextMenu().item_play_from_here(url)
        elif action == 'favourite_add':				contextMenu().favourite_add(name, url, image)
        elif action == 'favourite_delete':			contextMenu().favourite_delete(name, url, image)
        elif action == 'favourite_moveUp':			contextMenu().favourite_moveUp(name, url, image)
        elif action == 'favourite_moveDown':		contextMenu().favourite_moveDown(name, url, image)
        elif action == 'playlist_start':			contextMenu().playlist_start()
        elif action == 'playlist_open':				contextMenu().playlist_open()
        elif action == 'settings_open':				contextMenu().settings_open()
        elif action == 'global_view':				contextMenu().global_view()
        elif action == 'favourites':				favourites().get()
        elif action == 'channels':					channels().get()
        elif action == 'cinegreece':				shows().cinegreece()
        elif action == 'episodes':					episodes().get(show, url)
        elif action == 'episodes_recent':			episodes().ert_recent()
        elif action == 'episodes_news':				episodes().ert_news()
        elif action == 'live':						player().live(url, type)
        elif action == 'play':						player().run(url)

        viewDict = {
            'skin.confluence'	: 503,	'skin.aeon.nox'		: 518,	'skin.back-row'			: 529,
            'skin.bello'		: 50,	'skin.carmichael'	: 50,	'skin.diffuse'			: 55,
            'skin.droid'		: 50,	'skin.metropolis'	: 55,	'skin.pm3-hd'			: 58,
            'skin.rapier'		: 68,	'skin.re-touched'	: 550,	'skin.simplicity'		: 50,
            'skin.transparency'	: 51,	'skin.xeebo'		: 50,	'skin.xperience1080'	: 50
            }

        xbmcplugin.setContent(int(sys.argv[1]), 'Episodes')
        xbmcplugin.setPluginFanart(int(sys.argv[1]), addonFanart)
        xbmcplugin.endOfDirectory(int(sys.argv[1]))
        index().container_view(viewDict)
        return
Пример #10
0
def runAddon( action="" , title="" , plot="" , url="" , thumbnail="" , fanart="" , show="" , episode="" , extra="", page="", info_labels = None, isPlayable = False , folder=True ):
    _log("add_item action=["+action+"] title=["+title+"] url=["+url+"] thumbnail=["+thumbnail+"] fanart=["+fanart+"] show=["+show+"] episode=["+episode+"] extra=["+extra+"] page=["+page+"] isPlayable=["+str(isPlayable)+"] folder=["+str(folder)+"]")

    liz = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail )
    if info_labels is None: info_labels = { "Title" : title, "FileName" : title, "Plot" : plot }
    else: liz.setInfo( "video", info_labels )

    if fanart!="":
        liz.setProperty('fanart_image',fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)	
    else:
        liz.setProperty('fanart_image', "%s/fanart.jpg" % addonPath)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)  

    if url.startswith("plugin://"):
        if url.endswith("cfg&mode=1") == True:
            print 'catcher Sportsdevil'
            itemurl = url            
            liz.setProperty('IsPlayable', 'true')
            xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url=itemurl, listitem=liz, isFolder=False)      
        elif url.find("plugin.video.live.streamspro") >= 0:
            print 'Vídeo LiveStreamsPro'
            liz.setProperty("Video", "False")
            liz.setProperty('IsPlayable', 'False')  
            xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url=url, listitem=liz, isFolder=False )
        elif url.startswith("plugin://plugin.video.dailymotion_com"):
            itemurl = url
            liz.setProperty('IsPlayable', 'True')
            xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url=itemurl, listitem=liz, isFolder=False)            
        else:
            print 'Vídeo Youtube/Dailymotion'
            liz.setProperty("Video", "True")
            liz.setProperty('IsPlayable', 'False')  
            itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s' % ( sys.argv[ 0 ] , action , urllib.quote_plus( title ) , urllib.quote_plus(url) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( fanart ) , urllib.quote_plus( plot ) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))
            xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url=itemurl, listitem=liz, isFolder=False )            
Пример #11
0
 def set_plugin_list(self, handle):
     """
     populate plugin list with *handle, set sorts and content
     """
     # these fixed sortmethods are only temporary
     if self.content_type == "tvshows":
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_TITLE)
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_VIDEO_YEAR)
         xbmcplugin.addSortMethod(handle,
                                  xbmcplugin.SORT_METHOD_VIDEO_RATING)
     elif self.content_type == "episodes":
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_TITLE)
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_VIDEO_YEAR)
         xbmcplugin.addSortMethod(handle,
                                  xbmcplugin.SORT_METHOD_VIDEO_RATING)
     elif self.content_type == "movies":
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_TITLE)
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_VIDEO_YEAR)
         xbmcplugin.addSortMethod(handle,
                                  xbmcplugin.SORT_METHOD_VIDEO_RATING)
     for item in self.sorts:
         xbmcplugin.addSortMethod(handle, SORTS[item])
     if self.content_type:
         xbmcplugin.setContent(handle, self.content_type)
     items = [(i.get_path(), i.get_listitem(), i.is_folder())
              for i in self._items]
     xbmcplugin.addDirectoryItems(handle=handle,
                                  items=items,
                                  totalItems=len(items))
     xbmcplugin.setPluginFanart(handle, addon.FANART)
     xbmcplugin.endOfDirectory(handle)
Пример #12
0
def add_playable(title="",
                 plot="",
                 url="",
                 thumbnail="",
                 fanart="",
                 show="",
                 episode="",
                 extra="",
                 page="",
                 info_labels=None,
                 isPlayable=False,
                 folder=True):
    listitem = xbmcgui.ListItem(title,
                                iconImage="DefaultVideo.png",
                                thumbnailImage=thumbnail)
    if info_labels is None:
        info_labels = {"Title": title, "FileName": title, "Plot": plot}
    listitem.setInfo("video", info_labels)
    if fanart != "":
        listitem.setProperty('fanart_image', fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)
    elif isPlayable:
        # listitem.setProperty("Video","true");
        listitem.setMimeType("video/x-mpegts")
        listitem.setContentLookup(False)
        listitem.setProperty('IsPlayable', 'true')
        itemurl = 'title=%s&url=%s&thumbnail=%s&plot=%s&extra=%s&page=%s' % (
            urllib.quote_plus(title), urllib.quote_plus(url),
            urllib.quote_plus(thumbnail), urllib.quote_plus(plot),
            urllib.quote_plus(extra), urllib.quote_plus(page))
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                    url=url,
                                    listitem=listitem,
                                    isFolder=folder)
Пример #13
0
def runAddon( action="" , title="" , plot="" , url="" , thumbnail="" , fanart="" , show="" , episode="" , extra="", page="", info_labels = None, isPlayable = False , folder=True ):
    _log("add_item action=["+action+"] title=["+title+"] url=["+url+"] thumbnail=["+thumbnail+"] fanart=["+fanart+"] show=["+show+"] episode=["+episode+"] extra=["+extra+"] page=["+page+"] isPlayable=["+str(isPlayable)+"] folder=["+str(folder)+"]")

    liz = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail )
    if info_labels is None: info_labels = { "Title" : title, "FileName" : title, "Plot" : plot }
    else: liz.setInfo( "video", info_labels )

    if fanart!="":
        liz.setProperty('fanart_image',fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)	
    else:
        liz.setProperty('fanart_image', "%s/fanart.jpg" % addonPath)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)  

    if url.startswith("plugin://"):
        if url.endswith("cfg&mode=1") == True:
            print 'catcher Sportsdevil'
            itemurl = url            
            liz.setProperty('IsPlayable', 'true')
            xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url=itemurl, listitem=liz, isFolder=False)      
        elif url.find("plugin.video.live.streamspro") >= 0:
            print 'Vídeo LiveStreamsPro'
            liz.setProperty("Video", "False")
            liz.setProperty('IsPlayable', 'False')  
            xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url=url, listitem=liz, isFolder=False )
        elif url.startswith("plugin://plugin.video.dailymotion_com"):
            itemurl = url
            liz.setProperty('IsPlayable', 'True')
            xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url=itemurl, listitem=liz, isFolder=False)            
        else:
            print 'Vídeo Youtube/Dailymotion'
            liz.setProperty("Video", "True")
            liz.setProperty('IsPlayable', 'False')  
            itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s' % ( sys.argv[ 0 ] , action , urllib.quote_plus( title ) , urllib.quote_plus(url) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( fanart ) , urllib.quote_plus( plot ) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))
            xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url=itemurl, listitem=liz, isFolder=False )            
Пример #14
0
def add_item(action="",
             title="",
             plot="",
             url="",
             thumbnail="",
             fanart="",
             show="",
             episode="",
             extra="",
             page="",
             info_labels=None,
             isPlayable=False,
             folder=True):
    _log("add_item action=[" + action + "] title=[" + title + "] url=[" + url +
         "] thumbnail=[" + thumbnail + "] fanart=[" + fanart + "] show=[" +
         show + "] episode=[" + episode + "] extra=[" + extra + "] page=[" +
         page + "] isPlayable=[" + str(isPlayable) + "] folder=[" +
         str(folder) + "]")

    listitem = xbmcgui.ListItem(title,
                                iconImage="DefaultVideo.png",
                                thumbnailImage=thumbnail)
    if info_labels is None:
        info_labels = {"Title": title, "FileName": title, "Plot": plot}
    listitem.setInfo("video", info_labels)

    if fanart != "":
        listitem.setProperty('fanart_image', fanart)

        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)

    if url.startswith("plugin://"):
        itemurl = url
        listitem.setProperty('IsPlayable', 'true')
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                    url=itemurl,
                                    listitem=listitem,
                                    isFolder=folder)
    elif isPlayable:
        listitem.setProperty("Video", "true")
        listitem.setProperty('IsPlayable', 'true')
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&plot=%s&extra=%s&page=%s' % (
            sys.argv[0], action, urllib.quote_plus(title),
            urllib.quote_plus(url), urllib.quote_plus(thumbnail),
            urllib.quote_plus(plot), urllib.quote_plus(extra),
            urllib.quote_plus(page))
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                    url=itemurl,
                                    listitem=listitem,
                                    isFolder=folder)
    else:
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&plot=%s&extra=%s&page=%s' % (
            sys.argv[0], action, urllib.quote_plus(title),
            urllib.quote_plus(url), urllib.quote_plus(thumbnail),
            urllib.quote_plus(plot), urllib.quote_plus(extra),
            urllib.quote_plus(page))
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                    url=itemurl,
                                    listitem=listitem,
                                    isFolder=folder)
Пример #15
0
def add_item( action="" , title="" , plot="" , url="" , thumbnail="" , fanart="" , show="" , episode="" , extra="", category="", page="", info_labels = None, context_menu_items = [] , isPlayable = False , folder=True ):
    _log("add_item action=["+action+"] title=["+title+"] url=["+url+"] thumbnail=["+thumbnail+"] fanart=["+fanart+"] show=["+show+"] episode=["+episode+"] extra=["+extra+"] category=["+category+"] page=["+page+"] isPlayable=["+str(isPlayable)+"] folder=["+str(folder)+"]")

    listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail )
    if info_labels is None:
        info_labels = { "Title" : title, "FileName" : title, "Plot" : plot }
    listitem.setInfo( "video", info_labels )

    if len(context_menu_items)>0:
        listitem.addContextMenuItems ( context_menu_items, replaceItems=False)

    if fanart!="":
        listitem.setProperty('fanart_image',fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)
    
    if url.startswith("plugin://"):
        itemurl = url
        listitem.setProperty('IsPlayable', 'true')
        xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url=itemurl, listitem=listitem, isFolder=folder)
    elif isPlayable:
        listitem.setProperty("Video", "true")
        listitem.setProperty('IsPlayable', 'true')
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&category=%s&page=%s' % ( sys.argv[ 0 ] , action , urllib.quote_plus( title ) , urllib.quote_plus(url) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( fanart ) , urllib.quote_plus( plot ) , urllib.quote_plus( extra ) , urllib.quote_plus( category ) , urllib.quote_plus( page ))
        xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url=itemurl, listitem=listitem, isFolder=folder)
    else:
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&category=%s&page=%s' % ( sys.argv[ 0 ] , action , urllib.quote_plus( title ) , urllib.quote_plus(url) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( fanart ) , urllib.quote_plus( plot ) , urllib.quote_plus( extra ) , urllib.quote_plus( category ) , urllib.quote_plus( page ))
        xbmcplugin.addDirectoryItem( handle=int(sys.argv[1]), url=itemurl, listitem=listitem, isFolder=folder)
Пример #16
0
def AddItem(item, title, thumbnail, mode): #----------------------------------OK
    contextCommands=[]   
    if "," in item.context:
      for menuitem in item.context.split("|"):
        if "," in menuitem:
          from copy import deepcopy
          Menu = deepcopy(item)
          if len(menuitem.split(",")) == 2:
            Titulo = menuitem.split(",")[0]
            Menu.action = menuitem.split(",")[1]
          elif len(menuitem.split(",")) == 3:
            Titulo = menuitem.split(",")[0]
            Menu.channel = menuitem.split(",")[1]
            Menu.action =menuitem.split(",")[2]
          Menu.refered_action = item.action
          contextCommands.append([Titulo,ConstruirURL(Menu)])
    import xbmcgui
    import xbmcplugin
    listitem = xbmcgui.ListItem( title, iconImage="DefaultFolder.png", thumbnailImage=thumbnail)
    listitem.setInfo( "video", { "Title" : item.title, "Plot" : item.plot, "Studio" : item.channel} )
    if item.fanart!="":
      listitem.setProperty('fanart_image',item.fanart) 
      xbmcplugin.setPluginFanart(int(sys.argv[1]), item.fanart)
    listitem.addContextMenuItems (contextCommands, replaceItems=True)
    
    if item.folder:
      xbmcplugin.addDirectoryItem( handle = int(sys.argv[1]), url = sys.argv[ 0 ] + "?" + item.serialize() , listitem=listitem, isFolder=True)
    else:
      if config.get_setting("player_mode")=="1": # SetResolvedUrl debe ser siempre "isPlayable = true"
        listitem.setProperty('IsPlayable', 'true')
      xbmcplugin.addDirectoryItem( handle = int(sys.argv[1]), url = sys.argv[ 0 ] + "?" + item.serialize() , listitem=listitem, isFolder=False)
Пример #17
0
    def __init__(self):
        global action
        params = {}
        splitparams = sys.argv[2][sys.argv[2].find('?') + 1:].split('&')
        for param in splitparams:
            if (len(param) > 0):
                splitparam = param.split('=')
                key = splitparam[0]
                try:    value = splitparam[1].encode("utf-8")
                except: value = splitparam[1]
                params[key] = value

        try:        action = urllib.unquote_plus(params["action"])
        except:     action = None
        try:        channel = urllib.unquote_plus(params["channel"])
        except:     channel = None

        if action == None:                          channels().get()
        elif action == 'dialog':                    channels().dialog()
        elif action == 'epg_menu':                  contextMenu().epg(channel)
        elif action == 'refresh':                   index().container_refresh()
        elif action == 'play':                      resolver().run(channel)

        xbmcplugin.setContent(int(sys.argv[1]), 'Episodes')
        xbmcplugin.setPluginFanart(int(sys.argv[1]), addonFanart)
        xbmcplugin.endOfDirectory(int(sys.argv[1]))
        return
Пример #18
0
 def set_plugin_list(self, handle):
     """
     populate plugin list with *handle, set sorts and content
     """
     # these fixed sortmethods are only temporary
     if self.content_type == "tvshows":
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_TITLE)
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_VIDEO_YEAR)
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_VIDEO_RATING)
     elif self.content_type == "episodes":
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_TITLE)
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_VIDEO_YEAR)
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_VIDEO_RATING)
     elif self.content_type == "movies":
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_TITLE)
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_VIDEO_YEAR)
         xbmcplugin.addSortMethod(handle, xbmcplugin.SORT_METHOD_VIDEO_RATING)
     for item in self.sorts:
         xbmcplugin.addSortMethod(handle, SORTS[item])
     if self.content_type:
         xbmcplugin.setContent(handle, self.content_type)
     items = [(i.get_path(), i.get_listitem(), bool(i.get_property("directory"))) for i in self._items]
     xbmcplugin.addDirectoryItems(handle=handle,
                                  items=items,
                                  totalItems=len(items))
     xbmcplugin.setPluginFanart(handle, addon.FANART)
     xbmcplugin.endOfDirectory(handle)
Пример #19
0
 def __init__( self ):
     # get users preference
     self._get_settings()
     # fetch videos
     ok = self.get_videos()
     # if successful and user did not cancel, set our sort orders, content, plugin category and fanart
     if ( ok ):
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_LABEL )
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_SIZE )
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_DATE )
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_VIDEO_RUNTIME )
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_VIDEO_YEAR )
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_GENRE )
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_MPAA_RATING )
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_STUDIO )
         # set content
         xbmcplugin.setContent( handle=int( sys.argv[ 1 ] ), content="movies" )
         try:
             # set our plugin category
             xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=self.PluginCategory )
             # set our fanart from user setting
             if ( self.settings[ "fanart_image" ] ):
                 xbmcplugin.setPluginFanart( handle=int( sys.argv[ 1 ] ), image=self.settings[ "fanart_image" ], color1=self.settings[ "fanart_color1" ], color2=self.settings[ "fanart_color2" ], color3=self.settings[ "fanart_color3" ] )
         except:
             pass
     # send notification we're finished, successfully or unsuccessfully
     xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=ok )
Пример #20
0
def addScraper1( action="" , title="" , plot="" , url="" , thumbnail="" , fanart="" , show="" , episode="" , vistos="", novistos="", extra="", page="", info_labels = None, isPlayable = False , folder=True ):
    #_log("add_item action=["+action+"] title=["+title+"] url=["+url+"] thumbnail=["+thumbnail+"] fanart=["+fanart+"] show=["+show+"] episode=["+episode+"] extra=["+extra+"] page=["+page+"] isPlayable=["+str(isPlayable)+"] folder=["+str(folder)+"]")
    
    contexto = []
    listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail )
    if info_labels is None:
        info_labels = { "Title" : title, "FileName" : title, "Plot" : plot }
    listitem.setInfo( "type", "other" )
    listitem.setInfo( "video", info_labels )
    xbmcplugin.setContent( int(sys.argv[1]) ,"movies" )

    if vistos != "":
        listitem.setProperty('WatchedEpisodes',vistos)

    if novistos != "":
        listitem.setProperty('UnwatchedEpisodes',novistos)         
        
    if fanart!="":
        listitem.setProperty('fanart_image',fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)	
    else:
        listitem.setProperty('fanart_image', "%s/fanart.jpg" % addonPath)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)

    listitem.setProperty('IsPlayable', 'False')    
    contexto.append(('Eliminar entrada', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s)' % (sys.argv[0], 'scraperx_supr' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
    contexto.append(('Eliminar TODA la lista', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s)' % (sys.argv[0], 'scraperx_delfile' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
    contexto.append(('Recargar lista', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s)' % (sys.argv[0], 'scraperx_reload' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
    contexto.append(('Exportar lista', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s)' % (sys.argv[0], 'scraperx_export' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))            
    itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s&view=%s' % ( sys.argv[ 0 ] , action , urllib.quote_plus( title ) , urllib.quote_plus(url) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( fanart ) , urllib.quote_plus( plot ) , urllib.quote_plus( extra ) , urllib.quote_plus( page ) , get_setting("movies_id") )
    listitem.addContextMenuItems(contexto, replaceItems=True)            
    xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=itemurl, listitem=listitem, isFolder=True)
Пример #21
0
def add_playable(title="",
                 plot="",
                 url="",
                 thumbnail="",
                 fanart="",
                 show="",
                 episode="",
                 extra="",
                 page="",
                 info_labels=None,
                 isPlayable=False,
                 folder=True):

    listitem = xbmcgui.ListItem(title,
                                iconImage="DefaultVideo.png",
                                thumbnailImage=thumbnail)
    if info_labels is None:
        info_labels = {"Title": title, "FileName": title, "Plot": plot}
    listitem.setInfo("video", info_labels)
    if fanart != "":
        listitem.setProperty('fanart_image', fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)
    if url.startswith("plugin://"):
        itemurl = url
        listitem.setProperty('IsPlayable', 'true')
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                    url=itemurl,
                                    listitem=listitem,
                                    isFolder=folder)
    elif isPlayable:
        listitem.setProperty('IsPlayable', 'true')
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                    url=url,
                                    listitem=listitem,
                                    isFolder=folder)
Пример #22
0
def addPic(action="",
           title="",
           plot="",
           url="",
           thumbnail="",
           fanart="",
           show="",
           episode="",
           extra="",
           page="",
           info_labels=None,
           isPlayable=False,
           folder=True):
    _log("add_item action=[" + action + "] title=[" + title + "] url=[" + url +
         "] thumbnail=[" + thumbnail + "] fanart=[" + fanart + "] show=[" +
         show + "] episode=[" + episode + "] extra=[" + extra + "] page=[" +
         page + "] isPlayable=[" + str(isPlayable) + "] folder=[" +
         str(folder) + "]")

    listitem = xbmcgui.ListItem(title,
                                iconImage="DefaultVideo.png",
                                thumbnailImage=thumbnail)
    if info_labels is None:
        info_labels = {"Title": title, "FileName": title, "Plot": plot}
    listitem.setInfo("type", "pictures")
    listitem.setInfo("pictures", info_labels)
    xbmcplugin.setContent(int(sys.argv[1]), "pictures")

    if fanart != "":
        listitem.setProperty('fanart_image', fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)
    else:
        listitem.setProperty('fanart_image', "%s/fanart.jpg" % addonPath)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)

    if isPlayable:
        listitem.setProperty("Video", "True")
        listitem.setProperty('IsPlayable', 'True')
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s&view=%s' % (
            sys.argv[0], action, urllib.quote_plus(title),
            urllib.quote_plus(url), urllib.quote_plus(thumbnail),
            urllib.quote_plus(fanart), urllib.quote_plus(plot),
            urllib.quote_plus(extra), urllib.quote_plus(page),
            get_setting("movies_id"))
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                    url=itemurl,
                                    listitem=listitem,
                                    isFolder=True)
    else:
        listitem.setProperty('IsPlayable', 'False')
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s&view=%s' % (
            sys.argv[0], action, urllib.quote_plus(title),
            urllib.quote_plus(url), urllib.quote_plus(thumbnail),
            urllib.quote_plus(fanart), urllib.quote_plus(plot),
            urllib.quote_plus(extra), urllib.quote_plus(page),
            get_setting("movies_id"))
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                    url=itemurl,
                                    listitem=listitem,
                                    isFolder=True)
Пример #23
0
    def categories(self):

        self.userid = self._get_login()

        # Setup
        xbmcplugin.setPluginFanart(int(sys.argv[1]), self.fanImg)

        self._add_dir(__language__(30013), '', MODE_SEARCH_SONGS, self.songImg,
                      0)
        self._add_dir(__language__(30014), '', MODE_SEARCH_ALBUMS,
                      self.albumImg, 0)
        self._add_dir(__language__(30015), '', MODE_SEARCH_ARTISTS,
                      self.artistImg, 0)
        self._add_dir(searchArtistsAlbumsName, '', MODE_SEARCH_ARTISTS_ALBUMS,
                      self.artistsAlbumsImg, 0)
        # Not supported by key
        #self._add_dir("Search for user's playlists...", '', MODE_SEARCH_PLAYLISTS, self.usersplaylistsImg, 0)
        self._add_dir(__language__(30016), '', MODE_ARTIST_POPULAR,
                      self.popularSongsArtistImg, 0)
        self._add_dir(__language__(30017), '', MODE_POPULAR_SONGS,
                      self.popularSongsImg, 0)
        if (self.userid != 0):
            self._add_dir(__language__(30018), '', MODE_FAVORITES,
                          self.favoritesImg, 0)
            self._add_dir(__language__(30019), '', MODE_PLAYLISTS,
                          self.playlistImg, 0)
Пример #24
0
    def system(self, data, cl=False):
        util.debug("[SC] SYSYEM CL: %s" % str(cl));
        if cl is False and "setContent" in data:
            xbmcplugin.setContent(int(sys.argv[1]), data["setContent"])
            '''
            view_mode=data["setContent"].lower()
            skin_name=xbmc.getSkinDir() # nacitame meno skinu
            util.debug("[SC] skin_name='"+skin_name+"'")
            try:
                util.debug("[SC] view mode is "+view_mode)
                view_codes=sctop.ALL_VIEW_CODES.get(view_mode)
                view_code=view_codes.get(skin_name)
                util.debug("[SC] view code for "+view_mode+" in "+skin_name+" is "+str(view_code))
                xbmc.executebuiltin("Container.SetViewMode("+str(view_code)+")")
                #xbmc.executebuiltin("Container.Refresh")
            except:
                util.debug("[SC] Unable to find view code for view mode "+str(view_mode)+" and skin "+skin_name)
            '''
                
        if cl is False and "setPluginCategory" in data:
            xbmcplugin.setPluginCategory(int(sys.argv[1]), data["setPluginCategory"])
        
        if cl is False and "addSortMethod" in data:
            xbmcplugin.addSortMethod(int(sys.argv[1]), sctop.sortmethod[int(data["addSortMethod"])])

        if cl is False and data.get('addSortMethods'):
            for m in data.get("addSortMethods"):
                xbmcplugin.addSortMethod(int(sys.argv[1]), sctop.sortmethod[int(m)])
        
        if cl is False and "setPluginFanart" in data:
            xbmcplugin.setPluginFanart(int(sys.argv[1]), data["setPluginFanart"])
        
        if cl is False and "version" in data:
            util.info("[SC] kontrola verzie: %s %s" % (str(sctop.addonInfo('version')), data["version"]))
            if sctop.addonInfo('version') != data["version"] and sctop.getSetting('ver') != data['version']:
                try:
                    sctop.dialog.ok(sctop.getString(30954), sctop.getString(30955) % str(data['version']))
                except:
                    pass
                xbmc.executebuiltin('UpdateAddonRepos')
                sctop.setSetting('ver', data['version'])
            if sctop.getSettingAsBool('cachemigrate') == '' or sctop.getSettingAsBool('cachemigrate') is False:
                self.parent.cacheMigrate()
                pass
            pass
        
        if cl is False and "focus" in data:
            self.parent.system = {"focus": data['focus']}
            
        if cl is True and "focus" in data:
            try:
                self.parent.endOfDirectory()
                util.debug("[SC] nastavujem focus na: %d" % int(data['focus']))
                xel = xbmcgui.Window(xbmcgui.getCurrentWindowId())
                ctr = xel.getControl(xel.getFocusId())
                ctr.selectItem(int(data['focus']))
            except Exception as e:
                util.debug("[SC] error focus :-( %s" % str(traceback.format_exc()))
                pass
Пример #25
0
    def __init__(self):
        index().container_data()
        params = {}
        splitparams = sys.argv[2][sys.argv[2].find('?') + 1:].split('&')
        for param in splitparams:
            if (len(param) > 0):
                splitparam = param.split('=')
                key = splitparam[0]
                try:	value = splitparam[1].encode("utf-8")
                except:	value = splitparam[1]
                params[key] = value

        try:		action = urllib.unquote_plus(params["action"])
        except:		action = None
        try:		name = urllib.unquote_plus(params["name"])
        except:		name = None
        try:		show = urllib.unquote_plus(params["show"])
        except:		show = None
        try:		url = urllib.unquote_plus(params["url"])
        except:		url = None
        try:		image = urllib.unquote_plus(params["image"])
        except:		image = None

        if action == None:							categories().get()
        elif action == 'item_play':					contextMenu().item_play()
        elif action == 'item_random_play':			contextMenu().item_random_play()
        elif action == 'item_queue':				contextMenu().item_queue()
        elif action == 'item_play_from_here':		contextMenu().item_play_from_here(url)
        elif action == 'favourite_add':				contextMenu().favourite_add(name, url, image)
        elif action == 'favourite_delete':			contextMenu().favourite_delete(name, url, image)
        elif action == 'favourite_moveUp':			contextMenu().favourite_moveUp(name, url, image)
        elif action == 'favourite_moveDown':		contextMenu().favourite_moveDown(name, url, image)
        elif action == 'playlist_start':			contextMenu().playlist_start()
        elif action == 'playlist_open':				contextMenu().playlist_open()
        elif action == 'settings_open':				contextMenu().settings_open()
        elif action == 'global_view':				contextMenu().global_view()
        elif action == 'favourites':				favourites().get()
        elif action == 'skai_shows':				shows().skai()
        elif action == 'episodes':					episodes().get(show, url)
        elif action == 'episodes_recent':			episodes().skai_recent()
        elif action == 'episodes_news':				episodes().skai_news()
        elif action == 'episodes_sports':			episodes().skai_sports()
        elif action == 'play':						player().run(url)

        viewDict = {
            'skin.confluence'	: 503,	'skin.aeon.nox'		: 518,	'skin.back-row'			: 529,
            'skin.bello'		: 50,	'skin.carmichael'	: 50,	'skin.diffuse'			: 55,
            'skin.droid'		: 50,	'skin.metropolis'	: 55,	'skin.pm3-hd'			: 58,
            'skin.rapier'		: 68,	'skin.re-touched'	: 550,	'skin.simplicity'		: 50,
            'skin.transparency'	: 51,	'skin.xeebo'		: 50,	'skin.xperience1080'	: 50
            }

        xbmcplugin.setContent(int(sys.argv[1]), 'Episodes')
        xbmcplugin.setPluginFanart(int(sys.argv[1]), addonFanart)
        xbmcplugin.endOfDirectory(int(sys.argv[1]))
        index().container_view(viewDict)
        return
Пример #26
0
def getMoreShows(url,logo,backdrop):
    progressbar = xbmcgui.DialogProgress()
    progressbar.create('Ladevorgang' )
    progressbar.update(0)
    date = ""
    title = ""
    link = ""
    banner = ""
    oldDate = ""
    url = urllib.unquote(url)
    logo = urllib.unquote(logo)
    backdrop = urllib.unquote(backdrop)
    newtitleVarReg = re.compile("<title>.*?</title>")
    liVarReg = re.compile('<li.*?"/li>')
    try:
       html = opener.open(url).read()
    except:
       html = opener.open(url).read()
    soup = BeautifulSoup(html)
    mainTitle  = soup.find('title').text.split("-")[1].strip()
    tmpimg = soup.findAll('div',{'id':'more-episodes'})
    for string in tmpimg:
       string = string.findAll('img')
       for img in string:
         logo = img['src']
         break
    tmp = soup.findAll('ul',{'class':'iscroll'})
    if mainTitle != "ORF TVthek":
       addDirectory("[Neu] %s" % mainTitle.encode('UTF-8'),logo,backdrop,url,"openSeries")
    else:
       addDirectory("Keine Sendung verfügbar",logo,backdrop,url,"openSeries")
    
    for string in tmp:
       children = string.findChildren()
       for child in children:
          tmps = child.findAll('a')
          i = 1
          feedcount = len(tmps)
          for tmp in tmps:
           if tmp['href'] != '#':
             if date != oldDate:
                 i = i+1
                 percent = i*100/feedcount
                 progressbar.update(percent)
                 title = "%s | %s" % (date.replace("&#160;"," "),tmp.text.encode('UTF-8').replace("&#160;"," "))
                 link = "%s%s" % (base_url,tmp['href'])
                 banner = logo
                 oldDate = date
                 addDirectory(title,banner,backdrop,link,"openSeries")
           else:
              date = tmp.text.encode('UTF-8')
    xbmcplugin.setContent(pluginhandle,'episodes')
    xbmcplugin.endOfDirectory(pluginhandle)
    if forceView:
       xbmc.executebuiltin(defaultViewMode)
    xbmcplugin.setPluginFanart(int(sys.argv[1]), backdrop, color2='0xFFFF3300')
Пример #27
0
def add_computer_list_item(action="",
                           title="",
                           thumbnail="",
                           fanart="",
                           session_id="",
                           numberselect="",
                           computer=None,
                           user=None,
                           info_labels=None,
                           folder=True,
                           context=False):
    listitem = xbmcgui.ListItem(title,
                                iconImage="DefaultVideo.png",
                                thumbnailImage=thumbnail)

    if info_labels is None:
        info_labels = {
            "Title": title,
            "Plot": get_computer_info(computer, user)
        }

    listitem.setInfo("video", info_labels)

    if fanart != "":
        listitem.setProperty('fanart_image', fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)

    if context:
        context_entries = []

        for context_entry in context:
            context_label = context_entry.get('label')
            context_url = context_entry.get('url')
            runner = "XBMC.RunPlugin(" + str(context_url) + ", " ")"
            context_entries.append((
                str(context_label),
                runner,
            ))

        listitem.addContextMenuItems(context_entries)

    itemurl = '%s?action=%s&title=%s&session_id=%s&computer=%s&user=%s&thumbnail=%s&fanart=%s&numberselect=%s' % (
        sys.argv[0],
        action,
        urllib.quote_plus(title),
        urllib.quote_plus(session_id),
        urllib.quote_plus(computer),
        urllib.quote_plus(user),
        urllib.quote_plus(thumbnail),
        urllib.quote_plus(fanart),
        numberselect,
    )
    xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                url=itemurl,
                                listitem=listitem,
                                isFolder=folder)
Пример #28
0
def list_offers():
    if not os.path.isfile(SCRAPER_CONTENT):
        loop = 30
        while loop > 0:
            if xbmc.Monitor().abortRequested(): break
            xbmc.sleep(2000)
            if HOME.getProperty('GTO.busy') == 'false': break
            loop -= 1
        if loop == 0 or not os.path.isfile(SCRAPER_CONTENT):
            writeLog('No scraper data to display', xbmc.LOGERROR)
            return

    with open(SCRAPER_CONTENT, 'r') as f:
        content = json.load(f)

    xbmcplugin.setPluginCategory(_handle, content['scraper'])
    xbmcplugin.setContent(_handle, 'videos')
    xbmcplugin.setPluginFanart(_handle, FANART)
    for item in content['items']:
        liz = xbmcgui.ListItem()
        liz.setLabel('{} ({})'.format(
            item.get('pvrchannel', item.get('channel')),
            convert_dateformat(item.get('datetime'),
                               dt_out=LOCAL_TIME_FORMAT)))
        liz.setLabel2('{}'.format(item.get('title')))
        liz.setInfo(
            'video', {
                'genre': item.get('genre'),
                'plot': item.get('plot'),
                'duration': item.get('runtime'),
                'rating': item.get('rating'),
                'mediatype': 'video'
            })
        liz.setArt({
            'icon': item.get('thumb'),
            'thumb': item.get('thumb'),
            'poster': item.get('thumb'),
            'fanart': item.get('thumb'),
            'logo': item.get('logo')
        })
        liz.setProperty('StartTime', convert_dateformat(item.get('datetime')))
        liz.setProperty('EndTime', convert_dateformat(item.get('enddate')))
        liz.setProperty('RunTime', str(item.get('runtime') // 60))
        liz.setProperty('HasTimer', str(hasTimer(item.get('broadcastid',
                                                          None))))
        liz.setProperty('Item', str(item.get('item')))
        liz.setProperty('IsPlayable', 'false')
        url = get_url(action='info', item=item.get('item'))
        xbmcplugin.addDirectoryItem(_handle, url, liz, isFolder=True)

    xbmcplugin.addSortMethod(_handle, xbmcplugin.SORT_METHOD_NONE)
    xbmcplugin.endOfDirectory(_handle,
                              succeeded=True,
                              updateListing=True,
                              cacheToDisc=False)
    HOME.setProperty('GTO.provider', content['scraper'])
 def _set_fanart( self, fanart ):
     # if user passed fanart tuple (path, method,)
     if ( fanart is not None ):
         # if skin has fanart image use it
         fanart_image = os.path.join( sys.modules[ "__main__" ].__plugin__, fanart[ 1 ] + "-fanart.png" )
         if ( xbmc.skinHasImage( fanart_image ) ):
             xbmcplugin.setPluginFanart( handle=self.m_handle, image=fanart_image )
         # set our fanart from user setting
         elif ( fanart[ 0 ] ):
             xbmcplugin.setPluginFanart( handle=self.m_handle, image=fanart[ 0 ] )
Пример #30
0
def main_menu():
    ''' The Regio TV plugin main menu '''
    from xbmcaddon import Addon
    from xbmcgui import ListItem
    import xbmcplugin

    xbmcplugin.setContent(plugin.handle, content='files')
    xbmcplugin.setPluginCategory(plugin.handle, category='Zenders')
    xbmcplugin.setPluginFanart(plugin.handle,
                               image=Addon().getAddonInfo('fanart'))
    xbmcplugin.addSortMethod(plugin.handle,
                             sortMethod=xbmcplugin.SORT_METHOD_UNSORTED)
    xbmcplugin.addSortMethod(plugin.handle,
                             sortMethod=xbmcplugin.SORT_METHOD_LABEL)

    listing = []
    for channel in CHANNELS:
        is_folder = False
        is_playable = True

        label = '{name} [COLOR gray]| {label}[/COLOR]'.format(**channel)
        plot = '[B]{name}[/B]\nRegio {label}\n\n[I]{description}[/I]\n\n[COLOR yellow]{website}[/COLOR]'.format(
            **channel)
        list_item = ListItem(label=label,
                             label2=channel.get('label'),
                             offscreen=True)
        list_item.setProperty(key='IsPlayable',
                              value='true' if is_playable else 'false')
        list_item.setInfo(type='video',
                          infoLabels=dict(
                              lastplayed='',
                              mediatype='video',
                              playcount=0,
                              plot=plot,
                          ))
        list_item.setArt(
            dict(
                icon='DefaultAddonPVRClient.png',
                thumb=channel.get('logo'),
            ))

        # FIXME: The setIsFolder method is new in Kodi18, so we cannot use it just yet.
        # list_item.setIsFolder(is_folder)

        url = channel.get('live_stream')
        if channel.get('referer'):
            url += '|referer=' + channel.get('referer')
        listing.append((url, list_item, is_folder))

    succeeded = xbmcplugin.addDirectoryItems(plugin.handle, listing,
                                             len(listing))
    xbmcplugin.endOfDirectory(plugin.handle,
                              succeeded,
                              updateListing=False,
                              cacheToDisc=True)
Пример #31
0
def main():
    xbmc_data()
    params = {}
    splitparams = paramString[paramString.find('?') + 1:].split('&')
    for param in splitparams:
        if (len(param) > 0):
            splitparam = param.split('=')
            key = splitparam[0]
            try: 
                value = splitparam[1].encode("utf-8")
            except:
                value = splitparam[1]
            params[key] = value

    try:		action = urllib.unquote_plus(params["action"])
    except:		action = None
    try:		name = urllib.unquote_plus(params["name"])
    except:		name = None
    try:		show = urllib.unquote_plus(params["show"])
    except:		show = None
    try:		url = urllib.unquote_plus(params["url"])
    except:		url = None
    try:		image = urllib.unquote_plus(params["image"])
    except:		image = None
    try:		mode = urllib.unquote_plus(params["mode"])
    except:		mode = None

    if action == None:							get_categories()
    elif action == 'play_item':					play_item()
    elif action == 'random_play_item':			random_play_item()
    elif action == 'queue_item':				queue_item()
    elif action == 'play_from_here_item':		play_from_here_item(url)
    elif action == 'add_favourite_item':		add_favourite_item(name,url)
    elif action == 'delete_favourite_item':		delete_favourite_item(name,url)
    elif action == 'move_favourite_item_up':	move_favourite_item_up(name,url)
    elif action == 'move_favourite_item_down':	move_favourite_item_down(name,url)
    elif action == 'play_queue':				play_queue()
    elif action == 'open_playlist':				open_playlist()
    elif action == 'xbmc_set_view':				xbmc_set_view()
    elif action == 'open_settings':				open_settings()
    elif action == 'get_favourites':			get_favourites()
    elif action == 'get_live_movies':			get_live_movies()
    elif action == 'get_cinegreece_menus':		get_cinegreece_menus()
    elif action == 'get_greek_movies_menus':	get_greek_movies_menus()
    elif action == 'get_recent_movies':			get_recent_movies()
    elif action == 'search_movies':				search_movies()
    elif action == 'get_movies':				get_movies(url)
    elif action == 'play_video':				play_video(url)

    xbmcplugin.setContent(handle, 'Movies')
    xbmcplugin.setPluginFanart(handle, fanart)
    xbmcplugin.endOfDirectory(handle)
    xbmc_view()
    return
Пример #32
0
def search():
    addDirectory("Suchen ...",defaultbanner,defaultbackdrop,"","searchNew")
    cache.table_name = "searchhistory"
    some_dict = cache.get("searches").split("|")
    for str in reversed(some_dict):
        addDirectory(str,defaultbanner,defaultbackdrop,str.replace(" ","+"),"searchNew")
    xbmcplugin.setContent(pluginhandle,'episodes')
    xbmcplugin.endOfDirectory(pluginhandle)
    if forceView:
       xbmc.executebuiltin(defaultViewMode)
    xbmcplugin.setPluginFanart(int(sys.argv[1]), defaultbackdrop, color2='0xFFFF3300')
Пример #33
0
def add_new_video(item, IsPlayable='false', totalItems = 0):
    logger.info('pelisalacarta.platformcode.xbmctools add_new_video item='+item.tostring())

    # TODO: Posible error en trailertools.py
    contextCommands = []
    ok = False

    try:
        item.context = urllib.unquote_plus(item.context)
    except:
        item.context=""

    if "|" in item.context:
        item.context = item.context.split("|")

    icon_image = os.path.join( config.get_runtime_path() , "resources" , "images" , "servers" , item.server+".png" )
    if not os.path.exists(icon_image):
        icon_image = "DefaultVideo.png"

    listitem = xbmcgui.ListItem( item.title, iconImage="DefaultVideo.png", thumbnailImage=item.thumbnail )

    if item.action !="":
        set_infoLabels(listitem,item) # Modificacion introducida por super_berny para añadir infoLabels al ListItem
   
    if item.fanart!="":
        #logger.info("item.fanart :%s" %item.fanart)
        listitem.setProperty('fanart_image',item.fanart)
        xbmcplugin.setPluginFanart(pluginhandle, item.fanart)

    if item.isPlayable == 'true': #Esta opcion es para poder utilizar el xbmcplugin.setResolvedUrl()
        listitem.setProperty('IsPlayable', 'true')

    if len (contextCommands) > 0:
        listitem.addContextMenuItems ( contextCommands, replaceItems=False)
    
    if item.action == "":
        listitem.addContextMenuItems ( list(), replaceItems=True)
    
    try:
        item.title = item.title.encode ("utf-8")     #This only aplies to unicode strings. The rest stay as they are.
        item.plot  = item.plot.encode ("utf-8")
    except:
        pass

    itemurl = '%s?%s' % ( sys.argv[ 0 ] , item.tourl())
    logger.info("pelisalacarta.platformcode.xbmctools add_new_video itemurl="+itemurl)

    if item.totalItems == 0:
        ok = xbmcplugin.addDirectoryItem( handle = pluginhandle, url=itemurl, listitem=listitem, isFolder=False)
    else:
        ok = xbmcplugin.addDirectoryItem( handle = pluginhandle, url=itemurl, listitem=listitem, isFolder=False, totalItems=item.totalItems)
    return ok
Пример #34
0
def addPeli( action="" , title="" , plot="" , photoa="", photob="", photoc="", photod="", url="" , thumbnail="" , fanart="" , show="" , episode="" , extra="", page="", imdb="", info_labels = None, isPlayable = False , folder=True ):
    #xbmc.log("addPeli action=["+action+"] title=["+title+"] url=["+url+"] thumbnail=["+thumbnail+"] photoa=["+photoa+"] photob=["+photob+"] photoc=["+photoc+"] photod=["+photod+"] fanart=["+fanart+"] show=["+show+"] episode=["+episode+"] extra=["+extra+"] page=["+page+"] isPlayable=["+str(isPlayable)+"] folder=["+str(folder)+"]")
    
    contexto = []
    listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail )
    if info_labels is None:
        info_labels = { "Title" : title, "FileName" : title, "Plot" : plot }
    listitem.setInfo( "type", MOVIES )
    listitem.setInfo( "video", info_labels )
    xbmcplugin.setContent( int(sys.argv[1]) ,"movies" )
    
    # Fotogramas de película (Fanart view)
    if photoa!="":
        listitem.setProperty('photoa',photoa)
    if photob!="":
        listitem.setProperty('photob',photob)
    if photoc!="":
        listitem.setProperty('photoc',photoc)
    if photod!="":
        listitem.setProperty('photod',photod)

    
        
    if fanart!="":
        listitem.setProperty('fanart_image',fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)	
    else:
        listitem.setProperty('fanart_image', "%s/fanart.jpg" % addonPath)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)

    if isPlayable:
        listitem.setProperty("Video", "True")
        listitem.setProperty('IsPlayable', 'True')
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s&view=%s' % ( sys.argv[ 0 ] , action , urllib.quote_plus( title ) , urllib.quote_plus(url) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( fanart ) , urllib.quote_plus( plot ) , urllib.quote_plus( extra ) , urllib.quote_plus( page ) , get_setting("movies_id") )
        contexto.append(('Ver trailer en [COLOR red]You[/COLOR][COLOR white]tube[/COLOR]', '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s' % (sys.argv[0], 'trailer0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        contexto.append(('Crear [COLOR lightyellow][B]Wiki[/B]peli[/COLOR]', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s)' % (sys.argv[0], 'filmaff0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        contexto.append(('[COLOR white]Información [B]extendida[/B][/COLOR]', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s&imdb=%s)' % (sys.argv[0], 'extendedinfo' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ), urllib.quote_plus(imdb))))        
        #contexto.append(('Buscar torrent [COLOR lightyellow][I](BUM+)[/I][/COLOR]', '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s' % (sys.argv[0], 'bum0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        listitem.addContextMenuItems(contexto, replaceItems=True)
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=itemurl, listitem=listitem, isFolder=False)
        print 'sys.argv',sys.argv
    
    else:
        listitem.setProperty("Video", "True")
        listitem.setProperty('IsPlayable', 'False')
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s&view=%s' % ( sys.argv[ 0 ] , action , urllib.quote_plus( title ) , urllib.quote_plus(url) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( fanart ) , urllib.quote_plus( plot ) , urllib.quote_plus( extra ) , urllib.quote_plus( page ) , get_setting("movies_id") )        
        contexto.append(('Ver trailer en [COLOR red]You[/COLOR][COLOR white]tube[/COLOR]', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s)' % (sys.argv[0], 'trailer0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        contexto.append(('Crear [COLOR lightyellow][B]Wiki[/B]peli[/COLOR]', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s)' % (sys.argv[0], 'filmaff0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        contexto.append(('[COLOR white]Información [B]extendida[/B][/COLOR]', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s&imdb=%s)' % (sys.argv[0], 'extendedinfo' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ), urllib.quote_plus(imdb))))        
        #contexto.append(('Buscar torrent [COLOR lightyellow][I](BUM+)[/I][/COLOR]', '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s' % (sys.argv[0], 'bum0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        listitem.addContextMenuItems(contexto, replaceItems=True)
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=itemurl, listitem=listitem, isFolder=True)
Пример #35
0
def add_new_video(item, IsPlayable='false', totalItems = 0):
    logger.info('streamondemand.platformcode.xbmctools add_new_video item='+item.tostring())

    # TODO: Posible error en trailertools.py
    contextCommands = []
    ok = False

    try:
        item.context = urllib.unquote_plus(item.context)
    except:
        item.context=""

    if "|" in item.context:
        item.context = item.context.split("|")

    icon_image = os.path.join( config.get_runtime_path() , "resources" , "images" , "servers" , item.server+".png" )
    if not os.path.exists(icon_image):
        icon_image = "DefaultVideo.png"

    listitem = xbmcgui.ListItem( item.title, iconImage="DefaultVideo.png", thumbnailImage=item.thumbnail )

    if item.action !="":
        set_infoLabels(listitem,item)
   
    if item.fanart!="":
        #logger.info("item.fanart :%s" %item.fanart)
        listitem.setProperty('fanart_image',item.fanart)
        xbmcplugin.setPluginFanart(pluginhandle, item.fanart)

    if item.isPlayable == 'true': #Esta opcion es para poder utilizar el xbmcplugin.setResolvedUrl()
        listitem.setProperty('IsPlayable', 'true')

    if len (contextCommands) > 0:
        listitem.addContextMenuItems ( contextCommands, replaceItems=False)
    
    if item.action == "":
        listitem.addContextMenuItems ( list(), replaceItems=True)
    
    try:
        item.title = item.title.encode ("utf-8")     #This only aplies to unicode strings. The rest stay as they are.
        item.plot  = item.plot.encode ("utf-8")
    except:
        pass

    itemurl = '%s?%s' % ( sys.argv[ 0 ] , item.tourl())
    logger.info("streamondemand.platformcode.xbmctools add_new_video itemurl="+itemurl)

    if item.totalItems == 0:
        ok = xbmcplugin.addDirectoryItem( handle = pluginhandle, url=itemurl, listitem=listitem, isFolder=False)
    else:
        ok = xbmcplugin.addDirectoryItem( handle = pluginhandle, url=itemurl, listitem=listitem, isFolder=False, totalItems=item.totalItems)
    return ok
Пример #36
0
 def _set_fanart(self, fanart):
     # if user passed fanart tuple (path, method,)
     if (fanart is not None):
         # if skin has fanart image use it
         fanart_image = os.path.join(sys.modules["__main__"].__plugin__,
                                     fanart[1] + "-fanart.png")
         if (xbmc.skinHasImage(fanart_image)):
             xbmcplugin.setPluginFanart(handle=self.m_handle,
                                        image=fanart_image)
         # set our fanart from user setting
         elif (fanart[0]):
             xbmcplugin.setPluginFanart(handle=self.m_handle,
                                        image=fanart[0])
 def _set_fanart(self, addonId, fanart):
     # if user passed fanart tuple (image, category path,)
     if (fanart is None):
         # if no user preferred fanart set for skin fanart
         fanart_image = os.path.join(addonId + "{id}-fanart.png".format(id=addonId))
     else:
         if (fanart[1] is not None):
             # set category image
             fanart_image = os.path.join(fanart[1] + "{category}.png".format(category=fanart[2].split(": ")[0]))
         else:
             # set user preference image
             fanart_image = fanart[0]
     # set fanart
     xbmcplugin.setPluginFanart(handle=self.m_handle, image=fanart_image)
Пример #38
0
def add_item(**kwargs):
    listitem = xbmcgui.ListItem(kwargs.get('title'))
    listitem.setArt({'poster': 'poster.png', 'banner': 'banner.png'})
    listitem.setArt({
        'icon': kwargs.get('thumbnail'),
        'thumb': kwargs.get('thumbnail'),
        'poster': kwargs.get('thumbnail'),
        'fanart': kwargs.get('fanart')
    })

    info_labels = kwargs.get(
        'info_labels') if 'info_labels' in kwargs else None

    if info_labels is None:
        info_labels = {
            "Title": kwargs.get('title'),
            "FileName": kwargs.get('title'),
            "Plot": kwargs.get('plot'),
            "Genre": kwargs.get('genre'),
            "dateadded": kwargs.get('genre'),
            "credits": kwargs.get('credits')
        }

    listitem.setInfo("video", info_labels)

    if kwargs.get('fanart') and kwargs.get('fanart') != "":
        listitem.setProperty('fanart_image', kwargs.get('fanart'))
        xbmcplugin.setPluginFanart(int(sys.argv[1]), kwargs.get('fanart'))

    if kwargs.get('url') and kwargs.get('url').startswith("plugin://"):
        itemurl = kwargs.get('url')
        listitem.setProperty('IsPlayable', 'true')
    elif kwargs.get('isPlayable'):
        listitem.setProperty("Video", "true")
        listitem.setProperty('IsPlayable', 'true')

    itemurl = '%s?%s' % (
        sys.argv[0], urlencode(kwargs) if b64 == False else quote_plus(
            six.ensure_text(
                base64.b64encode(six.ensure_binary(urlencode(kwargs))))))
    xbmcplugin.addDirectoryItem(
        handle=int(sys.argv[1]),
        url=itemurl,
        listitem=listitem,
        isFolder=kwargs.get('folder')
        if kwargs.get('folder') != None else False if kwargs.get('isPlayable')
        and kwargs.get('isPlayable') == True else True)
    if kwargs.get('sort'):
        xbmcplugin.addSortMethod(int(sys.argv[1]),
                                 xbmcplugin.SORT_METHOD_LABEL_IGNORE_THE)
def add_item(action="",title="",plot="",url="",thumbnail="",fanart="",show="",episode="",extra="",page="",info_labels=None,isPlayable=False,folder=True):
    cm = []
    cm.append(('View Full Listings','Container.Update(%s?action=showallguide&title=%s&extra=%s)'% (sys.argv[0],title,plot)))
    cm.append(('Find Catch Up For %s'%extra,'Container.Update(%s?action=ruguide&title=%s&extra=%s)'% (sys.argv[0],title,extra)))
    cm.append(('Record!!','Container.Update(%s?action=rec&title=%s&url=%s&extra=%s)'% (sys.argv[0],title,url,extra)))
    cm.append(('Help!! %s'%extra,'Container.Update(%s?action=ruguide&title=%s&extra=%s)'% (sys.argv[0],title,extra)))
    listitem=xbmcgui.ListItem(title,iconImage="DefaultVideo.png",thumbnailImage=thumbnail)
    if info_labels is None: info_labels={"Title":title,"FileName":title,"Plot":plot}
    listitem.setInfo( "video", info_labels )
    listitem.addContextMenuItems(items=cm, replaceItems=False)
    if fanart!="": listitem.setProperty('fanart_image',fanart); xbmcplugin.setPluginFanart(int(sys.argv[1]),fanart)
    if url.startswith("plugin://"): itemurl=url; listitem.setProperty('IsPlayable','true'); xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=itemurl,listitem=listitem,isFolder=folder)
    elif isPlayable: listitem.setProperty("Video","true"); listitem.setProperty('IsPlayable','true'); itemurl='%s?action=%s&title=%s&url=%s&thumbnail=%s&plot=%s&extra=%s&page=%s' % (sys.argv[0],action,urllib.quote_plus(title),urllib.quote_plus(url),urllib.quote_plus(thumbnail),urllib.quote_plus(plot),urllib.quote_plus(extra),urllib.quote_plus(page)); xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=itemurl,listitem=listitem,isFolder=folder)
    else: itemurl='%s?action=%s&title=%s&url=%s&thumbnail=%s&plot=%s&extra=%s&page=%s' % (sys.argv[0],action,urllib.quote_plus(title),urllib.quote_plus(url),urllib.quote_plus(thumbnail),urllib.quote_plus(plot),urllib.quote_plus(extra),urllib.quote_plus(page)); xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),url=itemurl,listitem=listitem,isFolder=folder)
Пример #40
0
def search():
    addDirectory("Suchen ...", defaultbanner, defaultbackdrop, "", "searchNew")
    cache.table_name = "searchhistory"
    some_dict = cache.get("searches").split("|")
    for str in reversed(some_dict):
        addDirectory(str, defaultbanner, defaultbackdrop,
                     str.replace(" ", "+"), "searchNew")
    xbmcplugin.setContent(pluginhandle, 'episodes')
    xbmcplugin.endOfDirectory(pluginhandle)
    if forceView:
        xbmc.executebuiltin(defaultViewMode)
    xbmcplugin.setPluginFanart(int(sys.argv[1]),
                               defaultbackdrop,
                               color2='0xFFFF3300')
    def system(self):
        # if 'filter' in self.response:
        #     self.notify(self.response.get('filter', {}))
        # else:
        #     self.notify({})

        data = self.response.get(SC.ITEM_SYSTEM, {})
        if 'setContent' in data:
            xbmcplugin.setContent(params.handle, data['setContent'])

        if 'setPluginCategory' in data:
            xbmcplugin.setPluginCategory(params.handle,
                                         data['setPluginCategory'])

        if 'addSortMethod' in data:
            # info('add sort method {}'.format(SORT_METHODS[data['addSortMethod']]))
            xbmcplugin.addSortMethod(params.handle,
                                     SORT_METHODS[data['addSortMethod']])

        if 'addSortMethods' in data:
            for method in data['addSortMethods']:
                # info('add sort method {}'.format(SORT_METHODS[method]))
                xbmcplugin.addSortMethod(params.handle, SORT_METHODS[method])

        if 'SetSortMethod' in data:
            #method = SORT_METHODS[int(data.get('SetSortMethod'))]
            # info('set sort method {}'.format(method))
            #xbmc.executebuiltin('Container.SetSortMethod(%d)' % method)
            pass

        if 'setPluginFanart' in data:
            tmp = data.get('setPluginFanart')
            image = tmp.get('image', None)
            color1 = tmp.get('color1', None)
            xbmcplugin.setPluginFanart(params.handle,
                                       image=image,
                                       color1=color1)

        if 'addCustomFilter' in data:
            item = SCItem({
                'type': 'add_custom_filter',
                'title': '[B]+[/B]   ADD',
                SC.ITEM_ACTION: SC.ACTION_ADD_CUSTOM_FILTER
            })
            item.li().setProperty('SpecialSort', GUI.BOTTOM)
            self.items.append(item.get())

        if 'listType' in data:
            params.args.update({'listType': data['listType']})
            self.listType = data['listType']
 def _fill_media_list(self, categories):
     try:
         ok = True
         # enumerate through the tuple of categories and add the item to the media list
         for (title, method, vq, username, isfolder, issearch, description, idrequired, thumbnail) in categories:
             # if a idrequired is required for category and none supplied, skip category
             if idrequired and self.username == "":
                 continue
             # set the callback url
             url = "%s?title=%s&category=%s&vq=%s&username=%s&issearch=%d&update_listing=%d" % (
                 sys.argv[0],
                 quote_plus(repr(title)),
                 repr(method),
                 quote_plus(repr(vq)),
                 quote_plus(repr(username)),
                 issearch,
                 False,
             )
             # check for a valid custom thumbnail for the current category
             thumbnail = thumbnail or self._get_thumbnail(method)
             # set the default icon
             icon = "DefaultFolderBig.png"
             # only need to add label, icon and thumbnail, setInfo() and addSortMethod() takes care of label2
             listitem = xbmcgui.ListItem(title, iconImage=icon, thumbnailImage=thumbnail)
             # add the item to the media list
             ok = xbmcplugin.addDirectoryItem(
                 handle=int(sys.argv[1]), url=url, listitem=listitem, isFolder=isfolder, totalItems=len(categories)
             )
             # if user cancels, call raise to exit loop
             if not ok:
                 raise
         # we do not want to sort queries list
         if "category='presets_videos'" in sys.argv[2] or "category='presets_users'" in sys.argv[2]:
             xbmcplugin.addSortMethod(handle=int(sys.argv[1]), sortMethod=xbmcplugin.SORT_METHOD_NONE)
         # set our plugin category
         xbmcplugin.setPluginCategory(handle=int(sys.argv[1]), category=self.args.title)
         # set our fanart from user setting
         if xbmcplugin.getSetting("fanart_image"):
             xbmcplugin.setPluginFanart(handle=int(sys.argv[1]), image=xbmcplugin.getSetting("fanart_image"))
     except:
         # user cancelled dialog or an error occurred
         print "ERROR: %s::%s (%d) - %s" % (
             self.__class__.__name__,
             sys.exc_info()[2].tb_frame.f_code.co_name,
             sys.exc_info()[2].tb_lineno,
             sys.exc_info()[1],
         )
         ok = False
     return ok
Пример #43
0
 def _add_playlists_directory(self, playlists):
     n = len(playlists)
     if __debugging__:
         xbmc.log("Found " + str(n) + " playlists...")
     i = 0
     while i < n:
         playlist = playlists[i]
         playlistName = playlist[0]
         playlistID = playlist[1]
         self._add_dir(playlistName, '', MODE_PLAYLIST, self.playlistImg,
                       playlistID, n)
         i = i + 1
     xbmcplugin.setContent(self._handle, 'files')
     xbmcplugin.addSortMethod(self._handle, xbmcplugin.SORT_METHOD_LABEL)
     xbmcplugin.setPluginFanart(int(sys.argv[1]), self.fanImg)
Пример #44
0
def getMainMenu():
    addDirectory("Aktuell",defaultbanner,defaultbackdrop,"","getAktuelles")
    addDirectory("Sendungen",defaultbanner,defaultbackdrop,"","getSendungen")
    addDirectory("Themen",defaultbanner,defaultbackdrop,"","getThemen")
    addDirectory("Live",defaultbanner,defaultbackdrop,"","getLive")
    addDirectory("ORF Tipps",defaultbanner,defaultbackdrop,"","getTipps")
    addDirectory("Neu",defaultbanner,defaultbackdrop,"","getNeu")
    addDirectory("Meist gesehen",defaultbanner,defaultbackdrop,"","getMostViewed")
    addDirectory("Sendung verpasst?",defaultbanner,defaultbackdrop,"","getArchiv")
    addDirectory("Suchen",defaultbanner,defaultbackdrop,"","searchPhrase")
    xbmcplugin.setContent(pluginhandle,'episodes')
    xbmcplugin.endOfDirectory(pluginhandle)
    if forceView:
       xbmc.executebuiltin(defaultViewMode)
    xbmcplugin.setPluginFanart(int(sys.argv[1]), defaultbackdrop, color2='0xFFFF3300')
Пример #45
0
 def _fill_media_list( self, categories ):
     try:
         ok = True
         # enumerate through the tuple of categories and add the item to the media list
         for ( ltitle, method, vq, username, cat, isfolder, orderby, issearch, thumbnail, user_required, ) in categories:
             # if a username is required for category and none supplied, skip category
             if ( user_required and self.authkey == "" ): continue
             # set the callback url
             url = '%s?title=%s&category=%s&page=1&vq=%s&username=%s&cat=%s&orderby=%s&related=""&issearch=%d&update_listing=%d' % ( sys.argv[ 0 ], quote_plus( repr( ltitle ) ), repr( method ), quote_plus( repr( vq ) ), quote_plus( repr( username ) ), quote_plus( repr( cat ) ), repr( orderby ), issearch, False, )
             # check for a valid custom thumbnail for the current category
             thumbnail = thumbnail or self._get_thumbnail( method )
             # set the default icon
             icon = "DefaultFolder.png"
             # only need to add label, icon and thumbnail, setInfo() and addSortMethod() takes care of label2
             listitem=xbmcgui.ListItem( ltitle, iconImage=icon, thumbnailImage=thumbnail )
             # TODO: verify if this should work
             # set fanart
             listitem.setProperty( "fanart_image", "%s-fanart.png" % os.path.join( sys.modules[ "__main__" ].__plugin__, method, ) )
             # add context menu items
             cm = []
             # add queue video
             if ( not issearch and not method.startswith( "presets_" ) and isfolder ):
                 cm += [ ( xbmc.getLocalizedString( 30509 ), "XBMC.Action(Queue)", ) ]
             # add remove from search for presets
             if ( method == "videos" ):
                 issearch = 1 + ( "category='presets_users'" in sys.argv[ 2 ] in sys.argv[ 2 ] ) + ( 2 * ( "category='presets_categories'" in sys.argv[ 2 ] ) )
                 query = vq or username
                 query += " | " + ltitle + " | "
                 cm += [ ( xbmc.getLocalizedString( 30508 ), "XBMC.RunPlugin(%s?category='delete_preset'&issearch=%d&query=%s&update_listing=False)" % ( sys.argv[ 0 ], issearch, quote_plus( repr( query ) ), ) ) ]
             # add context menu items
             listitem.addContextMenuItems( cm, replaceItems=True )
             # add the item to the media list
             ok = xbmcplugin.addDirectoryItem( handle=int( sys.argv[ 1 ] ), url=url, listitem=listitem, isFolder=isfolder, totalItems=len( categories ) )
             # if user cancels, call raise to exit loop
             if ( not ok ): raise
         # we do not want to sort queries list
         if ( "category='presets_videos'" in sys.argv[ 2 ] or "category='presets_users'" in sys.argv[ 2 ] or "category='presets_categories'" in sys.argv[ 2 ] ):
             xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_NONE )
         # set our plugin category
         xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=self.args.title )
         # set our fanart from user setting
         if ( xbmcplugin.getSetting( "fanart_image" ) ):
             xbmcplugin.setPluginFanart( handle=int( sys.argv[ 1 ] ), image=xbmcplugin.getSetting( "fanart_image" ) )
     except:
         # user cancelled dialog or an error occurred
         print "ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__, sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno, sys.exc_info()[ 1 ], )
         ok = False
     return ok
Пример #46
0
    def __init__(self):
        index().container_data()
        params = {}
        splitparams = sys.argv[2][sys.argv[2].find('?') + 1:].split('&')
        for param in splitparams:
            if (len(param) > 0):
                splitparam = param.split('=')
                key = splitparam[0]
                try:	value = splitparam[1].encode("utf-8")
                except:	value = splitparam[1]
                params[key] = value

        try:		action = urllib.unquote_plus(params["action"])
        except:		action = None
        try:		name = urllib.unquote_plus(params["name"])
        except:		name = None
        try:		show = urllib.unquote_plus(params["show"])
        except:		show = None
        try:		url = urllib.unquote_plus(params["url"])
        except:		url = None
        try:		image = urllib.unquote_plus(params["image"])
        except:		image = None

        if action == None:							shows().real()
        elif action == 'item_play':					contextMenu().item_play()
        elif action == 'item_random_play':			contextMenu().item_random_play()
        elif action == 'item_queue':				contextMenu().item_queue()
        elif action == 'playlist_start':			contextMenu().playlist_start()
        elif action == 'playlist_open':				contextMenu().playlist_open()
        elif action == 'settings_open':				contextMenu().settings_open()
        elif action == 'global_view':				contextMenu().global_view()
        elif action == 'episodes':					episodes().get(show, url)
        elif action == 'parts':						episodes().parts(show, url)
        elif action == 'play':						player().run(url)

        viewDict = {
            'skin.confluence'	: 506,	'skin.aeon.nox'		: 50,	'skin.back-row'			: 50,
            'skin.bello'		: 50,	'skin.carmichael'	: 50,	'skin.diffuse'			: 55,
            'skin.droid'		: 50,	'skin.metropolis'	: 55,	'skin.pm3-hd'			: 51,
            'skin.rapier'		: 52,	'skin.re-touched'	: 50,	'skin.simplicity'		: 50,
            'skin.transparency'	: 51,	'skin.xeebo'		: 50,	'skin.xperience1080'	: 50
            }

        xbmcplugin.setContent(int(sys.argv[1]), 'Albums')
        xbmcplugin.setPluginFanart(int(sys.argv[1]), addonFanart)
        xbmcplugin.endOfDirectory(int(sys.argv[1]))
        index().container_view(viewDict)
        return
Пример #47
0
def AddItem(item, title, thumbnail,
            mode):  #----------------------------------OK
    contextCommands = []
    if "," in item.context:
        for menuitem in item.context.split("|"):
            if "," in menuitem:
                from copy import deepcopy
                Menu = deepcopy(item)
                if len(menuitem.split(",")) == 2:
                    Titulo = menuitem.split(",")[0]
                    Menu.action = menuitem.split(",")[1]
                elif len(menuitem.split(",")) == 3:
                    Titulo = menuitem.split(",")[0]
                    Menu.channel = menuitem.split(",")[1]
                    Menu.action = menuitem.split(",")[2]
                Menu.refered_action = item.action
                contextCommands.append([Titulo, ConstruirURL(Menu)])
    import xbmcgui
    import xbmcplugin
    listitem = xbmcgui.ListItem(title,
                                iconImage="DefaultFolder.png",
                                thumbnailImage=thumbnail)
    listitem.setInfo("video", {
        "Title": item.title,
        "Plot": item.plot,
        "Studio": item.channel
    })
    if item.fanart != "":
        listitem.setProperty('fanart_image', item.fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), item.fanart)
    listitem.addContextMenuItems(contextCommands, replaceItems=True)

    if item.folder:
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                    url=sys.argv[0] + "?" + item.serialize(),
                                    listitem=listitem,
                                    isFolder=True)
    else:
        if config.get_setting(
                "player_mode"
        ) == "1":  # SetResolvedUrl debe ser siempre "isPlayable = true"
            listitem.setProperty('IsPlayable', 'true')
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]),
                                    url=sys.argv[0] + "?" + item.serialize(),
                                    listitem=listitem,
                                    isFolder=False)
Пример #48
0
def build_directoryContent(content, addon_handle, cache=True, root=False):
	xbmcplugin.setContent(addon_handle, 'movies')
	xbmcplugin.setPluginFanart(addon_handle, __addon__.getAddonInfo('path') + '/fanart.jpg')
	for record in content:
		# set missing properties
		record['image'] = record.get('image', "")
		record['plot'] = record.get('plot', "")
		record['thumbnail'] = record.get('thumbnail', "")
		record['selected'] = record.get('selected', False)

		li = xbmcgui.ListItem(record['title'], iconImage=record['image'])
		li.setInfo('video', {'plot':record['plot'] })
		li.setProperty('fanart_image', record['thumbnail'])
		li.select(record['selected'])
	
		xbmcplugin.addDirectoryItem(handle=addon_handle, url=record['url'], listitem=li, isFolder=record['isFolder'])

	xbmcplugin.endOfDirectory(addon_handle, True, root, cache)
Пример #49
0
 def __init__(self):
     # get users preference
     self._get_settings()
     # fetch videos
     ok = self.get_videos()
     # if successful and user did not cancel, set our sort orders, content, plugin category and fanart
     if (ok):
         xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                                  sortMethod=xbmcplugin.SORT_METHOD_LABEL)
         xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                                  sortMethod=xbmcplugin.SORT_METHOD_SIZE)
         xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                                  sortMethod=xbmcplugin.SORT_METHOD_DATE)
         xbmcplugin.addSortMethod(
             handle=int(sys.argv[1]),
             sortMethod=xbmcplugin.SORT_METHOD_VIDEO_RUNTIME)
         xbmcplugin.addSortMethod(
             handle=int(sys.argv[1]),
             sortMethod=xbmcplugin.SORT_METHOD_VIDEO_YEAR)
         xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                                  sortMethod=xbmcplugin.SORT_METHOD_GENRE)
         xbmcplugin.addSortMethod(
             handle=int(sys.argv[1]),
             sortMethod=xbmcplugin.SORT_METHOD_MPAA_RATING)
         xbmcplugin.addSortMethod(handle=int(sys.argv[1]),
                                  sortMethod=xbmcplugin.SORT_METHOD_STUDIO)
         # set content
         xbmcplugin.setContent(handle=int(sys.argv[1]), content="movies")
         try:
             # set our plugin category
             xbmcplugin.setPluginCategory(handle=int(sys.argv[1]),
                                          category=self.PluginCategory)
             # set our fanart from user setting
             if (self.settings["fanart_image"]):
                 xbmcplugin.setPluginFanart(
                     handle=int(sys.argv[1]),
                     image=self.settings["fanart_image"],
                     color1=self.settings["fanart_color1"],
                     color2=self.settings["fanart_color2"],
                     color3=self.settings["fanart_color3"])
         except:
             pass
     # send notification we're finished, successfully or unsuccessfully
     xbmcplugin.endOfDirectory(handle=int(sys.argv[1]), succeeded=ok)
def AddItem(item, totalitems):
    #logger.info("[launcher.py] - AddItem " + str(sys.argv))
    titulo = item.title   
    if item.duration:
      if item.duration > 3599: 
        Tiempo = time.strftime("%H:%M:%S", time.gmtime(item.duration))
      else:
        Tiempo= time.strftime("%M:%S", time.gmtime(item.duration))
    if item.action <> "mainlist":
      if config.get_setting("duracionentitulo")<>"true" and item.duration: titulo = titulo + " (" + Tiempo + ")"
      if config.get_setting("calidadentitulo")<>"true" and item.quality: titulo = titulo + " [" + item.quality + "]"   
      if config.get_setting("idiomaentitulo")<>"true" and item.language: titulo = titulo + " [" + item.language + "]"

    listitem = xbmcgui.ListItem( titulo, iconImage="DefaultFolder.png", thumbnailImage=item.thumbnail)
    listitem.setInfo( "video", { "Title" : item.title, "Plot" : item.plot, "Studio" : item.channel } )

    if item.fanart!="":
        listitem.setProperty('fanart_image',item.fanart) 
        xbmcplugin.setPluginFanart(int(sys.argv[1]), item.fanart)
        
        
    if "," in item.context:
      contextCommands=[]
      for menuitem in item.context.split("|"):
        if "," in menuitem:
          from copy import deepcopy
          Menu = deepcopy(item)
          if len(menuitem.split(",")) == 2:
            Titulo = menuitem.split(",")[0]
            Menu.action = menuitem.split(",")[1]
          elif len(menuitem.split(",")) == 3:
            Titulo = menuitem.split(",")[0]
            Menu.channel = menuitem.split(",")[1]
            Menu.action =menuitem.split(",")[2]
          contextCommands.append((Titulo,"XBMC.RunPlugin("+ConstruirURL(Menu)+")"))
      if len(contextCommands)>0:
        listitem.addContextMenuItems ( contextCommands, replaceItems=False)
        
    if item.folder:
      xbmcplugin.addDirectoryItem( handle = int(sys.argv[1]), url = ConstruirURL(item) , listitem=listitem, isFolder=True, totalItems=totalitems)
    else:
      if config.get_setting("player_mode")=="1": # SetResolvedUrl debe ser siempre "isPlayable = true"
        listitem.setProperty('IsPlayable', 'true')
      xbmcplugin.addDirectoryItem( handle = int(sys.argv[1]), url = ConstruirURL(item) , listitem=listitem, isFolder=False, totalItems=totalitems)
Пример #51
0
 def _add_artists_directory(self, artists):
     n = len(artists)
     itemsExisting = n
     if __debugging__:
         xbmc.log("Found " + str(n) + " artists...")
     i = 0
     while i < n:
         artist = artists[i]
         artistID = artist[1]
         if groovesharkApi.getDoesArtistExist(artistID):
             artistName = artist[0]
             self._add_dir(artistName, '', MODE_ARTIST, self.artistImg,
                           artistID, itemsExisting)
         else:
             itemsExisting = itemsExisting - 1
         i = i + 1
     xbmcplugin.setContent(self._handle, 'artists')
     xbmcplugin.addSortMethod(self._handle,
                              xbmcplugin.SORT_METHOD_ARTIST_IGNORE_THE)
     xbmcplugin.setPluginFanart(int(sys.argv[1]), self.fanImg)
Пример #52
0
    def system(self, data):
        if "setContent" in data:
            xbmcplugin.setContent(int(sys.argv[1]), data["setContent"])

        if "setPluginCategory" in data:
            xbmcplugin.setPluginCategory(int(sys.argv[1]),
                                         data["setPluginCategory"])

        if "addSortMethod" in data:
            xbmcplugin.addSortMethod(
                int(sys.argv[1]), sctop.sortmethod[int(data["addSortMethod"])])

        if data.get('addSortMethods'):
            for m in data.get("addSortMethods"):
                xbmcplugin.addSortMethod(int(sys.argv[1]),
                                         sctop.sortmethod[int(m)])

        if "setPluginFanart" in data:
            xbmcplugin.setPluginFanart(int(sys.argv[1]),
                                       data["setPluginFanart"])
Пример #53
0
def getMainMenu():
    addDirectory("Aktuell", defaultbanner, defaultbackdrop, "", "getAktuelles")
    addDirectory("Sendungen", defaultbanner, defaultbackdrop, "",
                 "getSendungen")
    addDirectory("Themen", defaultbanner, defaultbackdrop, "", "getThemen")
    addDirectory("Live", defaultbanner, defaultbackdrop, "", "getLive")
    addDirectory("ORF Tipps", defaultbanner, defaultbackdrop, "", "getTipps")
    addDirectory("Neu", defaultbanner, defaultbackdrop, "", "getNeu")
    addDirectory("Meist gesehen", defaultbanner, defaultbackdrop, "",
                 "getMostViewed")
    addDirectory("Sendung verpasst?", defaultbanner, defaultbackdrop, "",
                 "getArchiv")
    addDirectory("Suchen", defaultbanner, defaultbackdrop, "", "searchPhrase")
    xbmcplugin.setContent(pluginhandle, 'episodes')
    xbmcplugin.endOfDirectory(pluginhandle)
    if forceView:
        xbmc.executebuiltin(defaultViewMode)
    xbmcplugin.setPluginFanart(int(sys.argv[1]),
                               defaultbackdrop,
                               color2='0xFFFF3300')
 def _fill_media_list( self, genres ):
     try:
         ok = True
         # enumerate through the list of genres and add the item to the media list
         for genre in genres:
             url = "%s?genre_id=%d&genre=%s" % ( sys.argv[ 0 ], genre[ 0 ], repr( genre[ 1 ] ), )
             # check for a valid custom thumbnail for the current category
             thumbnail = self._get_thumbnail( genre[ 1 ] )
             # set the default icon
             icon = "DefaultFolder.png"
             # only need to add label, icon and thumbnail, setInfo() and addSortMethod() takes care of label2
             listitem=xbmcgui.ListItem( genre[ 1 ], iconImage=icon, thumbnailImage=thumbnail )#, "(%d)" % genre[ 2 ] )
             # add the different infolabels we want to sort by
             listitem.setInfo( type="Video", infoLabels={ "Date": "%s-%s-%s" % ( genre[ 4 ][ 8 : ], genre[ 4 ][ 5 : 7 ], genre[ 4 ][ : 4 ], ) } )
             # add the item to the media list
             ok = xbmcplugin.addDirectoryItem( handle=int(sys.argv[ 1 ]), url=url, listitem=listitem, isFolder=True, totalItems=len(genres) )
             if ( not ok ): raise
     except:
         # user cancelled dialog or an error occurred
         print "ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__, sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno, sys.exc_info()[ 1 ], )
         ok = False
     # if successful and user did not cancel, set our sort orders, content and fanart
     if ( ok ):
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_LABEL )
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_DATE )
         # set content
         xbmcplugin.setContent( handle=int( sys.argv[ 1 ] ), content="movies" )
         try:
             # set our fanart from user setting
             if ( xbmcplugin.getSetting( "fanart_genre" ) == "true" ):
                 if ( xbmcplugin.getSetting( "fanart_genre_path" ) ):
                     image_path = os.path.join( xbmcplugin.getSetting( "fanart_genre_path" ), "Genres.tbn" )
                     if ( os.path.isfile ( image_path ) ):
                         xbmcplugin.setPluginFanart( handle=int( sys.argv[ 1 ] ), image=image_path, color1=xbmcplugin.getSetting( "fanart_color1" ), color2=xbmcplugin.getSetting( "fanart_color2" ), color3=xbmcplugin.getSetting( "fanart_color3" ) )
             elif ( xbmcplugin.getSetting( "fanart_image" ) ):
                 xbmcplugin.setPluginFanart( handle=int( sys.argv[ 1 ] ), image=xbmcplugin.getSetting( "fanart_image" ), color1=xbmcplugin.getSetting( "fanart_color1" ), color2=xbmcplugin.getSetting( "fanart_color2" ), color3=xbmcplugin.getSetting( "fanart_color3" ) )
         except:
             pass
     # send notification we're finished, successfully or unsuccessfully
     xbmcplugin.endOfDirectory( handle=int( sys.argv[ 1 ] ), succeeded=ok )
def setPluginFanart( *args, **kwargs):
    """Sets the plugins fanart and color for skins to display.

    handle: integer - handle the plugin was started with.\n"
    image: string - path to fanart image.
    color1: hexstring - color1. (e.g. '0xFFFFFFFF')
    color2: hexstring - color2. (e.g. '0xFFFF3300')
    color3: hexstring - color3. (e.g. '0xFF000000')

    Example:
        xbmcplugin.setPluginFanart(int(sys.argv[1]), 'special://home/addons/plugins/video/Apple movie trailers II/fanart.png', color2='0xFFFF3300')
    """
    return mundane_xbmcplugin.setPluginFanart( *args, **kwargs)
Пример #56
0
 def _fill_media_list( self, items ):
     try:
         ok = True
         # enumerate through the list of items and add the item to the media list
         for item in items:
             # only need to add label, icon and thumbnail, setInfo() and addSortMethod() takes care of label2
             listitem=xbmcgui.ListItem( label=item.title, iconImage=item.icon, thumbnailImage=item.thumbnail_url )
             # TODO: add info and sort methods
             # add the different infolabels we want to sort by
             listitem.setInfo( type="Pictures", infoLabels={ "Title": item.title } )#, "Genre": self.args.title, "Duration": video.duration, "Date": video.date } )
             # we add additional properties and infolabels for pictures
             if ( not item.isFolder ):
                 listitem.setInfo( type="Pictures", infoLabels={ "Date": "%s-%s-%s" % ( item.datetaken[ 8 : 10 ], item.datetaken[ 5 : 7 ], item.datetaken[  : 4 ], ), } )#"Size": item[ "photo_size" ], "exif:exiftime": item[ "photo_datetime" ], "exif:resolution": "%d,%d" % ( item[ "photo_width" ], item[ "photo_height" ], ) } )
                 # skins display these with ListItem.Property(User)...
                 listitem.setProperty( "User", item.author )
                 listitem.setProperty( "Description", item.description )
                 listitem.setProperty( "DateTaken", item.datetaken )
             # add the item to the media list
             ok = xbmcplugin.addDirectoryItem( handle=int( sys.argv[ 1 ] ), url=item.url, listitem=listitem, isFolder=item.isFolder, totalItems=len( items ) )
             # if user cancels, call raise to exit loop
             if ( not ok ): raise
     except:
         # user cancelled dialog or an error occurred
         print "ERROR: %s::%s (%d) - %s" % ( self.__class__.__name__, sys.exc_info()[ 2 ].tb_frame.f_code.co_name, sys.exc_info()[ 2 ].tb_lineno, sys.exc_info()[ 1 ], )
         ok = False
     # if successful and user did not cancel, add all the required sort methods
     if ( ok ):
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_LABEL )
         xbmcplugin.addSortMethod( handle=int( sys.argv[ 1 ] ), sortMethod=xbmcplugin.SORT_METHOD_DATE )
         # set our plugin category
         xbmcplugin.setPluginCategory( handle=int( sys.argv[ 1 ] ), category=self.args.title )
         # if skin has fanart image use it
         fanart_image = os.path.join( sys.modules[ "__main__" ].__plugin__, self.args.category + "-fanart.png" )
         if ( xbmc.skinHasImage( fanart_image ) ):
             xbmcplugin.setPluginFanart( handle=int( sys.argv[ 1 ] ), image=fanart_image )
         # set our fanart from user setting
         elif ( self.settings[ "fanart_image" ] ):
             xbmcplugin.setPluginFanart( handle=int( sys.argv[ 1 ] ), image=self.settings[ "fanart_image" ] )
     return ok, len( items )
Пример #57
0
    def __init__(self):
        params = {}
        splitparams = sys.argv[2][sys.argv[2].find('?') + 1:].split('&')
        for param in splitparams:
            if (len(param) > 0):
                splitparam = param.split('=')
                key = splitparam[0]
                try:	value = splitparam[1].encode("utf-8")
                except:	value = splitparam[1]
                params[key] = value

        try:		action	= urllib.unquote_plus(params["action"])
        except:		action	= None
        try:		channel = urllib.unquote_plus(params["channel"])
        except:		channel = None

        if action	==	None:						channels().get()
        elif action	== 'play_video':				player().play(channel)
        elif action == 'epg_menu':					utils().epg(channel)
        elif action == 'refresh':					utils().refresh()

        xbmcplugin.setContent(int(sys.argv[1]), 'Episodes')
        xbmcplugin.setPluginFanart(int(sys.argv[1]), addonFanart)
        xbmcplugin.endOfDirectory(int(sys.argv[1]))
Пример #58
0
def addPeli( action="" , title="" , plot="" , url="" , thumbnail="" , fanart="" , show="" , episode="" , extra="", page="", info_labels = None, isPlayable = False , folder=True ):
    _log("add_item action=["+action+"] title=["+title+"] url=["+url+"] thumbnail=["+thumbnail+"] fanart=["+fanart+"] show=["+show+"] episode=["+episode+"] extra=["+extra+"] page=["+page+"] isPlayable=["+str(isPlayable)+"] folder=["+str(folder)+"]")
    
    contexto = []
    listitem = xbmcgui.ListItem( title, iconImage="DefaultVideo.png", thumbnailImage=thumbnail )
    if info_labels is None:
        info_labels = { "Title" : title, "FileName" : title, "Plot" : plot }
    listitem.setInfo( "video", info_labels )

    if fanart!="":
        listitem.setProperty('fanart_image',fanart)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)	
    else:
        listitem.setProperty('fanart_image', "%s/fanart.jpg" % addonPath)
        xbmcplugin.setPluginFanart(int(sys.argv[1]), fanart)

    if isPlayable:
        listitem.setProperty("Video", "True")
        listitem.setProperty('IsPlayable', 'True')
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s' % ( sys.argv[ 0 ] , action , urllib.quote_plus( title ) , urllib.quote_plus(url) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( fanart ) , urllib.quote_plus( plot ) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))
        contexto.append(('Ver trailer en [COLOR red]You[/COLOR][COLOR white]tube[/COLOR]', '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s' % (sys.argv[0], 'trailer0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        contexto.append(('Crear [COLOR lightyellow][B]Wiki[/B]peli[/COLOR]', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s)' % (sys.argv[0], 'filmaff0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        #contexto.append(('Buscar torrent [COLOR lightyellow][I](BUM+)[/I][/COLOR]', '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s' % (sys.argv[0], 'bum0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        listitem.addContextMenuItems(contexto, replaceItems=False)
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=itemurl, listitem=listitem, isFolder=False)
        print 'sys.argv',sys.argv
    
    else:
        listitem.setProperty("Video", "True")
        listitem.setProperty('IsPlayable', 'False')  
        itemurl = '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s' % ( sys.argv[ 0 ] , action , urllib.quote_plus( title ) , urllib.quote_plus(url) , urllib.quote_plus( thumbnail ) , urllib.quote_plus( fanart ) , urllib.quote_plus( plot ) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))        
        contexto.append(('Ver trailer en [COLOR red]You[/COLOR][COLOR white]tube[/COLOR]', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s)' % (sys.argv[0], 'trailer0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        contexto.append(('Crear [COLOR lightyellow][B]Wiki[/B]peli[/COLOR]', 'XBMC.RunPlugin(%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s)' % (sys.argv[0], 'filmaff0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        #contexto.append(('Buscar torrent [COLOR lightyellow][I](BUM+)[/I][/COLOR]', '%s?action=%s&title=%s&url=%s&thumbnail=%s&fanart=%s&plot=%s&extra=%s&page=%s' % (sys.argv[0], 'bum0' , urllib.quote_plus(title) , urllib.quote_plus(url), urllib.quote_plus(thumbnail), urllib.quote_plus(fanart) , urllib.quote_plus(plot) , urllib.quote_plus( extra ) , urllib.quote_plus( page ))))
        listitem.addContextMenuItems(contexto, replaceItems=False)
        xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=itemurl, listitem=listitem, isFolder=True)
Пример #59
0
        mode=int(params["mode"])
except:
        pass
try:
        module=urllib.unquote_plus(params["module"])
except:
        pass
try:
        page=urllib.unquote_plus(params["page"])
except:
        pass
    
if mode==None or url==None or len(url)<1 or module==None:
        #CATEGORIES()
        mode=1
        url = 'http://nickjr.walla.co.il/'
        module = 'nickjr'
        name = 'nickjr'
        manager = getattr(__import__('module_' + module.lower()), 'manager_' + module)()
        manager.work(mode, url, name, page)

else:
        xbmc.log('in walla %s' % (module), xbmc.LOGDEBUG)
        manager = getattr(__import__('module_' + module.lower()), 'manager_' + module)()
        manager.work(mode, url, name, page)
        


xbmcplugin.setPluginFanart(int(sys.argv[1]),xbmc.translatePath( os.path.join( __PLUGIN_PATH__,"fanart.jpg") ))
xbmcplugin.endOfDirectory(int(sys.argv[1]),cacheToDisc=True)