本文整理汇总了Python中servers.servertools.resolve_video_urls_for_playing函数的典型用法代码示例。如果您正苦于以下问题:Python resolve_video_urls_for_playing函数的具体用法?Python resolve_video_urls_for_playing怎么用?Python resolve_video_urls_for_playing使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了resolve_video_urls_for_playing函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: download_url
def download_url(url,titulo,server):
url = url.replace("\\","")
print "Analizando enlace "+url
# Averigua el servidor
if server=="":
itemlist = servertools.find_video_items(data=url)
if len(itemlist)==0:
print "No se puede identificar el enlace"
return
item = itemlist[0]
print "Es un enlace en "+item.server
else:
item = Item()
item.server = server
# Obtiene las URL de descarga
video_urls, puedes, motivo = servertools.resolve_video_urls_for_playing(item.server,url)
if len(video_urls)==0:
print "No se ha encontrado nada para descargar"
return
# Descarga el de mejor calidad, como hace pelisalacarta
print "Descargando..."
print video_urls
devuelve = downloadtools.downloadbest(video_urls,titulo,continuar=True)
示例2: test_download_url
def test_download_url():
url = "https://mega.co.nz/#!AxRliabL!LZzZjm3f7Qi1t_pQ37MxZVh1TLsO215Y8Er6m9hOQ0I"
titulo = "escuela_de_bomberos(thor).rar"
print "Analizando enlace "+url
# Averigua el servidor
itemlist = servertools.find_video_items(data=url)
if len(url)==0:
print "No se puede identificar el enlace"
return
item = itemlist[0]
print "Es un enlace en "+item.server
# Obtiene las URL de descarga
video_urls, puedes, motivo = servertools.resolve_video_urls_for_playing(item.server,url)
if len(video_urls)==0:
print "No se ha encontrado nada para descargar"
return
# Descarga el de mejor calidad, como hace pelisalacarta
print video_urls
devuelve = downloadtools.downloadbest(video_urls,titulo,continuar=False)
示例3: download
def download(item):
logger.info("[descargas.py] download")
filepath = os.path.join( DOWNLOAD_PATH,item.title)
video_urls,puedes,motivo = servertools.resolve_video_urls_for_playing(item.server,item.url,"",False)
# Laúltima es la de mayor calidad, lo mejor para la descarga
mediaurl = video_urls[ len(video_urls)-1 ][1]
# Genera el NFO
outfile = open(filepath + ".nfo","w")
outfile.write("<movie>\n")
outfile.write("<title>("+item.title+")</title>\n")
outfile.write("<originaltitle></originaltitle>\n")
outfile.write("<rating>0.000000</rating>\n")
outfile.write("<year>2009</year>\n")
outfile.write("<top250>0</top250>\n")
outfile.write("<votes>0</votes>\n")
outfile.write("<outline></outline>\n")
outfile.write("<plot>"+item.plot+"</plot>\n")
outfile.write("<tagline></tagline>\n")
outfile.write("<runtime></runtime>\n")
outfile.write("<thumb>"+item.thumbnail+"</thumb>\n")
outfile.write("<mpaa>Not available</mpaa>\n")
outfile.write("<playcount>0</playcount>\n")
outfile.write("<watched>false</watched>\n")
outfile.write("<id>tt0432337</id>\n")
outfile.write("<filenameandpath></filenameandpath>\n")
outfile.write("<trailer></trailer>\n")
outfile.write("<genre></genre>\n")
outfile.write("<credits></credits>\n")
outfile.write("<director></director>\n")
outfile.write("<actor>\n")
outfile.write("<name></name>\n")
outfile.write("<role></role>\n")
outfile.write("</actor>\n")
outfile.write("</movie>")
outfile.flush()
outfile.close()
# Descarga el thumbnail
if item.thumbnail != "":
try:
downloadtools.downloadfile(item.thumbnail,filepath + ".tbn")
except:
logger.info("[descargas.py] error al descargar thumbnail")
for line in sys.exc_info():
logger.error( "%s" % line )
#Descarga el vídeo
if item.server =="torrent":
from core import torrent_player
dev = torrent_player.download(item)
else:
dev = downloadtools.downloadbest(video_urls,item.title)
return dev
示例4: menu_video
def menu_video(item):
itemlist = []
logger.info("menu_video url="+item.url+", server="+item.server+", fulltitle="+item.fulltitle)
from servers import servertools
video_urls,puede,motivo = servertools.resolve_video_urls_for_playing( item.server , item.url , video_password="" , muestra_dialogo=False)
if puede:
for video_url in video_urls:
itemlist.append( Item(channel=item.channel, title="Ver "+video_url[0], url=video_url[1], action="play_video") )
refered_item_encoded = urllib.quote(item.title.replace("|","-"))+"|"+urllib.quote(item.server)+"|"+urllib.quote(item.url)+"|"+urllib.quote(item.extra)
itemlist.append( Item(channel=item.channel, title="Descargar",action="descargar",url=refered_item_encoded,fulltitle=urllib.quote(item.fulltitle) ) )
if item.channel!="favoritos":
itemlist.append( Item(channel=item.channel, title="Añadir a favoritos",action="add_to_favorites",url=refered_item_encoded,fulltitle=urllib.quote(item.fulltitle) ) )
else:
itemlist.append( Item(channel=item.channel, title="Quitar de favoritos",action="remove_from_favorites",url=refered_item_encoded,fulltitle=urllib.quote(item.fulltitle) ) )
if item.channel!="descargas":
itemlist.append( Item(channel=item.channel, title="Añadir a la lista de descargas",action="add_to_downloads",url=refered_item_encoded,fulltitle=urllib.quote(item.fulltitle) ) )
else:
if item.category=="errores":
itemlist.append( Item(channel=item.channel, title="Quitar definitivamente de la lista de descargas",action="remove_from_error_downloads",url=refered_item_encoded ) )
itemlist.append( Item(channel=item.channel, title="Pasar de nuevo a la lista de descargas",action="add_again_to_downloads",url=refered_item_encoded ) )
else:
itemlist.append( Item(channel=item.channel, title="Quitar de la lista de descargas",action="remove_from_downloads",url=refered_item_encoded ) )
itemlist.append( Item(channel=item.channel, title="Enviar a jdownloader",action="send_to_jdownloader",url=refered_item_encoded ) )
itemlist.append( Item(channel=item.channel, title="Buscar trailer",action="search_trailer",url=refered_item_encoded ) )
if item.category=="wiideoteca":
itemlist.append( Item(channel=item.channel, title="Marcar como Ultimo Episodio Visto",action="UltimoVisto",url=item.extra,fulltitle=item.fulltitle ) )
# Si no puedes ver el vídeo te informa
else:
itemlist.append( Item(title="No puedes ver ese vídeo porque...") )
if item.server!="":
if "<br/>" in motivo:
itemlist.append( Item(title=motivo.split("<br/>")[0]) )
itemlist.append( Item(title=motivo.split("<br/>")[1]) )
itemlist.append( Item(title=item.url) )
else:
itemlist.append( Item(title=motivo) )
itemlist.append( Item(title=item.url) )
else:
itemlist.append( Item(title="El servidor donde está alojado no está") )
itemlist.append( Item(title="soportado en pelisalacarta todavía") )
itemlist.append( Item(title=item.url) )
return itemlist
示例5: play_video
def play_video(channel="",server="",url="",category="",title="", thumbnail="",plot="",extra="",desdefavoritos=False,desdedescargados=False,desderrordescargas=False,strmfile=False,Serie="",subtitle="", video_password="",fulltitle=""):
from servers import servertools
import sys
import xbmcgui,xbmc
try:
logger.info("[xbmctools.py] play_video(channel=%s, server=%s, url=%s, category=%s, title=%s, thumbnail=%s, plot=%s, desdefavoritos=%s, desdedescargados=%s, desderrordescargas=%s, strmfile=%s, Serie=%s, subtitle=%s" % (channel,server,url,category,title,thumbnail,plot,desdefavoritos,desdedescargados,desderrordescargas,strmfile,Serie,subtitle))
except:
pass
try:
server = server.lower()
except:
server = ""
if server=="":
server="directo"
try:
from core import descargas
download_enable=True
except:
download_enable=False
view = False
# Abre el diálogo de selección
opciones = []
default_action = config.get_setting("default_action")
logger.info("default_action="+default_action)
# Si no es el modo normal, no muestra el diálogo porque cuelga XBMC
muestra_dialogo = (config.get_setting("player_mode")=="0" and not strmfile)
# Extrae las URL de los vídeos, y si no puedes verlo te dice el motivo
video_urls,puedes,motivo = servertools.resolve_video_urls_for_playing(server,url,video_password,muestra_dialogo)
# Si puedes ver el vídeo, presenta las opciones
if puedes:
for video_url in video_urls:
opciones.append(config.get_localized_string(30151) + " " + video_url[0])
if server=="local":
opciones.append(config.get_localized_string(30164))
else:
if download_enable:
opcion = config.get_localized_string(30153)
opciones.append(opcion) # "Descargar"
if channel=="favoritos":
opciones.append(config.get_localized_string(30154)) # "Quitar de favoritos"
else:
opciones.append(config.get_localized_string(30155)) # "Añadir a favoritos"
if not strmfile:
opciones.append(config.get_localized_string(30161)) # "Añadir a Biblioteca"
if download_enable:
if channel!="descargas":
opciones.append(config.get_localized_string(30157)) # "Añadir a lista de descargas"
else:
if category=="errores":
opciones.append(config.get_localized_string(30159)) # "Borrar descarga definitivamente"
opciones.append(config.get_localized_string(30160)) # "Pasar de nuevo a lista de descargas"
else:
opciones.append(config.get_localized_string(30156)) # "Quitar de lista de descargas"
if config.get_setting("jdownloader_enabled")=="true":
opciones.append(config.get_localized_string(30158)) # "Enviar a JDownloader"
if config.get_setting("pyload_enabled")=="true":
opciones.append(config.get_localized_string(30158).replace("jDownloader","pyLoad")) # "Enviar a pyLoad"
if default_action=="3":
seleccion = len(opciones)-1
# Busqueda de trailers en youtube
if not channel in ["Trailer","ecarteleratrailers"]:
opciones.append(config.get_localized_string(30162)) # "Buscar Trailer"
# Si no puedes ver el vídeo te informa
else:
import xbmcgui
if server!="":
advertencia = xbmcgui.Dialog()
if "<br/>" in motivo:
resultado = advertencia.ok( "Non è possibile guardare il video perché...",motivo.split("<br/>")[0],motivo.split("<br/>")[1],url)
else:
resultado = advertencia.ok( "Non è possibile guardare il video perché...",motivo,url)
else:
resultado = advertencia.ok( "Non è possibile guardare il video perché...","Il server che lo ospita non è","ancora supportato da streamondemand",url)
if channel=="favoritos":
opciones.append(config.get_localized_string(30154)) # "Quitar de favoritos"
if channel=="descargas":
if category=="errores":
opciones.append(config.get_localized_string(30159)) # "Borrar descarga definitivamente"
else:
opciones.append(config.get_localized_string(30156)) # "Quitar de lista de descargas"
if len(opciones)==0:
#.........这里部分代码省略.........
示例6: run
#.........这里部分代码省略.........
else:
logger.info("pelisalacarta.platformcode.launcher No subtitle")
'''
from platformcode import xbmctools
if action=="play":
logger.info("pelisalacarta.platformcode.launcher play")
# Si el canal tiene una acción "play" tiene prioridad
if hasattr(channel, 'play'):
logger.info("pelisalacarta.platformcode.launcher executing channel 'play' method")
itemlist = channel.play(item)
if len(itemlist)>0:
item = itemlist[0]
xbmctools.play_video(channel=channel_name, server=item.server, url=item.url, category=item.category, title=item.title, thumbnail=item.thumbnail, plot=item.plot, extra=item.extra, subtitle=item.subtitle, video_password = item.password, fulltitle=item.fulltitle, Serie=item.show, hasContentDetails=item.hasContentDetails, contentTitle=item.contentTitle, contentThumbnail=item.contentThumbnail, contentPlot=item.contentPlot)
else:
import xbmcgui
ventana_error = xbmcgui.Dialog()
ok = ventana_error.ok ("plugin", "No hay nada para reproducir")
else:
logger.info("pelisalacarta.platformcode.launcher no channel 'play' method, executing core method")
xbmctools.play_video(channel=channel_name, server=item.server, url=item.url, category=item.category, title=item.title, thumbnail=item.thumbnail, plot=item.plot, extra=item.extra, subtitle=item.subtitle, video_password = item.password, fulltitle=item.fulltitle, Serie=item.show, hasContentDetails=item.hasContentDetails, contentTitle=item.contentTitle, contentThumbnail=item.contentThumbnail, contentPlot=item.contentPlot)
elif action=="strm_detail" or action=="play_from_library":
logger.info("pelisalacarta.platformcode.launcher play_from_library")
fulltitle = item.show + " " + item.title
elegido = Item(url="")
logger.info("item.server=#"+item.server+"#")
# Ejecuta find_videos, del canal o común
if item.server != "":
try:
from servers import servertools
videourls = servertools.resolve_video_urls_for_playing(server=item.server, url=item.url, video_password=item.video_password)
return videourls
except:
itemlist = []
pass
else:
try:
itemlist = channel.findvideos(item)
if config.get_setting('filter_servers') == 'true':
itemlist = filtered_servers(itemlist, server_white_list, server_black_list)
except:
from servers import servertools
itemlist = servertools.find_video_items(item)
if config.get_setting('filter_servers') == 'true':
itemlist = filtered_servers(itemlist, server_white_list, server_black_list)
if len(itemlist)>0:
#for item2 in itemlist:
# logger.info(item2.title+" "+item2.subtitle)
# El usuario elige el mirror
opciones = []
for item in itemlist:
opciones.append(item.title)
import xbmcgui
dia = xbmcgui.Dialog()
seleccion = dia.select(config.get_localized_string(30163), opciones)
elegido = itemlist[seleccion]
if seleccion==-1:
return
else:
示例7: download_all_episodes
#.........这里部分代码省略.........
new_mirror_itemlist_3.append(mirror_item)
else:
new_mirror_itemlist_4.append(mirror_item)
else:
if best_server in mirror_item.title.lower():
new_mirror_itemlist_5.append(mirror_item)
else:
new_mirror_itemlist_6.append(mirror_item)
mirrors_itemlist = new_mirror_itemlist_1 + new_mirror_itemlist_2 + new_mirror_itemlist_3 + new_mirror_itemlist_4 + new_mirror_itemlist_5 + new_mirror_itemlist_6
for mirror_item in mirrors_itemlist:
logger.info("[launcher.py] download_all_episodes, mirror="+mirror_item.title)
if "(Español)" in mirror_item.title:
idioma=" (Español)"
elif "(VOS)" in mirror_item.title:
idioma=" (VOS)"
elif "(VO)" in mirror_item.title:
idioma=" (VO)"
else:
idioma=""
logger.info("[launcher.py] download_all_episodes, downloading mirror")
if hasattr(channel, 'play'):
video_items = channel.play(mirror_item)
else:
video_items = [mirror_item]
if len(video_items)>0 and not downloadtools.is_in_download_history(video_items[0].url):
video_item = video_items[0]
# Comprueba que esté disponible
video_urls, puedes, motivo = servertools.resolve_video_urls_for_playing( video_item.server , video_item.url , video_password="" , muestra_dialogo=False)
# Lo añade a la lista de descargas
if puedes:
logger.info("[launcher.py] download_all_episodes, downloading mirror started...")
# El vídeo de más calidad es el primero
mediaurl = video_urls[0][1]
if video_item.server=="descargavideos":
from servers import descargavideos
filetitle = show_title+" "+episode_title+idioma+" ["+descargavideos.get_real_server_name(video_item.url)+"]"
elif video_item.server!="directo":
filetitle = show_title+" "+episode_title+idioma+" ["+video_item.server+"]"
else:
filetitle = show_title+" "+episode_title+idioma+" ["+item.channel+"]"
# Descarga el vídeo
show_folder = os.path.join( config.get_setting("downloadpath") , show_title)
if not os.path.exists(show_folder):
os.mkdir(show_folder)
# Genera el NFO
try:
nfofilepath = downloadtools.getfilefromtitle("sample.nfo",filetitle,folder=show_title)
outfile = open(nfofilepath,"w")
outfile.write("<movie>\n")
outfile.write("<title>("+filetitle+")</title>\n")
outfile.write("<originaltitle></originaltitle>\n")
outfile.write("<rating>0.000000</rating>\n")
outfile.write("<year>2009</year>\n")
outfile.write("<top250>0</top250>\n")
outfile.write("<votes>0</votes>\n")
示例8: playvideo
def playvideo(sender,itemtext):
Log("[__init__.py] playvideo")
item = Item()
item.deserialize(itemtext)
dir = MediaContainer(viewGroup="InfoList")
if item.action=="play":
try:
Log("[__init__.py] playvideo ejecutando metodo play del canal #"+item.channel+"#")
exec "from pelisalacarta.channels import "+item.channel
exec "itemlist = "+item.channel+"."+item.action+"(item)"
item = itemlist[0]
item.title = encodingsafe(item.title)
item.plot = encodingsafe(item.plot)
except:
Log("[__init__.py] playvideo error al ejecutar metodo play del canal")
import sys
for line in sys.exc_info():
Log( "%s" % line )
from core import config
Log("[__init__.py] playvideo url="+item.url+", server="+item.server)
video_urls = []
video_password=""
url = item.url
server = item.server
# Extrae las URL de los vídeos, y si no puedes verlo te dice el motivo
from servers import servertools
video_urls,puedes,motivo = servertools.resolve_video_urls_for_playing(server,url,video_password,False)
# Si puedes ver el vídeo, presenta las opciones
if puedes:
for video_url in video_urls:
if len(video_url)>2:
wait_time=video_url[2]
dir.Append(Function( VideoItem(playvideonormal, title="Ver el vídeo "+video_url[0]+" (Espera %d segundos)" % wait_time, subtitle="", summary="", thumb = ""), mediaurl=video_url[1] ))
else:
wait_time=0
dir.Append(Function( VideoItem(playvideonormal, title="Ver el vídeo "+video_url[0], subtitle="", summary="", thumb = ""), mediaurl=video_url[1] ))
# Si no puedes ver el vídeo te informa
else:
if server!="":
if "<br/>" in motivo:
dir.Append(Function( VideoItem(playvideonormal, title="No puedes ver este vídeo", subtitle="", summary="No puedes ver ese vídeo porque...\n"+motivo.split("<br/>")[0]+"\n"+motivo.split("<br/>")[1]+"\n"+url, thumb = ""), mediaurl="" ))
else:
dir.Append(Function( VideoItem(playvideonormal, title="No puedes ver este vídeo", subtitle="", summary="No puedes ver ese vídeo porque...\n"+motivo , thumb = ""), mediaurl="" ))
else:
dir.Append(Function( VideoItem(playvideonormal, title="No puedes ver este vídeo", subtitle="", summary="No puedes ver ese vídeo porque...\n"+"El servidor donde está alojado no está"+"\nsoportado en pelisalacarta todavía" , thumb = ""), mediaurl="" ))
'''
try:
Log("megavideo="+config.get_setting("megavideopremium"))
# Extrae todos los enlaces posibles
exec "from servers import "+server+" as server_connector"
if server=="megavideo" or server=="megaupload":
video_urls = server_connector.get_video_url( page_url=url , premium=(config.get_setting("megavideopremium")=="true") , user=config.get_setting("megavideouser") , password=config.get_setting("megavideopassword"), video_password=video_password )
elif server=="fileserve":
video_urls = server_connector.get_video_url( page_url=url , premium=(config.get_setting("fileservepremium")=="true") , user=config.get_setting("fileserveuser") , password=config.get_setting("fileservepassword"), video_password=video_password )
else:
video_urls = server_connector.get_video_url( page_url=url , video_password=video_password )
except:
import sys
for line in sys.exc_info():
Log( "%s" % line )
if config.get_setting("fileniumpremium")=="true" and item.server not in ["downupload","vk","fourshared","directo","adnstream","facebook","megalive","tutv","stagevu"]:
exec "from servers import filenium as gen_conector"
video_gen = gen_conector.get_video_url( page_url=url , premium=(config.get_setting("fileniumpremium")=="true") , user=config.get_setting("fileniumuser") , password=config.get_setting("fileniumpassword"), video_password=video_password )
Log("[xbmctools.py] filenium url="+video_gen)
video_urls.append( [ "[filenium]", video_gen ] )
'''
return dir
示例9: download_all_episodes
#.........这里部分代码省略.........
try:
episode_title = scrapertools.get_match(episode_item.title,"(\d+x\d+)")
except:
episode_title = episode_item.title
logger.info("[launcher.py] download_all_episodes, episode="+episode_title)
if first_episode!="" and episode_title==first_episode:
empezar = True
if not empezar:
continue
# Extrae los mirrors
mirrors_itemlist = [episode_item] #channel.findvideos(episode_item)
descargado = False
new_mirror_itemlist_1 = []
new_mirror_itemlist_2 = []
new_mirror_itemlist_3 = []
new_mirror_itemlist_4 = []
new_mirror_itemlist_5 = []
new_mirror_itemlist_6 = []
for mirror_item in mirrors_itemlist:
# Si está en español va al principio, si no va al final
if "(Español)" in mirror_item.title:
if best_server in mirror_item.title.lower():
new_mirror_itemlist_1.append(mirror_item)
else:
new_mirror_itemlist_2.append(mirror_item)
elif "(VOS)" in mirror_item.title:
if best_server in mirror_item.title.lower():
new_mirror_itemlist_3.append(mirror_item)
else:
new_mirror_itemlist_4.append(mirror_item)
else:
if best_server in mirror_item.title.lower():
new_mirror_itemlist_5.append(mirror_item)
else:
new_mirror_itemlist_6.append(mirror_item)
mirrors_itemlist = new_mirror_itemlist_1 + new_mirror_itemlist_2 + new_mirror_itemlist_3 + new_mirror_itemlist_4 + new_mirror_itemlist_5 + new_mirror_itemlist_6
for mirror_item in mirrors_itemlist:
logger.info("[launcher.py] download_all_episodes, mirror="+mirror_item.title)
if "(Español)" in mirror_item.title:
idioma=" (Español)"
elif "(VOS)" in mirror_item.title:
idioma=" (VOS)"
elif "(VO)" in mirror_item.title:
idioma=" (VO)"
else:
idioma=""
logger.info("[launcher.py] download_all_episodes, downloading mirror")
if hasattr(channel, 'play'):
video_items = channel.play(mirror_item)
else:
video_items = [mirror_item]
if len(video_items)>0:
video_item = video_items[0]
# Comprueba que esté disponible
video_urls, puedes, motivo = servertools.resolve_video_urls_for_playing( video_item.server , video_item.url , video_password="" , muestra_dialogo=False)
# Lo añade a la lista de descargas
if puedes:
logger.info("[launcher.py] download_all_episodes, downloading mirror started...")
# El vídeo de más calidad es el último
mediaurl = video_urls[len(video_urls)-1][1]
if video_item.server!="directo":
devuelve = downloadtools.downloadbest(video_urls,show_title+" "+episode_title+idioma+" ["+video_item.server+"]",continuar=False,silent=silent)
else:
devuelve = downloadtools.downloadbest(video_urls,show_title+" "+episode_title+idioma+" ["+item.channel+"]",continuar=False,silent=silent)
if devuelve==0:
logger.info("[launcher.py] download_all_episodes, download ok")
descargado = True
break
elif devuelve==-1:
try:
import xbmcgui
advertencia = xbmcgui.Dialog()
resultado = advertencia.ok("plugin" , "Descarga abortada")
except:
pass
return
else:
logger.info("[launcher.py] download_all_episodes, download error, try another mirror")
break
else:
logger.info("[launcher.py] download_all_episodes, downloading mirror not available... trying next")
if not descargado:
logger.info("[launcher.py] download_all_episodes, EPISODIO NO DESCARGADO "+episode_title)
示例10: play_video
def play_video(channel="",server="",url="",category="",title="", thumbnail="",plot="",extra="",desdefavoritos=False,desdedescargados=False,desderrordescargas=False,strmfile=False,Serie="",subtitle="", video_password="",fulltitle=""):
from servers import servertools
import sys
import xbmcgui
if url.startswith("http://"):
url = url.replace(" ","%20")
try:
logger.info("[xbmctools.py] play_video(channel=%s, server=%s, url=%s, category=%s, title=%s, thumbnail=%s, plot=%s, desdefavoritos=%s, desdedescargados=%s, desderrordescargas=%s, strmfile=%s, Serie=%s, subtitle=%s" % (channel,server,url,category,title,thumbnail,plot,desdefavoritos,desdedescargados,desderrordescargas,strmfile,Serie,subtitle))
except:
pass
try:
server = server.lower()
except:
server = ""
if server=="":
server="directo"
try:
from core import descargas
download_enable=True
except:
download_enable=False
view = False
# Abre el diálogo de selección
opciones = []
default_action = config.get_setting("default_action")
logger.info("default_action="+default_action)
# Si no es el modo normal, no muestra el diálogo porque cuelga XBMC
muestra_dialogo = (config.get_setting("player_mode")=="0" and not strmfile)
# Extrae las URL de los vídeos, y si no puedes verlo te dice el motivo
video_urls,puedes,motivo = servertools.resolve_video_urls_for_playing(server,url,video_password,muestra_dialogo)
# Si puedes ver el vídeo, presenta las opciones
if puedes:
for video_url in video_urls:
opciones.append(config.get_localized_string(30151) + " " + video_url[0])
if server=="local":
opciones.append(config.get_localized_string(30164))
else:
if download_enable:
opcion = config.get_localized_string(30153)
opciones.append(opcion) # "Descargar"
if channel=="favoritos":
opciones.append(config.get_localized_string(30154)) # "Quitar de favoritos"
else:
opciones.append(config.get_localized_string(30155)) # "Añadir a favoritos"
if not strmfile:
opciones.append(config.get_localized_string(30161)) # "Añadir a Biblioteca"
if download_enable:
if channel!="descargas":
opciones.append(config.get_localized_string(30157)) # "Añadir a lista de descargas"
else:
if category=="errores":
opciones.append(config.get_localized_string(30159)) # "Borrar descarga definitivamente"
opciones.append(config.get_localized_string(30160)) # "Pasar de nuevo a lista de descargas"
else:
opciones.append(config.get_localized_string(30156)) # "Quitar de lista de descargas"
opciones.append(config.get_localized_string(30158)) # "Enviar a JDownloader"
if default_action=="3":
seleccion = len(opciones)-1
# Busqueda de trailers en youtube
if not channel in ["Trailer","ecarteleratrailers"]:
opciones.append(config.get_localized_string(30162)) # "Buscar Trailer"
# Si no puedes ver el vídeo te informa
else:
import xbmcgui
if server!="":
advertencia = xbmcgui.Dialog()
if "<br/>" in motivo:
resultado = advertencia.ok( "No puedes ver ese vídeo porque...",motivo.split("<br/>")[0],motivo.split("<br/>")[1],url)
else:
resultado = advertencia.ok( "No puedes ver ese vídeo porque...",motivo,url)
else:
resultado = advertencia.ok( "No puedes ver ese vídeo porque...","El servidor donde está alojado no está","soportado en pelisalacarta todavía",url)
if channel=="favoritos":
opciones.append(config.get_localized_string(30154)) # "Quitar de favoritos"
if channel=="descargas":
if category=="errores":
opciones.append(config.get_localized_string(30159)) # "Borrar descarga definitivamente"
else:
opciones.append(config.get_localized_string(30156)) # "Quitar de lista de descargas"
if len(opciones)==0:
#.........这里部分代码省略.........
示例11: play_video
def play_video(item,desdefavoritos=False,desdedescargados=False,desderrordescargas=False,strmfile=False):
logger.info('tvalacarta.platformcode.xbmctools add_new_video item='+item.tostring())
if item.url.startswith("http://"):
item.url = item.url.replace(" ","%20")
try:
item.server = item.server.lower()
except:
item.server = ""
if item.server=="":
item.server="directo"
view = False
# Abre el diálogo de selección
opciones = []
default_action = config.get_setting("default_action")
logger.info("default_action="+default_action)
# Si no es el modo normal, no muestra el diálogo porque cuelga XBMC
muestra_dialogo = (config.get_setting("player_mode")=="0" and not strmfile)
# Extrae las URL de los vídeos, y si no puedes verlo te dice el motivo
video_urls,puedes,motivo = servertools.resolve_video_urls_for_playing(item.server , item.url , item.video_password , item.muestra_dialogo)
# Si puedes ver el vídeo, presenta las opciones
if puedes:
for video_url in video_urls:
opciones.append(config.get_localized_string(30151) + " " + video_url[0])
if item.server=="local":
opciones.append(config.get_localized_string(30164))
else:
opcion = config.get_localized_string(30153)
opciones.append(opcion) # "Descargar"
if item.channel=="favoritos":
opciones.append(config.get_localized_string(30154)) # "Quitar de favoritos"
else:
opciones.append(config.get_localized_string(30155)) # "Añadir a favoritos"
#if not strmfile:
# opciones.append(config.get_localized_string(30161)) # "Añadir a Biblioteca"
if item.channel!="descargas":
opciones.append(config.get_localized_string(30157)) # "Añadir a lista de descargas"
else:
if item.category=="errores":
opciones.append(config.get_localized_string(30159)) # "Borrar descarga definitivamente"
opciones.append(config.get_localized_string(30160)) # "Pasar de nuevo a lista de descargas"
else:
opciones.append(config.get_localized_string(30156)) # "Quitar de lista de descargas"
#opciones.append(config.get_localized_string(30158)) # "Enviar a JDownloader"
if default_action=="3":
seleccion = len(opciones)-1
# Si no puedes ver el vídeo te informa
else:
alert_no_puedes_ver_video(item.server,"",motivo)
if item.channel=="favoritos":
opciones.append(config.get_localized_string(30154)) # "Quitar de favoritos"
if item.channel=="descargas":
if item.category=="errores":
opciones.append(config.get_localized_string(30159)) # "Borrar descarga definitivamente"
else:
opciones.append(config.get_localized_string(30156)) # "Quitar de lista de descargas"
if len(opciones)==0:
return
# Si la accion por defecto es "Preguntar", pregunta
if default_action=="0":
import xbmcgui
dia = xbmcgui.Dialog()
seleccion = dia.select(config.get_localized_string(30163), opciones) # "Elige una opción"
#dia.close()
elif default_action=="1":
seleccion = len(video_urls)-1
elif default_action=="2":
seleccion = 0
elif default_action=="3":
seleccion = seleccion
else:
seleccion=0
logger.info("seleccion=%d" % seleccion)
logger.info("seleccion=%s" % opciones[seleccion])
# No ha elegido nada, lo más probable porque haya dado al ESC
if seleccion==-1:
#Para evitar el error "Uno o más elementos fallaron" al cancelar la selección desde fichero strm
listitem = xbmcgui.ListItem( item.title, iconImage="DefaultVideo.png", thumbnailImage=item.thumbnail)
import sys
xbmcplugin.setResolvedUrl(int(sys.argv[ 1 ]),False,listitem)
return
#.........这里部分代码省略.........
示例12: play_video
def play_video(item,desdefavoritos=False,desdedescargados=False,desderrordescargas=False,strmfile=False):
from servers import servertools
import sys
import xbmcgui,xbmc
logger.info("[xbmctools.py] play_video")
logger.info(item.tostring())
try:
item.server = item.server.lower()
except:
item.server = ""
if item.server=="":
item.server="directo"
try:
from core import descargas
download_enable=True
except:
download_enable=False
view = False
# Abre el diálogo de selección
opciones = []
default_action = config.get_setting("default_action")
logger.info("default_action="+default_action)
# Si no es el modo normal, no muestra el diálogo porque cuelga XBMC
muestra_dialogo = (config.get_setting("player_mode")=="0" and not strmfile)
# Extrae las URL de los vídeos, y si no puedes verlo te dice el motivo
video_urls,puedes,motivo = servertools.resolve_video_urls_for_playing(item.server,item.url,item.password,muestra_dialogo)
# Si puedes ver el vídeo, presenta las opciones
if puedes:
for video_url in video_urls:
opciones.append(config.get_localized_string(30151) + " " + video_url[0])
if item.server=="local":
opciones.append(config.get_localized_string(30164))
else:
if download_enable:
opcion = config.get_localized_string(30153)
opciones.append(opcion) # "Descargar"
if item.channel=="favoritos":
opciones.append(config.get_localized_string(30154)) # "Quitar de favoritos"
else:
opciones.append(config.get_localized_string(30155)) # "Añadir a favoritos"
if not strmfile:
opciones.append(config.get_localized_string(30161)) # "Añadir a Biblioteca"
if download_enable:
if item.channel!="descargas":
opciones.append(config.get_localized_string(30157)) # "Añadir a lista de descargas"
else:
if item.category=="errores":
opciones.append(config.get_localized_string(30159)) # "Borrar descarga definitivamente"
opciones.append(config.get_localized_string(30160)) # "Pasar de nuevo a lista de descargas"
else:
opciones.append(config.get_localized_string(30156)) # "Quitar de lista de descargas"
if config.get_setting("jdownloader_enabled")=="true":
opciones.append(config.get_localized_string(30158)) # "Enviar a JDownloader"
if config.get_setting("pyload_enabled")=="true":
opciones.append(config.get_localized_string(30158).replace("jDownloader","pyLoad")) # "Enviar a pyLoad"
if default_action=="3":
seleccion = len(opciones)-1
# Busqueda de trailers en youtube
if not item.channel in ["Trailer","ecarteleratrailers"]:
opciones.append(config.get_localized_string(30162)) # "Buscar Trailer"
# Si no puedes ver el vídeo te informa
else:
import xbmcgui
if item.server!="":
advertencia = xbmcgui.Dialog()
if "<br/>" in motivo:
resultado = advertencia.ok( "No puedes ver ese vídeo porque...",motivo.split("<br/>")[0],motivo.split("<br/>")[1],item.url)
else:
resultado = advertencia.ok( "No puedes ver ese vídeo porque...",motivo,item.url)
else:
resultado = advertencia.ok( "No puedes ver ese vídeo porque...","El servidor donde está alojado no está","soportado en pelisalacarta todavía",item.url)
if item.channel=="favoritos":
opciones.append(config.get_localized_string(30154)) # "Quitar de favoritos"
if item.channel=="descargas":
if item.category=="errores":
opciones.append(config.get_localized_string(30159)) # "Borrar descarga definitivamente"
else:
opciones.append(config.get_localized_string(30156)) # "Quitar de lista de descargas"
if len(opciones)==0:
return
#.........这里部分代码省略.........
示例13: download_all_episodes
#.........这里部分代码省略.........
mirrors_itemlist = (
new_mirror_itemlist_1
+ new_mirror_itemlist_2
+ new_mirror_itemlist_3
+ new_mirror_itemlist_4
+ new_mirror_itemlist_5
+ new_mirror_itemlist_6
)
for mirror_item in mirrors_itemlist:
logger.info(
"streamondemand-pureita.platformcode.launcher download_all_episodes, mirror=" + mirror_item.title
)
if "(Español)" in mirror_item.title:
idioma = "(Español)"
codigo_idioma = "es"
elif "(Latino)" in mirror_item.title:
idioma = "(Latino)"
codigo_idioma = "lat"
elif "(VOS)" in mirror_item.title:
idioma = "(VOS)"
codigo_idioma = "vos"
elif "(VO)" in mirror_item.title:
idioma = "(VO)"
codigo_idioma = "vo"
else:
idioma = "(Desconocido)"
codigo_idioma = "desconocido"
logger.info(
"streamondemand-pureita.platformcode.launcher filter_language=#"
+ filter_language
+ "#, codigo_idioma=#"
+ codigo_idioma
+ "#"
)
if filter_language == "" or (filter_language != "" and filter_language == codigo_idioma):
logger.info("streamondemand-pureita.platformcode.launcher download_all_episodes, downloading mirror")
else:
logger.info(
"streamondemand-pureita.platformcode.launcher language " + codigo_idioma + " filtered, skipping"
)
continue
if hasattr(channel, "play"):
video_items = channel.play(mirror_item)
else:
video_items = [mirror_item]
if len(video_items) > 0:
video_item = video_items[0]
# Comprueba que esté disponible
video_urls, puedes, motivo = servertools.resolve_video_urls_for_playing(
video_item.server, video_item.url, video_password="", muestra_dialogo=False
)
# Lo añade a la lista de descargas
if puedes:
logger.info(
"streamondemand-pureita.platformcode.launcher download_all_episodes, downloading mirror started..."
)
# El vídeo de más calidad es el último
mediaurl = video_urls[len(video_urls) - 1][1]
devuelve = downloadtools.downloadbest(
video_urls,
show_title + " " + episode_title + " " + idioma + " [" + video_item.server + "]",
continuar=False,
)
if devuelve == 0:
logger.info("streamondemand-pureita.platformcode.launcher download_all_episodes, download ok")
descargado = True
break
elif devuelve == -1:
try:
import xbmcgui
advertencia = xbmcgui.Dialog()
resultado = advertencia.ok("plugin", "Download interrotto")
except:
pass
return
else:
logger.info(
"streamondemand-pureita.platformcode.launcher download_all_episodes, download error, try another mirror"
)
continue
else:
logger.info(
"streamondemand-pureita.platformcode.launcher download_all_episodes, downloading mirror not available... trying next"
)
if not descargado:
logger.info(
"streamondemand-pureita.platformcode.launcher download_all_episodes, EPISODIO NO DESCARGADO "
+ episode_title
)
示例14: MenuVideo
def MenuVideo(item):
logger.info("[launcher.py] MenuVideo")
# Lista de Opciones Disponibles
OpcionesDisponibles =[]
OpcionesDisponibles.append(config.get_localized_string(30151)) #"Ver el vídeo"
OpcionesDisponibles.append(config.get_localized_string(30164)) #"Borrar este fichero"
OpcionesDisponibles.append(config.get_localized_string(30153)) #"Descargar"
OpcionesDisponibles.append(config.get_localized_string(30154)) #"Quitar de favoritos"
OpcionesDisponibles.append(config.get_localized_string(30155)) #"Añadir a favoritos"
OpcionesDisponibles.append(config.get_localized_string(30161)) #"Añadir a Biblioteca"
OpcionesDisponibles.append(config.get_localized_string(30157)) #"Añadir a lista de descargas"
OpcionesDisponibles.append(config.get_localized_string(30159)) #"Borrar descarga definitivamente"
OpcionesDisponibles.append(config.get_localized_string(30160)) #"Pasar de nuevo a lista de descargas"
OpcionesDisponibles.append(config.get_localized_string(30156)) #"Quitar de lista de descargas"
OpcionesDisponibles.append(config.get_localized_string(30158)) #"Enviar a JDownloader"
OpcionesDisponibles.append(config.get_localized_string(30158).replace("jDownloader","pyLoad")) # "Enviar a pyLoad"
OpcionesDisponibles.append(config.get_localized_string(30162)) #"Buscar Trailer"
itemlist = []
if item.server=="": item.server="directo"
default_action = config.get_setting("default_action")
# Extrae las URL de los vídeos, y si no puedes verlo te dice el motivo
from servers import servertools
video_urls,puedes,motivo = servertools.resolve_video_urls_for_playing(item.server,item.url,item.password, True)
# Si puedes ver el vídeo, presenta las opciones
if puedes:
for video_url in video_urls:
itemlist.append(Item(title=OpcionesDisponibles[0] + " " + video_url[0], url=video_url, action="play_video"))
if item.server=="local":
itemlist.append(Item(title=OpcionesDisponibles[1], url=video_urls, action="delete"))
if not item.server=="local":
itemlist.append(Item(title=OpcionesDisponibles[2], url=video_urls, action="download")) #"Descargar"
if item.channel=="favoritos":
itemlist.append(Item(title=OpcionesDisponibles[3], url=video_urls, action="remove_from_favorites")) #"Quitar de favoritos"
if not item.channel=="favoritos":
itemlist.append(Item(title=OpcionesDisponibles[4], url=video_urls, action="add_to_favorites")) #"Añadir a favoritos"
if not item.channel=="library":
itemlist.append(Item(title=OpcionesDisponibles[5], url=video_urls, action="add_to_library")) #"Añadir a Biblioteca"
if item.channel=="library":
itemlist.append(Item(title="Quitar de la Biblioteca", url=video_urls, action="remove_from_library")) #"Añadir a Biblioteca"
if not item.channel=="descargas":
itemlist.append(Item(title=OpcionesDisponibles[6], url=video_urls, action="add_to_downloads")) #"Añadir a lista de descargas"
if item.channel =="descargas" and item.category=="errores":
itemlist.append(Item(title=OpcionesDisponibles[7], url=video_urls, action="remove_from_error_downloads")) #"Borrar descarga definitivamente"
itemlist.append(Item(title=OpcionesDisponibles[8], url=video_urls, action="add_again_to_downloads")) #"Pasar de nuevo a lista de descargas"
if item.channel =="descargas" and item.category=="pendientes":
itemlist.append(Item(title=OpcionesDisponibles[9], url=video_urls, action="remove_from_downloads")) #"Quitar de lista de descargas"
if config.get_setting("jdownloader_enabled")=="true":
itemlist.append(Item(title=OpcionesDisponibles[10], url=video_urls, action="send_to_jdownloader")) #"Enviar a JDownloader"
if config.get_setting("pyload_enabled")=="true":
itemlist.append(Item(title=OpcionesDisponibles[11], url=video_urls, action="send_to_pyLoad")) #"Enviar a pyLoad"
if not item.channel in ["trailertools","ecarteleratrailers"]:
itemlist.append(Item(title=OpcionesDisponibles[12], url=video_urls, action="search_trailer")) # "Buscar Trailer"
else:
if item.server!="":
advertencia = xbmcgui.Dialog()
if "<br/>" in motivo:
resultado = advertencia.ok( "No puedes ver ese vídeo porque...",motivo.split("<br/>")[0],motivo.split("<br/>")[1],item.url)
else:
resultado = advertencia.ok( "No puedes ver ese vídeo porque...",motivo,item.url)
else:
resultado = advertencia.ok( "No puedes ver ese vídeo porque...","El servidor donde está alojado no está","soportado en pelisalacarta todavía",url)
if item.channel=="favoritos":
itemlist.append(Item(title=OpcionesDisponibles[3], url=video_urls, action="remove_from_favorites")) #"Quitar de favoritos"
if item.channel=="library":
itemlist.append(Item(title="Quitar de la Biblioteca", url=video_urls, action="remove_from_library")) #"Añadir a Biblioteca"
if item.channel =="descargas" and item.category=="errores":
itemlist.append(Item(title=OpcionesDisponibles[7], url=video_urls, action="remove_from_error_downloads")) #"Borrar descarga definitivamente"
if item.channel =="descargas" and not item.category=="errores":
itemlist.append(Item(title=OpcionesDisponibles[9], url=video_urls, action="remove_from_downloads")) #"Quitar de lista de descargas"
return itemlist
示例15: downloadall
def downloadall(item):
logger.info("[descargas.py] downloadall")
# Lee la lista de ficheros
if usingsamba:
ficheros = samba.get_files(DOWNLOAD_LIST_PATH)
else:
ficheros = os.listdir(DOWNLOAD_LIST_PATH)
logger.info("[descargas.py] numero de ficheros=%d" % len(ficheros))
# La ordena
ficheros.sort()
# Crea un listado con las entradas de favoritos
for fichero in ficheros:
# El primer video de la lista
logger.info("[descargas.py] fichero="+fichero)
if fichero!="error" and fichero!=".DS_Store":
# Descarga el v�deo
try:
# Lee el bookmark
canal,titulo,thumbnail,plot,server,url,fulltitle = favoritos.readbookmark(fichero,DOWNLOAD_LIST_PATH)
logger.info("[descargas.py] url="+url)
# Averigua la URL del v�deo
video_urls,puedes,motivo = servertools.resolve_video_urls_for_playing(server,url,"",False)
# La �ltima es la de mayor calidad, lo mejor para la descarga
mediaurl = video_urls[ len(video_urls)-1 ][1]
logger.info("[descargas.py] mediaurl="+mediaurl)
# Genera el NFO
nfofilepath = downloadtools.getfilefromtitle("sample.nfo",fulltitle)
outfile = open(nfofilepath,"w")
outfile.write("<movie>\n")
outfile.write("<title>("+fulltitle+")</title>\n")
outfile.write("<originaltitle></originaltitle>\n")
outfile.write("<rating>0.000000</rating>\n")
outfile.write("<year>2009</year>\n")
outfile.write("<top250>0</top250>\n")
outfile.write("<votes>0</votes>\n")
outfile.write("<outline></outline>\n")
outfile.write("<plot>"+plot+"</plot>\n")
outfile.write("<tagline></tagline>\n")
outfile.write("<runtime></runtime>\n")
outfile.write("<thumb></thumb>\n")
outfile.write("<mpaa>Not available</mpaa>\n")
outfile.write("<playcount>0</playcount>\n")
outfile.write("<watched>false</watched>\n")
outfile.write("<id>tt0432337</id>\n")
outfile.write("<filenameandpath></filenameandpath>\n")
outfile.write("<trailer></trailer>\n")
outfile.write("<genre></genre>\n")
outfile.write("<credits></credits>\n")
outfile.write("<director></director>\n")
outfile.write("<actor>\n")
outfile.write("<name></name>\n")
outfile.write("<role></role>\n")
outfile.write("</actor>\n")
outfile.write("</movie>")
outfile.flush()
outfile.close()
logger.info("[descargas.py] Creado fichero NFO")
# Descarga el thumbnail
if thumbnail != "":
logger.info("[descargas.py] thumbnail="+thumbnail)
thumbnailfile = downloadtools.getfilefromtitle(thumbnail,fulltitle)
thumbnailfile = thumbnailfile[:-4] + ".tbn"
logger.info("[descargas.py] thumbnailfile="+thumbnailfile)
try:
downloadtools.downloadfile(thumbnail,thumbnailfile)
logger.info("[descargas.py] Thumbnail descargado")
except:
logger.info("[descargas.py] error al descargar thumbnail")
for line in sys.exc_info():
logger.error( "%s" % line )
# Descarga el video
#dev = downloadtools.downloadtitle(mediaurl,fulltitle)
dev = downloadtools.downloadbest(video_urls,fulltitle)
if dev == -1:
# El usuario ha cancelado la descarga
logger.info("[descargas.py] Descarga cancelada")
return
elif dev == -2:
# Error en la descarga, lo mueve a ERROR y continua con el siguiente
logger.info("[descargas.py] ERROR EN DESCARGA DE "+fichero)
if not usingsamba:
origen = os.path.join( DOWNLOAD_LIST_PATH , fichero )
destino = os.path.join( ERROR_PATH , fichero )
import shutil
shutil.move( origen , destino )
else:
favoritos.savebookmark(canal,titulo, url, thumbnail, server, plot, fulltitle, ERROR_PATH)
favoritos.deletebookmark(fichero, DOWNLOAD_LIST_PATH)
else:
logger.info("[descargas.py] Video descargado")
#.........这里部分代码省略.........