Página 2 de 2

Re: Integración con pyload

Publicado: 23 May 2011, 18:33
por kenpuu
Bueno, me peta... Es en la línea donde pone "import Pyload"(he ido haciendo logs y falla en esa línea). He copiado los archivos del cliente de pyload al directorio core. Esta es la modificación que he hecho al código, en la parte donde llama a "Enviar a JDownloader". También he probado con un try - except, pero como no sé python creo que lo he hecho mal.

Código: Seleccionar todo

if opciones[seleccion]==config.get_localized_string(30158): # "Enviar a JDownloader"
        if server=="Megaupload":
            d = "http://www.megaupload.com/?d=" + url
        else:
            d = "http://www.megavideo.com/?v=" + url
        
        
        sys.path.append('/usr/lib/python2.7/site-packages')
        from urlparse import urlparse
        from thrift.transport import TTransport
        from thrift.transport import TSocket
        from thrift.transport import THttpClient
        from thrift.protocol import TBinaryProtocol

        import Pyload
        from ttypes import *
        
        #from core import scrapertools
        #data = scrapertools.cachePage(config.get_setting("jdownloader")+"/action/add/links/grabber0/start1/"+urllib.urlencode(d)+ " " +thumbnail)
        host = '192.168.1.5'
        port = 7230
        uri = ''
        socket = TSocket.TSocket(host, port)
        transport = TTransport.TBufferedTransport(socket)
        protocol = TBinaryProtocol.TBinaryProtocol(transport)
        client = Pyload.Client(protocol)
        transport.open()
        client.login("user","pass",)
        client.addPackage("Prueba thrift", d,0)
        return
He probado a poner "from core import Pyload" y "from Pyload import *" pero nada. Sabes qué puede ser?

Re: Integración con pyload

Publicado: 28 May 2011, 23:24
por jesus
Para que funcione "import Pyload" tienes que tener un fichero Pyload.py en el mismo directorio que "xbmctools.py".

Lo de sys.path.append() no vale, eso complicará mucho la instalación. Tienes que copiar todos los .py completos que necesites dentro del directorio "lib" de pelisalacarta.

De todas formas el thrift ese no puede ser tan complicado. Enviará algo por GET o POST, si puedes capturar los mensajes seguro que podemos clonarlo sin usar librerías. He ojeado un rato en su web pero no he visto nada...

Re: Integración con pyload

Publicado: 03 Jun 2011, 10:59
por jossma
Hola kenpuu, yo tengo pyload montado en un etrayz y no se si has mirado la posibilidad de hacer un fichero contenedor en txt como el que tienen pyload y lanzarlo automaticamente desde el mismo. Creo que puedes hacer para que el pyload leea ese archivo continuamente y agrege las descargas en funcion del archivo. Espero que podais encontrar una solución un saludo y muchas gracias

Re: Integración con pyload

Publicado: 08 Jun 2011, 19:21
por kenpuu
Hola Jesús. Perdona que no haya respondido desde hace tiempo. Estoy con exámenes y trabajos y no tengo tiempo para nada....:)

Tenías razón, se puede conectar con mensajes POST...

Aquí hay una extensión de chrome que lo hace. Aunque yo he hecho login, no consigo mandar paquetes, porque no está bien hecha. https://bitbucket.org/paul_king/pyloadchrome

Te pongo las funciones de login y de addPackage en javascript(con jquery). Si me dices como se hacen envíos post en python modifico yo el xbmctools y te cuento.

Código: Seleccionar todo

function addPackage(request) {
    $.ajax({ "url": window.localStorage["pyloadUrl"]+"/json/add_package",
             "type": "POST",
             "data": (request),
             "datatype": "json",
             "error" : function () { disconnected(); alert("failed submitting package to pyLoad, disconnecting.");}
    });
}

function connectPyLoad(callback) {
    $.ajax({ "url": window.localStorage["pyloadUrl"]+"/login",
             "type": "POST",
             "data": ({"username": window.localStorage["pyloadUser"],
                       "password": window.localStorage["pyloadPass"]}),
             "datatype": "html",
             "success" : function (msg) { if (msg.indexOf('<input type="submit" value="Login"') >=0) 
                                          { disconnected();
                                            if (callback) callback("bad"); 
                                          } else {
                                            connected();
                                            if (callback) callback("ok");
                                          }},
             "error" : function () { if (callback) callback("fail");}
    });
}
Los envíos parecen bastante sencillos. Y otra vez, siento no haber contestado. Un saludo!

Re: Integración con pyload

Publicado: 08 Jun 2011, 19:23
por kenpuu
Vale, me respondo a mí mismo. Hay ejemplos aquí: http://docs.python.org/library/httplib.html

Código: Seleccionar todo

>>> import httplib, urllib
>>> params = urllib.urlencode({'spam': 1, 'eggs': 2, 'bacon': 0})
>>> headers = {"Content-type": "application/x-www-form-urlencoded",
...            "Accept": "text/plain"}
>>> conn = httplib.HTTPConnection("musi-cal.mojam.com:80")
>>> conn.request("POST", "/cgi-bin/query", params, headers)
>>> response = conn.getresponse()
>>> print response.status, response.reason
200 OK
>>> data = response.read()
>>> conn.close()
Voy a probar y te aviso