def add_video(self, name, params={}, logo='', infoLabels={}, menuItems={}):
#util.debug("_add_video")
#util.debug("[SC] add video info: %s" % str(infoLabels))
_infoLabels=self._extract_infolabels(infoLabels)
name = util.decode_html(name)
if 'Title' not in _infoLabels:
_infoLabels['Title'] = name
#util.debug("[SC] params: %s" % str(params))
url = sctop._create_plugin_url(params)
if logo == '' or logo is None:
logo = self.noImage
li = xbmcgui.ListItem(name, path=url, iconImage='DefaultVideo.png', thumbnailImage=logo)
li.setInfo(type='Video', infoLabels=_infoLabels)
mt = sctop.getMediaType()
#util.debug("[SC] item media type: %s" % mt)
if 'selected' in infoLabels.keys():
wnd = xbmcgui.Window(xbmcgui.getCurrentWindowId())
#util.debug("[SC] wnd: %s [%d]" % (str(wnd), xbmcgui.getCurrentWindowId()))
if 'mvideo' in infoLabels.keys():
li.addStreamInfo('video', infoLabels['mvideo'])
if 'maudio' in infoLabels.keys():
li.addStreamInfo('audio', infoLabels['maudio'])
if 'msubtitle' in infoLabels.keys():
li.addStreamInfo('subtitle', infoLabels['msubtitle'])
if 'art' in infoLabels.keys():
li.setArt(infoLabels['art'])
li.setProperty('IsPlayable', 'true')
if 'runtime' in infoLabels.keys() and infoLabels['runtime'] > 0:
duration = int(infoLabels['runtime']) * 60
li.addStreamInfo('video', {'duration': duration})
items = [(xbmc.getLocalizedString(13347), 'Action(Queue)')]
self.setUniq(li, infoLabels)
for mi in menuItems.keys():
action = menuItems[mi]
if not type(action) == type({}):
items.append((mi, action))
else:
if 'action-type' in action:
action_type = action['action-type']
del action['action-type']
if action_type == 'list':
items.append((mi, 'Container.Update(%s)' % sctop._create_plugin_url(action)))
elif action_type == 'play':
items.append((mi, 'PlayMedia(%s)' % sctop._create_plugin_url(action)))
elif action_type == 'trailer':
items.append((mi, 'PlayMedia(%s)' % action['url']))
else:
items.append((mi, 'RunPlugin(%s)' % sctop._create_plugin_url(action)))
else:
items.append((mi, 'RunPlugin(%s)' % sctop._create_plugin_url(action)))
if len(items) > 0:
li.addContextMenuItems(items)
#xbmc.executebuiltin("Container.SetViewMode(515)")
return xbmcplugin.addDirectoryItem(handle=int(sys.argv[1]), url=url, listitem=li,
isFolder=False)
评论列表
文章目录