def test_filenium(): url = "http://www.fileserve.com/file/asDbhwd" from servers import filenium video_url = filenium.get_video_url(url, premium=True, user="******", password="******") print video_url
def resolve_video_urls_for_playing(server, url, video_password="", muestra_dialogo=False): logger.info("[servertools.py] resolve_video_urls_for_playing, server=" + server + ", url=" + url) video_urls = [] torrent = False server = server.lower() # Si el vídeo es "directo", no hay que buscar más if server == "directo" or server == "local": logger.info("[servertools.py] server=directo, la url es la buena") try: import urlparse parsed_url = urlparse.urlparse(url) logger.info("parsed_url=" + str(parsed_url)) extension = parsed_url.path[-4:] except: extension = url[-4:] video_urls = [["%s [%s]" % (extension, server), url]] return video_urls, True, "" # Averigua las URL de los vídeos else: #if server=="torrent": # server="filenium" # torrent = True # Carga el conector try: # Muestra un diálogo de progreso if muestra_dialogo: import xbmcgui progreso = xbmcgui.DialogProgress() progreso.create("pelisalacarta", "Conectando con " + server) # Sustituye el código por otro "Plex compatible" #exec "from servers import "+server+" as server_connector" servers_module = __import__("servers." + server) server_connector = getattr(servers_module, server) logger.info("[servertools.py] servidor de " + server + " importado") if muestra_dialogo: progreso.update(20, "Conectando con " + server) # Si tiene una función para ver si el vídeo existe, lo comprueba ahora if hasattr(server_connector, 'test_video_exists'): logger.info("[servertools.py] invocando a " + server + ".test_video_exists") puedes, motivo = server_connector.test_video_exists( page_url=url) # Si la funcion dice que no existe, fin if not puedes: logger.info( "[servertools.py] test_video_exists dice que el video no existe" ) if muestra_dialogo: progreso.close() return video_urls, puedes, motivo else: logger.info( "[servertools.py] test_video_exists dice que el video SI existe" ) # Obtiene enlaces free if server in FREE_SERVERS: logger.info("[servertools.py] invocando a " + server + ".get_video_url") video_urls = server_connector.get_video_url( page_url=url, video_password=video_password) # Si no se encuentran vídeos en modo free, es porque el vídeo no existe if len(video_urls) == 0: if muestra_dialogo: progreso.close() return video_urls, False, "No se puede encontrar el vídeo en " + server # Obtiene enlaces premium si tienes cuenta en el server if server in PREMIUM_SERVERS and config.get_setting( server + "premium") == "true": video_urls = server_connector.get_video_url( page_url=url, premium=(config.get_setting(server + "premium") == "true"), user=config.get_setting(server + "user"), password=config.get_setting(server + "password"), video_password=video_password) # Si no se encuentran vídeos en modo premium directo, es porque el vídeo no existe if len(video_urls) == 0: if muestra_dialogo: progreso.close() return video_urls, False, "No se puede encontrar el vídeo en " + server # Obtiene enlaces filenium si tienes cuenta if server in FILENIUM_SERVERS and config.get_setting( "fileniumpremium") == "true": # Muestra un diálogo de progreso if muestra_dialogo: progreso.update(40, "Conectando con Filenium") 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) extension = gen_conector.get_file_extension(video_gen) logger.info("[xbmctools.py] filenium url=" + video_gen) video_urls.append( [extension + " [" + server + "][filenium]", video_gen]) # Obtiene enlaces realdebrid si tienes cuenta if server in REALDEBRID_SERVERS and config.get_setting( "realdebridpremium") == "true": # Muestra un diálogo de progreso if muestra_dialogo: progreso.update(60, "Conectando con Real-Debrid") from servers import realdebrid as gen_conector video_gen = gen_conector.get_video_url( page_url=url, premium=( config.get_setting("realdebridpremium") == "true"), user=config.get_setting("realdebriduser"), password=config.get_setting("realdebridpassword"), video_password=video_password) logger.info("[xbmctools.py] realdebrid url=" + video_gen) if not "REAL-DEBRID" in video_gen: video_urls.append([ "." + video_gen.rsplit('.', 1)[1] + " [realdebrid]", video_gen ]) else: if muestra_dialogo: progreso.close() # Si RealDebrid da error pero tienes un enlace válido, no te dice nada if len(video_urls) == 0: return video_urls, False, video_gen # Obtiene enlaces alldebrid si tienes cuenta if server in ALLDEBRID_SERVERS and config.get_setting( "alldebridpremium") == "true": # Muestra un diálogo de progreso if muestra_dialogo: progreso.update(80, "Conectando con All-Debrid") from servers import alldebrid as gen_conector video_gen = gen_conector.get_video_url( page_url=url, premium=(config.get_setting("alldebridpremium") == "true"), user=config.get_setting("alldebriduser"), password=config.get_setting("alldebridpassword"), video_password=video_password) logger.info("[xbmctools.py] alldebrid url=" + video_gen) if video_gen.startswith("http"): video_urls.append([ "." + video_gen.rsplit('.', 1)[1] + " [alldebrid]", video_gen ]) else: # Si Alldebrid da error pero tienes un enlace válido, no te dice nada if len(video_urls) == 0: return [], False, video_gen.strip() if muestra_dialogo: progreso.update(100, "Proceso finalizado") # Cierra el diálogo de progreso if muestra_dialogo: progreso.close() # Llegas hasta aquí y no tienes ningún enlace para ver, así que no vas a poder ver el vídeo if len(video_urls) == 0: # ¿Cual es el motivo? # 1) No existe -> Ya está controlado # 2) No tienes alguna de las cuentas premium compatibles # Lista de las cuentas que soportan este servidor listapremium = "" if server in ALLDEBRID_SERVERS: listapremium += "All-Debrid o " if server in FILENIUM_SERVERS: listapremium += "Filenium o " if server in REALDEBRID_SERVERS: listapremium += "Real-Debrid o " if server in PREMIUM_SERVERS: listapremium += server + " o " listapremium = listapremium[:-3] return video_urls, False, "Para ver un vídeo en " + server + " necesitas<br/>una cuenta en " + listapremium except: if muestra_dialogo: progreso.close() import traceback from pprint import pprint exc_type, exc_value, exc_tb = sys.exc_info() lines = traceback.format_exception(exc_type, exc_value, exc_tb) for line in lines: line_splits = line.split("\n") for line_split in line_splits: logger.error(line_split) return video_urls, False, "Se ha producido un error en<br/>el conector con " + server return video_urls, True, ""
def resolve_video_urls_for_playing(server,url,video_password="",muestra_dialogo=False): logger.info("[servertools.py] resolve_video_urls_for_playing, server="+server+", url="+url) video_urls = [] torrent = False server = server.lower() # Si el vídeo es "directo", no hay que buscar más if server=="directo" or server=="local": logger.info("[servertools.py] server=directo, la url es la buena") try: import urlparse parsed_url = urlparse.urlparse(url) logger.info("parsed_url="+str(parsed_url)) extension = parsed_url.path[-4:] except: extension = url[-4:] video_urls = [[ "%s [%s]" % (extension,server) , url ]] return video_urls,True,"" # Averigua las URL de los vídeos else: #if server=="torrent": # server="filenium" # torrent = True # Carga el conector try: # Muestra un diálogo de progreso if muestra_dialogo: from core import guitools progreso = guitools.Dialog_Progress("pelisalacarta" , "Conectando con "+server) # Sustituye el código por otro "Plex compatible" #exec "from servers import "+server+" as server_connector" servers_module = __import__("servers."+server) server_connector = getattr(servers_module,server) logger.info("[servertools.py] servidor de "+server+" importado") if muestra_dialogo: progreso.Actualizar( 20 , "Conectando con "+server) # Si tiene una función para ver si el vídeo existe, lo comprueba ahora if hasattr(server_connector, 'test_video_exists'): logger.info("[servertools.py] invocando a "+server+".test_video_exists") puedes,motivo = server_connector.test_video_exists( page_url=url ) # Si la funcion dice que no existe, fin if not puedes: logger.info("[servertools.py] test_video_exists dice que el video no existe") if muestra_dialogo: progreso.Cerrar() return video_urls,puedes,motivo else: logger.info("[servertools.py] test_video_exists dice que el video SI existe") # Obtiene enlaces free if server in FREE_SERVERS: logger.info("[servertools.py] invocando a "+server+".get_video_url") video_urls = server_connector.get_video_url( page_url=url , video_password=video_password ) # Si no se encuentran vídeos en modo free, es porque el vídeo no existe if len(video_urls)==0: if muestra_dialogo: progreso.Cerrar() return video_urls,False,"No se puede encontrar el vídeo en "+server # Obtiene enlaces premium si tienes cuenta en el server if server in PREMIUM_SERVERS and config.get_setting(server+"premium")=="true": video_urls = server_connector.get_video_url( page_url=url , premium=(config.get_setting(server+"premium")=="true") , user=config.get_setting(server+"user") , password=config.get_setting(server+"password"), video_password=video_password ) # Si no se encuentran vídeos en modo premium directo, es porque el vídeo no existe if len(video_urls)==0: if muestra_dialogo: progreso.Cerrar() return video_urls,False,"No se puede encontrar el vídeo en "+server # Obtiene enlaces filenium si tienes cuenta if server in FILENIUM_SERVERS and config.get_setting("fileniumpremium")=="true": # Muestra un diálogo de progreso if muestra_dialogo: progreso.Actualizar( 40 , "Conectando con Filenium") 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 ) extension = gen_conector.get_file_extension(video_gen) logger.info("[xbmctools.py] filenium url="+video_gen) video_urls.append( [ extension+" ["+server+"][filenium]", video_gen ] ) # Obtiene enlaces realdebrid si tienes cuenta if server in REALDEBRID_SERVERS and config.get_setting("realdebridpremium")=="true": # Muestra un diálogo de progreso if muestra_dialogo: progreso.Actualizar( 60 , "Conectando con Real-Debrid") from servers import realdebrid as gen_conector video_gen = gen_conector.get_video_url( page_url=url , premium=(config.get_setting("realdebridpremium")=="true") , user=config.get_setting("realdebriduser") , password=config.get_setting("realdebridpassword"), video_password=video_password ) logger.info("[xbmctools.py] realdebrid url="+video_gen) if not "REAL-DEBRID" in video_gen: video_urls.append( [ "."+video_gen.rsplit('.',1)[1]+" [realdebrid]", video_gen ] ) else: if muestra_dialogo: progreso.Cerrar() # Si RealDebrid da error pero tienes un enlace válido, no te dice nada if len(video_urls)==0: return video_urls,False,video_gen # Obtiene enlaces alldebrid si tienes cuenta if server in ALLDEBRID_SERVERS and config.get_setting("alldebridpremium")=="true": # Muestra un diálogo de progreso if muestra_dialogo: progreso.Actualizar( 80 , "Conectando con All-Debrid") from servers import alldebrid as gen_conector video_gen = gen_conector.get_video_url( page_url=url , premium=(config.get_setting("alldebridpremium")=="true") , user=config.get_setting("alldebriduser") , password=config.get_setting("alldebridpassword"), video_password=video_password ) logger.info("[xbmctools.py] alldebrid url="+video_gen) if video_gen.startswith("http"): video_urls.append( [ "."+video_gen.rsplit('.',1)[1]+" [alldebrid]", video_gen ] ) else: # Si Alldebrid da error pero tienes un enlace válido, no te dice nada if len(video_urls)==0: return [],False,video_gen.strip() if muestra_dialogo: progreso.Actualizar( 100 , "Proceso finalizado") # Cierra el diálogo de progreso if muestra_dialogo: progreso.Cerrar() # Llegas hasta aquí y no tienes ningún enlace para ver, así que no vas a poder ver el vídeo if len(video_urls)==0: # ¿Cual es el motivo? # 1) No existe -> Ya está controlado # 2) No tienes alguna de las cuentas premium compatibles # Lista de las cuentas que soportan este servidor listapremium = "" if server in ALLDEBRID_SERVERS: listapremium+="All-Debrid o " if server in FILENIUM_SERVERS: listapremium+="Filenium o " if server in REALDEBRID_SERVERS: listapremium+="Real-Debrid o " if server in PREMIUM_SERVERS: listapremium+=server+" o " listapremium = listapremium[:-3] return video_urls,False,"Para ver un vídeo en "+server+" necesitas<br/>una cuenta en "+listapremium except: if muestra_dialogo: progreso.Cerrar() import traceback from pprint import pprint exc_type, exc_value, exc_tb = sys.exc_info() lines = traceback.format_exception(exc_type, exc_value, exc_tb) for line in lines: line_splits = line.split("\n") for line_split in line_splits: logger.error(line_split) return video_urls,False,"Se ha producido un error en<br/>el conector con "+server return video_urls,True,""
def test_filenium(): url = "http://www.fileserve.com/file/asDbhwd" from servers import filenium video_url = filenium.get_video_url(url,premium=True,user="******",password="******") print video_url