Beispiel #1
0
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
Beispiel #2
0
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, ""
Beispiel #3
0
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