Página 1 de 2

Integración con pyload

Publicado: 09 May 2011, 18:16
por kenpuu
Hola! Estupendo trabajo el que habéis realizado, antes de nada.

Quería lanzaros una idea/petición. ¿Se podría integrar el plugin con pyload al igual que con jdownloader? Por si no lo conocéis es un gestor de descargas muy parecido, escrito en python y aunque tiene menos funcionalidades, a mí me gusta más, sobre todo porque yo uso solo la web ui, y ésta es mucho mejor. A parte, consume mucho menos. Aconsejo que lo probéis.

Aquí podéis ver cómo es: http://pyload.org/

Bueno, gracias de antemano y estoy a la espera de vuestra respuesta.

Re: Integración con pyload

Publicado: 13 May 2011, 08:34
por jesus
Me gusta... Lo malo del jdownloader es que no me va bien en el servidor, y es muy pesado con todo ese Java por ahi :)

Re: Integración con pyload

Publicado: 14 May 2011, 18:07
por kenpuu
Yo lo uso por eso mismo, ya que siempre accedía al jdownloader desde la web ui, y la del pyload es bastante mejor. No sé python, pero si me indicas en qué parte del código se hacen las llamadas a jdownloader me puedo buscar la vida y modificarlo yo.

Re: Integración con pyload

Publicado: 15 May 2011, 18:48
por jesus
No hace falta. Si localizas cómo se envía un enlace al pyload será de mucha ayuda, luego añadirlo es sencillo.

Supongo que irá por http, habrá que hacer una invocación pasándole la URL como parámetro. En jdownloader es más o menos así:

http://x.x.x.x/action/add/links/grabber ... RRASDFASDF

Donde x.x.x.x es tu ordenador con jdownloader, y los símbolos con % son los caracteres de la URL codificados.

Puedes ver cómo funciona en xbmctools.py, línea 250 más o menos.

Re: Integración con pyload

Publicado: 16 May 2011, 21:06
por kenpuu
Bueno... Estoy aquí otra vez. He estado investigando un poco.

Parece ser que no se puede con una simple petición http. En principio creía que se hacía mediante xmlrpc(http://docs.pyload.org/module/pyLoadCor ... verMethods).

Bueno, un desarrollador de pyload me dijo que xmlrpc estaba obsoleto, que usara thrift(http://wiki.apache.org/thrift/). Me comentó que las funciones disponibles estaban en este archivo: module/remote/thriftbackend/pyload.thrift
En ubuntu estarían en /usr/share/pyload/module/remote/thriftbackend/pyload.thrift. De todas formas, debido tanto a mi bajo nivel de python como a mi desconocimiento de thrift estoy perdidísimo :P
Si alguien me guía un poco ayudo lo que pueda, pero no sé muy bien cómo empezar. Si hubiera sido con xmlrpc sí que lo habría hecho. Ya lo hice una vez con una web en drupal, y es muy sencillo.

Gracias por tu esfuerzo, Jesus! :)

Re: Integración con pyload

Publicado: 16 May 2011, 23:19
por jesus
joder, no tengo ni idea de lo que es thrift...

¿Hay algún ejemplo? Preferiblemente en python.

Re: Integración con pyload

Publicado: 18 May 2011, 10:58
por kenpuu
Bueno... Estoy probando a ver cómo va. Thrift es un framework(desarrollado por facebook y que después liberó el código) para hacer conexiones a un servidor con distintos lenguajes de programación(http://thrift.apache.org/about/). Genera automáticamente código para diversos lenguajes. En ubuntu se instala así:

Descargarlo de aquí: http://thrift.apache.org/download/
Paquetes necesarios: http://wiki.apache.org/thrift/GettingUbuntuPackages
(Para mi versión de ubuntu el comando ha sido: sudo apt-get install libboost-dev libboost-test1.42-dev libevent-dev automake libtool flex bison pkg-config g++ python-dev python-twisted <-- he incluído los paquetes de python)
./configure
make
sudo make install

Para generar el código: http://wiki.apache.org/thrift/ThriftUsagePython
en este caso: thrift -gen py /usr/share/pyload/module/remote/thriftbackend/pyload.thrift
Y genera unos cuantos archivos python y un ejecutable(Pyload-remote). Para que me funcionara he tenido que añadir esta línea después de impor sys en Pyload-remote: sys.path.append('/usr/lib/python2.7/site-packages') <-- Mi versión de python es la 2.7
Esto último se puede hacer añadiendo "export PYTHONPATH=/usr/lib/python2.6/site-packages" en el .bashrc (sin las comillas)
Después, en la línea 86 ó 85 hay que poner el host que sea si no es localhost!!
Aún así, cuando ejecuto algún comando, por ejemplo ./Pyload-remote getConfig se queda pillado!! También he probado con la línea de comandos de python, instrucción por instrucción. Se queda pillado cuando intenta hacer alguna petición al servidor.
Y hasta ahí he llegado. Creo que mi nivel no da para más... Sorry!!! :(
Aún así, me he registrado en el foro de soporte de pyload para preguntar, estoy a la espera del mail de confirmación.

Bueno, espero haber sido de algo de ayuda. De todas formas, supongo que no podrás integrarlo al final en pelisalacarta, porque instalar thrift es un poco coñazo, no?

Re: Integración con pyload

Publicado: 18 May 2011, 12:25
por kenpuu
Bien!! Lo he hecho funcionar. Me estaba conectando a otro pc y hay que instalar thrift también en el servidor. Haciendo esto hay que hacer login antes de llamar a cualquier otra función en el Pyload-remote. Con esta líne antes de todos los 'if cmd == ' valdría: client.login("usuario","contraseña",)

De todas formas la función addPackage, que es la que se usa para añadir los enlaces, me da error, y es porque no sé de qué tipo de dato deben ser los enlaces (si un array con strings, un string separado con saltos de línea, etc...) y no veo dónde aparece. Escribiendo en el terminal ./Pyload-remote sale una ayuda y en addPackage el tipo es LinkList links, pero hasta ahí no llego. Alguna sugerencia?

Re: Integración con pyload

Publicado: 20 May 2011, 00:37
por jesus
¿También hay que instalar el bicho en el servidor? Que poco les habría costado hacer un api sencillito por http, joder, que ganas de reinventar la rueda.

De todas formas entiendo que no habrá que tener nada instalado en el cliente, dado que en un Apple TV por ejemplo es difícil instalar nada. Si que podemos añadir las librerías Python de Thrift en pelisalacarta, en eso no habría problema, y luego contar cómo montar el servidor para los interesados.

Si no es una clase propia, y no es una simple lista, yo te sugiero que les preguntes. Por eso te pedía un ejemplo en Python, porque ese tipo de cosas cuando están mal documentadas son un infierno.

Desde luego, con la currada que te estás pegando en cuanto lo tengas lo añadimos a pelisalacarta ;)

Gracias.

Re: Integración con pyload

Publicado: 23 May 2011, 17:41
por kenpuu
Ya lo he echado a andar!! :)

Eso sí, en la línea de comandos de python, pero no veo por qué no va a funcionar modificando el xbmctools.py. Lo pruebo y aviso. El problema que tenía es que el parámetro dest es un enum que puede valer 0 ó 1, dependiendo si va a la cola de descarga o al recolector de enlaces. Y bueno Jesús, si comparamos mi esfuerzo con el tuyo, te tenemos que dar las gracias a ti ;)