def queue_source(item, depth=0):
"""
queue item
Keyword Arguments:
item -- JenItem to try playing
"""
from resources.lib.util.url import get_addon_url
jen_item = JenItem(item)
playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
if "<item>" in str(jen_item):
play = False
if xbmcaddon.Addon().getSetting("autostart_queue") == "true":
if playlist.size() == 0:
play = True
playlist.add(
get_addon_url("get_sources", str(item)),
xbmcgui.ListItem(
jen_item["title"], iconImage=jen_item.get("thumbnail", "")))
if play:
play_queue()
else:
link = jen_item.get("url", jen_item.get("link", ""))
jenlist = JenList(link).get_raw_list()
for list_item in jenlist:
queue_source(str(list_item), depth + 1)
if depth == 0:
xbmcgui.Dialog().notification(
ADDON.getAddonInfo("name"), _("Finished Queueing").encode('utf-8'),
ADDON.getAddonInfo("icon"))
xbmc.executebuiltin("Container.Refresh")
python类PlayList()的实例源码
def clear_queue():
xbmc.PlayList(xbmc.PLAYLIST_VIDEO).clear()
xbmcgui.Dialog().notification(
ADDON.getAddonInfo("name"), _("Queue cleared").encode('utf-8'),
ADDON.getAddonInfo("icon"))
xbmc.executebuiltin('Container.Refresh')
def play_queue():
playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
if playlist.size() > 0:
item = playlist[0]
xbmc.Player().play(playlist, item)
xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, item)
else:
xbmcgui.Dialog().notification(
ADDON.getAddonInfo("name"), _("Queue is empty").encode('utf-8'),
ADDON.getAddonInfo("icon"))
# LocalWords: searchsd HD
def play(self, url, item):
if type(url) == list:
playlist = xbmc.PlayList()
for vid in url:
playlist.add(vid, item)
xbmc.Player().play(playlist, item)
else:
xbmc.Player().play(url, item)
self.item = item
def playall(name,url):
dp = xbmcgui.DialogProgress()
dp.create("Disney Junior",'Creating Your Playlist')
dp.update(0)
pl = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
pl.clear()
response=OPEN_URL(url)
link=response.split('"title":"')
test=re.compile('"embedURL":"(.+?)"').findall(response)
playlist = []
nItem = len(test)
try:
for p in link:
try:
title=p.split('"')[0]
newurl=re.compile('"embedURL":"(.+?)"').findall(p)[0]
iconimage=re.compile('"thumb":"(.+?)"').findall(p)[0]
description=re.compile('"description":"(.+?)"').findall(p)[0]
SHOWME=re.compile('"ptitle":"(.+?)"').findall(p)[0]
if name in SHOWME:
liz = xbmcgui.ListItem(name, iconImage="DefaultVideo.png", thumbnailImage=iconimage)
liz.setInfo( type="Video", infoLabels={ "Title": title} )
liz.setProperty("IsPlayable","true")
r='"mp4".+?".+?"url":"(.+?)"}'
html=OPEN_URL(newurl)
match = re.compile(r).findall(html)
amount = len(match)-1
URL=match[amount]
playlist.append((URL ,liz))
progress = len(playlist) / float(nItem) * 100
dp.update(int(progress), 'Adding to Your Playlist',title)
if dp.iscanceled():
return
except:pass
dp.close()
print 'THIS IS PLAYLIST==== '+str(playlist)
for blob ,liz in playlist:
try:
if blob:
print blob
pl.add(blob,liz)
except:
pass
if not xbmc.Player().isPlayingVideo():
xbmc.Player(xbmc.PLAYER_CORE_MPLAYER).play(pl)
except:
raise
dialog = xbmcgui.Dialog()
dialog.ok("Disney Junior", "Sorry Get All Valid Urls", "Why Not Try A Singular Video")
def play_video(roomid):
"""
Play a video by the provided path.
:param path: str
:return: None
"""
cdnindex=__addon__.getSetting("cdn")
player=xbmc.Player()
if cdnindex != "0":
cdndict={"1":"ws","2":"ws2","3":"lx","4":"dl","5":"tct","6":""}
cdn=cdndict[cdnindex]
room=get_room(roomid,cdn)
path,play_item=get_play_item(room)
# Pass the item to the Kodi player.
xbmcplugin.setResolvedUrl(_handle, True, listitem=play_item)
# directly play the item.
player.play(path, play_item)
else:
cdnlist=["ws","ws2","lx","dl","tct"]
itemlist=[get_play_item(get_room(roomid,x)) for x in cdnlist]
if __addon__.getSetting("excludeRTMP") == 'true':
newitemlist=[]
for path,x in itemlist:
if 'rtmp' not in path:
newitemlist.append((path,x))
itemlist=newitemlist
playlist=xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
playlist.clear()
for path,x in itemlist:
playlist.add(path,x)
player.play(playlist)
with closing(OverlayText(alignment=0)) as overlay:
#print "starting",i
while not player.isPlaying():
xbmc.sleep(100)
overlay.show()
overlay.text=u'????????'
textlist=[u'??????????']
danmu=douyudanmu(roomid)
print danmu.roominfo,roomid
if danmu.roominfo==None:
return
while not xbmc.abortRequested and player.isPlaying():
#while not xbmc.abortRequested:
s=danmu.get_danmu()
if len(s)!=0:
textlist.append(s)
if(len(textlist)>20):
textlist.pop(0)
overlay.text=u'\n'.join(textlist)
#print "looping",i
danmu.exit()
def set_player(item, xlistitem, mediaurl, view, strm):
logger.info()
logger.debug("item:\n" + item.tostring('\n'))
# Movido del conector "torrent" aqui
if item.server == "torrent":
play_torrent(item, xlistitem, mediaurl)
return
# Si es un fichero strm no hace falta el play
elif strm:
xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, xlistitem)
if item.subtitle != "":
xbmc.sleep(2000)
xbmc.Player().setSubtitles(item.subtitle)
else:
logger.info("player_mode=%s" % config.get_setting("player_mode"))
logger.info("mediaurl=" + mediaurl)
if config.get_setting("player_mode") == 3 or "megacrypter.com" in mediaurl:
import download_and_play
download_and_play.download_and_play(mediaurl, "download_and_play.tmp", config.get_setting("downloadpath"))
return
elif config.get_setting("player_mode") == 0 or \
(config.get_setting("player_mode") == 3 and mediaurl.startswith("rtmp")):
# Añadimos el listitem a una lista de reproducción (playlist)
playlist = xbmc.PlayList(xbmc.PLAYLIST_VIDEO)
playlist.clear()
playlist.add(mediaurl, xlistitem)
# Reproduce
xbmc_player = xbmc.Player()
xbmc_player.play(playlist, xlistitem)
# elif config.get_setting("player_mode") == 1 or item.isPlayable:
elif config.get_setting("player_mode") == 1:
logger.info("mediaurl :" + mediaurl)
logger.info("Tras setResolvedUrl")
# si es un archivo de la videoteca enviar a marcar como visto
if strm or item.strm_path:
from platformcode import xbmc_videolibrary
xbmc_videolibrary.mark_auto_as_watched(item)
xlistitem.setPath(mediaurl)
xbmcplugin.setResolvedUrl(int(sys.argv[1]), True, xlistitem)
elif config.get_setting("player_mode") == 2:
xbmc.executebuiltin("PlayMedia(" + mediaurl + ")")
# TODO MIRAR DE QUITAR VIEW
if item.subtitle != "" and view:
logger.info("Subtítulos externos: " + item.subtitle)
xbmc.sleep(2000)
xbmc.Player().setSubtitles(item.subtitle)
# si es un archivo de la videoteca enviar a marcar como visto
if strm or item.strm_path:
from platformcode import xbmc_videolibrary
xbmc_videolibrary.mark_auto_as_watched(item)