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)
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) '''
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
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)
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)
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)
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]))
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)
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
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 )
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)
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)
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)
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)
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)
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
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)
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 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)
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)
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)
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)
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
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
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(" "," "),tmp.text.encode('UTF-8').replace(" "," ")) 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')
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)
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 ] )
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)
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
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 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
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)
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
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)
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)
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
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)
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, 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
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
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)
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)
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)
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)
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"])
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)
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 )
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]))
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)
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)