本文整理汇总了Python中xbmcswift2.ListItem.set_info方法的典型用法代码示例。如果您正苦于以下问题:Python ListItem.set_info方法的具体用法?Python ListItem.set_info怎么用?Python ListItem.set_info使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类xbmcswift2.ListItem
的用法示例。
在下文中一共展示了ListItem.set_info方法的11个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: play
# 需要导入模块: from xbmcswift2 import ListItem [as 别名]
# 或者: from xbmcswift2.ListItem import set_info [as 别名]
def play(url):
url = url.decode('utf-8','ignore')
resolved = u''
try:
import urlresolver
resolved = urlresolver.HostedMediaFile(url).resolve()
vitem = ListItem(label=url, path=resolved)
vitem.is_folder = False
vitem.set_is_playable = True
vitem.set_info(type='video', info_labels={'Title': url})
vitem.add_stream_info(stream_type='video', stream_values={})
plugin.set_resolved_url(resolved)
return plugin.play_video(vitem)
except:
plugin.notify(msg="Failed to resolve {0} to a playable video.".format(url))
try:
if resolved is None or len(resolved) < 5:
import YoutubeDLWrapper
ytdl = YoutubeDLWrapper._getYTDL()
ytdl.clearDownloadParams()
resolved = ytdl.extract_info(url, download=False)
vitem = ListItem(label=url, path=resolved)
vitem.is_folder = False
vitem.set_is_playable = True
vitem.set_info(type='video', info_labels={'Title': url})
vitem.add_stream_info(stream_type='video', stream_values={})
plugin.set_resolved_url(resolved)
return plugin.play_video(vitem)
except:
plugin.notify(msg="Failed to resolve {0} to a playable video.".format(url))
return None
示例2: get_track_item
# 需要导入模块: from xbmcswift2 import ListItem [as 别名]
# 或者: from xbmcswift2.ListItem import set_info [as 别名]
def get_track_item(track, album = None, band = None):
if not album:
if track.get('album_id',None):
album = bc.album_info(track['album_id'])
else:album = {}
if not band:
band = bc.band_info(track['band_id'])
art = track.get('large_art_url', album.get('large_art_url',None))
release_date = track.get('release_date', album.get('release_date',None))
artist = track.get('artist', album.get('artist', band['name']))
if track.get('number',None):
label = u"{0} - {1}".format(track['number'], track['title'])
else: label = track['title']
li = ListItem(
label = label,
icon=art,
thumbnail=art,
path=plugin.url_for('play_track', track_id = track['track_id']),
)
li.set_property('mimetype','audio/mpeg')
li.set_is_playable(True)
infos = {
'title':track['title'],
'tracknumber':track.get('number',None),
'duration':track['duration'],
'lyrics':track.get('lyrics',''),
'album':album.get('title',None),
'artist':artist,
'year':year_from_timestamp(release_date)
}
li.set_info('Music', infos)
return li
示例3: tvitem
# 需要导入模块: from xbmcswift2 import ListItem [as 别名]
# 或者: from xbmcswift2.ListItem import set_info [as 别名]
def tvitem(adapter, channel):
titleandtime = channel.nowstarttimeandtitle()
item = ListItem(label=channel.name,
label2=titleandtime,
icon=channel.getimagefile(config.tvconfig.channelsdir),
thumbnail=channel.getimagefile(config.tvconfig.channelsdir),
path=plugin.url_for(str('play_channel'), adapter=adapter, channelid=str(channel.channelid)))
item.set_is_playable(True)
item.set_info('video',
{
'title': channel.name[:15],
'tvshowtitle': titleandtime,
'duration': channel.v_nowduration,
'plot': channel.v_nowdescription,
'plotoutline': channel.v_nowdescription,
'tagline': channel.nowstarttimeandtitle(),
'playcount': 0,
#'cast': channel.v_nowactors,
'fanart': channel.v_nowfanart,
'extrafanart': channel.v_nowposter,
'originaltitle': channel.v_nowtitle,
'year': channel.v_nowyear,
'album': titleandtime, # I used album 'cause I haven't found another field to display label2
'genre': channel.v_nowgenre
})
item.add_context_menu_items(create_context_menu(channel.name, adapter, channel.channelid), replace_items=True)
item.add_stream_info('video',
{'duration': try_parse_int(channel.v_nowduration) * 60, 'plot': channel.v_nowdescription})
return item
示例4: video_detail
# 需要导入模块: from xbmcswift2 import ListItem [as 别名]
# 或者: from xbmcswift2.ListItem import set_info [as 别名]
def video_detail(seasonId):
detail = Meiju.video_detail(seasonId)
season_data = detail["data"]["season"]
title = season_data["title"]
SEASON_CACHE[seasonId] = detail["data"] # store season detail
history = HISTORY.get("list", None)
playing_episode = "0"
if history is not None:
for l in history:
if l["seasonId"] == seasonId:
playing_episode = l["index"]
for episode in season_data["playUrlList"]:
label = title + str(episode["episode"])
if episode["episode"] == playing_episode:
label = "[B]" + colorize(label, "green") + "[/B]"
item = ListItem(**{
'label': label,
'path': plugin.url_for("play_season", seasonId=seasonId, index=episode["episode"], Esid=episode["episodeSid"]),
})
item.set_info("video", {"plot": season_data["brief"],
"TVShowTitle": title,
"episode": int(episode["episode"]),
"season": 0})
item._listitem.setArt({"poster": season_data["cover"]})
item.set_is_playable(True)
yield item
plugin.set_content('episodes')
示例5: processTracksList
# 需要导入模块: from xbmcswift2 import ListItem [as 别名]
# 或者: from xbmcswift2.ListItem import set_info [as 别名]
def processTracksList(tracks):
items = []
for track in tracks:
item = ListItem()
item.set_label('%s - %s' % (track['artistName'], track['trackName']))
try:
item.set_thumbnail(track['imageLarge'])
except:
pass
item.set_path(plugin.url_for('play',
artist = track['artistName'].encode('utf-8'),
track = track['trackName'].encode('utf-8'))
)
item.set_is_playable(True)
try:
item.set_info('music', {
'Duration': track['durationSec'],
'Title': track['trackName'],
'Artist': track['artistName'],
'TrackNumber': track['position'],
})
except:
pass
# Support Track Downloading
if plugin.get_setting('Download Path') != '':
item.add_context_menu_items([(
plugin.get_string(30007),
'XBMC.RunPlugin(' + plugin.url_for('download',
artist = track['artistName'].encode('utf-8'),
track = track['trackName'].encode('utf-8')) + ')'
)])
items.append(item)
return items
示例6: resolveurl
# 需要导入模块: from xbmcswift2 import ListItem [as 别名]
# 或者: from xbmcswift2.ListItem import set_info [as 别名]
def resolveurl():
url = plugin.keyboard(default='', heading='Video Page URL')
if url is not None:
name = url
if len(url) > 0:
item = ListItem(label=name, label2=url, icon='DefaultVideo.png', thumbnail='DefaultVideo.png',
path=plugin.url_for(endpoint=play, url=url))
item.set_is_playable(True)
item.set_info(type='video', info_labels={'Title': url, 'Plot': url})
item.add_stream_info(stream_type='video', stream_values={})
playable = play(url)
plugin.notify(msg=playable.path, title="Playing..")
plugin.play_video(playable)
# plugin.redirect(plugin.url_for(index))
plugin.clear_added_items()
plugin.end_of_directory()
示例7: processPlaylists
# 需要导入模块: from xbmcswift2 import ListItem [as 别名]
# 或者: from xbmcswift2.ListItem import set_info [as 别名]
def processPlaylists(playlists):
items = []
for playlist in playlists:
item = ListItem()
title = playlist['name']
if plugin.get_setting('Show owner') == 'true':
title += ' @' + playlist['user']['login']
item.set_label(title)
item.set_thumbnail(playlist['images']['large'])
item.set_path(plugin.url_for('playlist', playlist_id = str(playlist['playlistId'])))
item.set_info('music', {
'Album': playlist['name'],
'TrackNumber': playlist['itemsCount']
})
items.append(item)
return items
示例8: get_album
# 需要导入模块: from xbmcswift2 import ListItem [as 别名]
# 或者: from xbmcswift2.ListItem import set_info [as 别名]
def get_album(albumId):
c_list = Meiju.get_album(albumId)
for one in c_list["data"]["results"]:
item = ListItem(**{
'label': one.get("title"),
'path': plugin.url_for("detail", seasonId=one.get("id")),
'icon': one["cover"],
'thumbnail': one["cover"],
})
item.set_info("video", {"plot": one.get("brief", ""),
"rating ": float(one["score"]),
"genre": one["cat"],
"season": one["seasonNo"]})
item.set_is_playable(False)
yield item
plugin.set_content('TVShows')
示例9: get_album_item
# 需要导入模块: from xbmcswift2 import ListItem [as 别名]
# 或者: from xbmcswift2.ListItem import set_info [as 别名]
def get_album_item(album, band = None):
if (not band) and (not album.get('artist',None)):
band = bc.band_info(album['band_id'])
year = year_from_timestamp(int(album['release_date']))
artist = album.get('artist', band['name'])
li = ListItem(
label = u"{1} - {0}".format(album['title'], year),
icon=album['large_art_url'],
thumbnail=album['large_art_url'],
path=plugin.url_for('show_album', album_id = album['album_id'])
)
infos = {
'year':year,
'album':album['title'],
'artist':artist
}
li.set_info('Music', infos)
return li
示例10: searchstreams
# 需要导入模块: from xbmcswift2 import ListItem [as 别名]
# 或者: from xbmcswift2.ListItem import set_info [as 别名]
def searchstreams(query='gay', offset=0):
vids = []
img = 'DefaultVideo.png'
fhosts = plugin.get_setting(key='filterhosts')
fwords = plugin.get_setting(key='filterwords')
fnames = plugin.get_setting(key='filternames')
newlinks = plugin.get_setting(key='newlinkson', converter=bool)
addqs = ""
if len(fnames) > 0:
addqs += "name:{0} ".format(fnames)
if len(fhosts) > 0:
addqs += "host:{0} ".format(fhosts)
if len(fwords) > 0:
addqs += fwords + " "
if newlinks:
addqs += "#newlinks "
apiurl = urlsearch.replace("from=0", "from={0}".format(offset))
apiurl += quote_plus(query + " " + addqs.strip())
results = DL(apiurl)
res = json.loads(results, encoding='utf-8')
pornresults = PronApi(**res)
if isinstance(res, dict) and res.get('result'):
items = res.get('result')
for item in items:
mov = Result()
hoster = Hosterurls()
filedata = Filedata()
if item.get('metatags'):
meta = Metatags(**item.get('metatags'))
if item.get('hosterurls'):
hoster = Hosterurls(**item.get('hosterurls')[0])
if item.get('hosterurls')[0].get('filedata'):
filedata = Filedata(**item.get('hosterurls')[0].get('filedata'))
filedatalist = []
img = ''
for fdata in item.get('hosterurls')[0].get('filedata').get('filedata'):
filedataitem = Filedata(**fdata)
if filedataitem.name == 'pic':
img = filedataitem.value
filedatalist.append(filedataitem)
filedata.filedata = filedatalist
hoster.filedata = filedata
mov = Result(**item)
mov.hosterurls = hoster
mov.metatags = meta
datemod = mov.modified
title = unquote(HTML.unescape(mov.title))
filename = mov.sourcetitle
if filename:
filename = unquote(filename)
else:
filename = ""
url = mov.hosterurls.url
hostname = mov.hosterurls.filedata.hosterurl
lbl = "[COLOR white]" + filename + "[/COLOR]\n" + title
if len(hostname) > 0 and len(fhosts) < 2:
hostparts = urlparse.urlparse(hostname)
hostname = hostparts.hostname.replace("www.","")
if len(filename) > 20:
filename = filename[:20].strip() + ".."
lbl = "[COLOR white]" + filename + "[/COLOR] ([COLOR yellow]" + hostname + ")[/COLOR]\n" + title
imgid = mov.imageid
#if len(img) < 1 and len(imgid) > 0:
# img = get_thumb(imgid)
playpath = plugin.url_for(endpoint=play, url=url)
litem = ListItem(label=lbl, label2=filename, icon=img, thumbnail=img, path=playpath)
litem.set_info(type='video', info_labels={'Date': datemod, 'Title': title, 'Plot': mov.sourcetitle, 'Genre': hostname})
litem.set_property('genre', str(repr(mov.hosterurls)))
litem.set_property('date', datemod)
litem.set_property('genre', hostname)
litem.is_folder = False
litem.playable = True
litem.set_info(type='video', info_labels={'Title': title})
vids.append(litem)
vids.sort(key=lambda item : item.label)
sitem = ListItem(label="[COLOR green]Search Pron.TV[/COLOR]", icon=__imgsearch__, thumbnail=__imgsearch__, path=plugin.url_for(endpoint=search))
nitem = ListItem(label="[COLOR green]-> Next Results ->[/COLOR]", icon=__imgnext__, thumbnail=__imgnext__, path=plugin.url_for(endpoint=nextpage, query=query, offset=str(int(offset)+COUNT)))
vids.insert(0, sitem)
vids.insert(1, nitem)
return vids
示例11: test_set_info
# 需要导入模块: from xbmcswift2 import ListItem [as 别名]
# 或者: from xbmcswift2.ListItem import set_info [as 别名]
def test_set_info(self):
with patch.object(xbmcgui.ListItem, 'setInfo') as mock_setInfo:
item = ListItem()
item.set_info('video', {'title': '300'})
mock_setInfo.assert_called_with('video', {'title': '300'})