Página 1 de 3

Integrando la biblioteca...

Publicado: 28 Ene 2010, 15:12
por jurrabi
Hola Jesus.

Antes de nada, y aunque todo el mundo lo dice, no creo que esté de más reconocerte el F A N T Á S T I C O trabajo que has hecho (y sigues haciendo) con pelisalacarta.

Soy usuario “silencioso” desde hace varios meses. De tu plugin, porque xbmc no ha abandonado mi salón en los últimos 5 años.

Te escribo porque estoy trabajando en la forma de incorporar películas, episodios, e incluso series enteras a las librerías de XBMC.
¿Por qué? Bueno, a parte de la evidente sensación de integración con el entorno general del programa, usar las librerías de Películas o Series permite acceder a mayor variedad de fuentes de información (scrappers) y mejores portadas, imágenes de episodio, etc.

Este proyecto ha sido el motivo final por el que me he animado a aprender phython y colaborar (más profundamente) en mi proyecto de tiempo libre favorito.

Mi primer acercamiento ha sido tratando de modificar lo mínimo el plugin. Mi idea es obtener la funcionalidad básica y luego integrarla más profundamente.

Te explico. La primera aproximación que intenté fue el uso de ficheros strm. Como seguramente sabrás, estos ficheros son usados por XBMC cuando queremos acceder a un contenido de streaming online.
Consiste en un simple fichero txt en el cual se introduce la URL (o URLs si queremos una lista) del video al que queremos acceder. Se renombra el archivo cambiando la extensión a strm y se lanza desde el visor de videos de XBMC.

XBMC lee el contenido y muestra la fuente indicada.

Este mismo principio se puede utilizar sin limitarse a fuentes streaming (hhtp o mms), sino que puede ser cualquier tipo de URL manejada por XBMC: smb, upnp, zeroconfig…. y, por supuesto, plugin!!!

Con esta idea cogí un acceso a favoritos creado desde el plugin a un video de seriesalacarta.

Cogí ese favorito, y cologué la URL que contenía (con todos los parámentros del plugin) en un fichero strm…

y… ¡Casi funcionó!.

El video se mostraba. Lo único era que XBMC interpretaba que el fichero no había producido ninguna fuente válida y mostraba una ventana de error.

Con un poco de ayuda de los foros, conseguí arreglar el problema. Parece ser que cuando se trabaja con ficheros dtrm no hay que iniciar manualmente el video con xbmcplayer.play. Basta con añadir su url con xbmcplugin.setResolvedUrl y él se encarga de visualizarlo.

Realicé unas modificaciones mínimas en seriesyonkis.py y xbmctools.py… e voilá!

Ya puedo ver videos de pelisalacarta desde un fichero strm.

Además lo bueno es que el fichero lanza la ejecución del plugin, por lo que se comprueban los datos de usuario premium y hasta ofrece a seleccionar la calidad…

El siguiente paso es Añadir una opción al menú de selección de caldiad para guardar los ficheros strm directamente.

Esto necesitará un par de opciones de configuración con los directorios de películas y de series…

El paso final será buscar la forma de añadir series enteras…

No contemplo ni añadir Todas las pelis ni todas las series, para no saturar los servidores de scrapping (filmaffinity y thetvdb.com en mi caso) ya que son proyectos gratuitos y no veo sentido a tener leidas series o pelis que nunca voy a ver…

Lógicamente, todo este trabajo (que no es tanto), cuando tome mejor forma ya que ahora mismo es una chapuza, está a tu disposición si te parece interesante para el público en general.

Un saludo,

jur.

Re: Integrando la biblioteca...

Publicado: 28 Ene 2010, 20:13
por jesus
Desde luego es interesante :)

Yo había pensado en lo contrario: usar los scrapers de XBMC desde el plugin para obtener info, carátulas y demás.

Lo que indicas no es mala idea, aunque para tener tu colección es mejor que te descargues la peli directamente. Si no, cuando lleguen las autoridades y borren las películas de Megavídeo te llevarás un disgusto :)

Ya me contarás tus avances...

Re: Integrando la biblioteca...

Publicado: 29 Ene 2010, 23:31
por jurrabi
Igual que cuando se estropean los discos... ¿no? ;)

Tienes razón en que los enlaces en "la nube" son efímeros y condenados a la horca. Pero, tal y como yo lo veo, para las cosas que se quiere coleccionar de verdad sí que hay que descargar (en HD, por supuesto) pero para cosas que simplemente "se quiere ver" (que es precisamente para lo que yo uso pelisalacarta) el tema de añadir "enlaces virtuales" a la biblioteca puede quedar muy cuco (sueno muy gay?).

La idea que tú tienes de usar scrappers para llevar la info al plugin me parece cazar moscas a cañonazos. Es como crear otra biblioteca paralela y específica para 1 plugin (aunque sea uno tan completo como este). A mí me parece que con el grado de calidad que tiene hoy en día la biblioteca de XBMC, habiendo scrappers de calidad y en castellano, y pensando en que es un elemento vivo que seguirá evolucionando... el mejor enfoque sería llevar los vídeos del plugin a la biblioteca, y no a la inversa.

En los scripts del plugin veo mucho (mucho) trabajo encaminado a manejar sinopsis, carátulas... Hasta he visto tu modificación al skin Rapier para mostrar la información almacenada. Fíjate en que parte de ese trabajo, aparte de ralentizar el uso del plugin, obliga a un mantenimiento adicional cuando cambian las páginas fuente. Es decir, no sólo hará falta actualizar cada canal cuando se altere como se almacenan los enlaces a los vídeos, sino también cuando cambie la estructura de la información adicional...
Además, y en un ámbito ya puramente de programación, me parece que estos datos "mezclan" el alcance de los módulos y deja menos transparente los límites de cada uno. Así, por ejemplo, podemos ver como rutinas de xbmctools (que parecería más encargado de labores técnicas) se vea obligado a manejar thumnails y plots... No sé, parece que todo se complica algo.

Aunque respeto tu linea de trabajo y nunca pretendería decirte como hacer las cosas, a mí me parece que estáis duplicando esfuerzos con los desarrolladores de scrappers y mantenedores de la biblioteca. En mi opinión los plugins deberían centrarse en obtener las fuentes de vídeo y dejar los metadatos a las partes correspondientes de XBMC.

Aunque claro, también entiendo que el plugin es mucho más amigable con carátulas y sinopsis. Y veo tu punto de querer scrapear con los medios de xbmc... La verdad es que es un tema peliagudo.

Puesto que hago una defensa bastante firme del uso de la biblioteca y sé que muchos usuarios de XBMC siguen anclados o simplemente prefieren el sistema de archivos tradicional, déjame recomendarles que le den una vuelta (o se la vuelvan a dar si lo probaron hace tiempo) a la biblioteca de XBMC. Si a alguien le parece interesante (porque no sabe bien como va) puedo hacer un pequeño tutorial de cómo sacarle buen partido. Como comienzo dejadme recomendar los 2 scrappers por defecto que yo uso: filmafinity para pelis y thetvdb para series. También, me gustaría (siempre si hay interesados) que abramos otro hilo donde comentar los pros y contras tal y como los percibe cada uno. En mi experiencia con los amigos a los que introduzco en el mundo de los Media Centers en general (y de XBMC en particular), con 5 minutos de ver como usar bien la biblioteca, se cambian a ella y no vuelven casi para nada a las carpetas...

Pero dejemos eso aquí, que este es el subforo de mejoras.

Te actualizo en los avances y problemas que voy encontrado.

La filosofía que estoy empleando (como te contaba en el anterior mensaje) es tratar de añadir funcionalidad sin que nada de lo que hay deje de funcionar y tratando de modificar el número mínimo de módulos y subrutinas dentro de éstos.
Esto, como podrás imaginar, me da muchos quebraderos de cabeza. Al principio para conocer como está montado todo y luego para buscar el mejor sitio donde tocar lo menos posible.

El objetivo último es que no haya que tocar ficheros del directorio canales. Así el trabajo realizado servirá para lo que los colaboradores estén haciendo nuevos canales actualmente.

Como te conté ayer, la idea "temporal" de la que partí es el uso de ficheros strm. Inicialmente lo hice porque era algo que conocía y pensaba que me podía servir para una primera aproximación. La idea sería sustituir eso luego con llamadas directas desde el plugin a módulos de la librería.

Pero según voy trabajando el tema el hacerlo con ficheros strm me gusta cada vez más. Esta aproximación me permite, por ejemplo que si añadí una película a mi biblioteca y quiero borrarla pues desde la propia biblioteca puedo borrar la entrada y el archivo...

El caso es que de momento seguiré con esta aproximación, aunque aceptando todas las ideas, por supuesto.

Ayer como te decía conseguí que un enlace tipo plugin:// sacado de añadir a favoritos (favoritos del XBMC, no de tu plugin) y puesto en un fichero strm funcionara. Tuve que hacer cambios a la rutina playvideoEx para conseguir que funcionara.
Un par de cambios (que no afectan a la funcionalidad existente, creo) fue añadir el parametro path a xbmcgui.ListItem y llamar a xbmcplugin.setResolvedUrl.
El otro cambio era ligeramente más profundo porque necesitaba un parámetro de entrada adicional para saber si la llamada viene de un fichero strm. Eso es necesario porque cuando la llamada al plugin viene mediante fichero strm no es necesario llamar a xbmcPlayer.play para iniciar el video. Lo inicia XBMC sólo.

Como no quería impactar en el resto del plugin (y añadir un parámetro puede afectar) he hecho que cualquier parámetro añadido tenga valores por defecto adecuados para que las llamadas del resto de canales sigan funcionando como lo hacían.


Hoy, con los ficheros strm manuales funcionando, me centré en añadir una opción al menú de play para crear archivos strm. Aunque he tenido problemillas y he tenido que cambiar el enfoque un par de veces, te resumo (si soy capaz de resumir ;)) los logros y como afectan al plugin en general.

Modificando playvideoEx he añadido la opción que llama para crear el archivo strm (Añadir a biblioteca).
He creado una librería nueva ("library.py") que se encarga de crear el archivo strm y (en el futuro) de todo lo relacionado con ella. Éste es, de momento, el único archivo nuevo.

Para que el plugin pudiera diferenciar cuando la ejecución venía de un fichero strm o una entrada normal al plugin, decidí crear una acción nueva: "strm".
De esta forma puedo interceptar en pelisalacarta.py y no es necesario modificar las acciones detail o play de los diversos canales (como te digo hice otras pruebas, pero esta resultó la menos intrusiva).

Por lo tanto el segundo fichero modificado es pelisalacarta.py donde añado un elif para la acción strm y llamo a la función adecuada para ejecutarlo. (actualmente la función está en uno de los canales, pero le buscaré mejor emplazamiento)

Ahora estoy en el proceso de ver si todos los canales funcionan. Ya he encontrado que alguno no iba bien (como seriesyonki) y he encontrado soluciones, temporales porque han implicado añadir la acción strm o modificar la detail en el fichero del canal (canal.py) y añadir un segundo parámetro a la función playvideoEx (para traer la url original de seriesyonkis que se perdía en el camino y es necesaria para crear el enlace plugin) Quiero mejorarlo y no tocar si es posible los canales.

El resumen de funcionalidad es:
Hay una nueva opción en el menú de play (donde se selecciona calidad, descarga, favorito, etc), que crea un fichero strm para ese vídeo en una carpeta (actualmente $pluginhome/library, pero habría que parametrizarlo en un futuro). Quizá sea otra opción la carpeta descargas. La razón (temporal) por la que no elegí esa fue que los enlaces strm no tienen sentido sin el plugin (no como las descargas que si se pueden ver sin el plugin) por lo que si la carpeta library está en el plugin, y borramos éste, pues borramos automáticamente todos los strm... Abierto a debate, por supuesto.

Una vez que tienes ficheros strm puedes ir a esa carpeta desde mis videos y fijar el contenido de la carpeta (a películas, por ejemplo). Cuando tengamos esto actualizamos la biblioteca (manual o automáticamente) y voila! Nuestra pelis en la biblioteca!!


Esto ya funciona. Te lo mando cuando quieras para que lo pruebes (aunque será necesario limpieza y documentación de código). Sólo dime dónde.

Próximos pasos...

1. Seguir probando canales y certificando que funcionen.
2. Distinguir dentro de la librería entre cine y series. Mi idea es añadir un nivel de subcarpetas desde el directorio donde almacenemos los strm.
3. Para las series hay que añadir un directorio adicional por serie. Mi primera idea es pedirlo al usuario (como el nombre del fichero) pero quiero dar propuestas automáticas. Ten presente que lo único importante al crear estos enlaces es que los scrappers sean capaces de encontrar la información. Por eso el objetivo final es automatizar el nombrado de series y capítulos de forma que los encuentren los scrappers y con intervención mínima.
4. Finalmente quiero proporcionar una opción para añadir todos los capítulos de una serie del tirón. Esto tendrá complicación adicional porque no hay ya un menú que salga cuando pulsas una serie (no como al pulsar una peli o un episodio, que si sale el menú de descargas). Entonces mis opciones son:
a) o bien añadir un paso cuando se selecciona una serie que de las opciones de "ver ahora" y "añadir toda la serie a la biblioteca" que añade un paso de lentitud y no me gusta,
b) o bien añadir una opción (como item del directorio) al entrar en la serie. Esta segunda me parece más práctica, aunque no es muy estética.
c) La tercera opción sería añadir una opción al menú contextual de la serie (el que aparece pulsando C). Esto ni siquiera sé si se puede hacer. A mí es la opción que más me gusta, pero supongo que a mucha gente no le molará (mucha gente ni tiene botón en el mando para esa opción).
También se puede hacer una combinación de b y c...
Este punto 4 debo decir que es la razón por la que empecé este trabajo. Las pelis tal y como está ya van a tirar. Para las series (por meter todos de un tirón) hace falta bastante más curro (y seguramente más modificaciones "profundas" al plugin). A mí me parece muy práctico añadir una serie entera a mi Librería y luego verla desde ahí. Tú, y los usuarios, tendréis que evaluar si las modificaciones os compensan el cambio que podrían requerir... pero cuando lleguemos ya veremos.
5. Buscar la forma de que no sea necesario añadir manualmente a la biblioteca los directorios de archivos strm (fijar el contenido). Este paso, puesto que sólo se hace una vez, lo veo un poco superfluo. Pero no sé, a lo mejor hay gente que lo agradece.

Con esto por el momento creo que tendríamos una funcionalidad bastante chula y bien integrada con la librería...

Dime cómo quieres que sigamos. Yo el trabajo lo voy a hacer, aunque fuera sólo para mi. Me compensa ;)

Un saludo,

Jur.

PD. Perdona el megarollazo, pero también esto me sirve a mí de log de lo que he tocado.

Re: Integrando la biblioteca...

Publicado: 30 Ene 2010, 09:19
por jesus
Desde luego es un post extenso :)

La opción de generar ficheros STRM no está mal, seguro que es interesante para otros usuarios. Lo mejor es que subas a este mismo hilo la versión de pelisalacarta modificada para poder seguir los cambios que indicas y aconsejarte. Me gusta la idea de añadir todos los capítulos de una serie del tirón, si puedes resolver el problema sería genial.

En cuanto al tema de los scrapers no te doy la razón :)

Yo lo que he pensado es que cuando tengas un vídeo delante, puedas ir a IMDB o similares y bajarte toda la información. Eso me parece muy interesante, incluso sería chulo que XBMC lo hiciera para sus vídeos sin necesidad de usar la biblioteca. No voy a añadir todos los vídeos a la biblioteca.

Y en cuanto a si el plugin debería manejar el argumento o no, ten en cuenta que muchas de las series / pelis que hay en "la nube" no están en esos repositorios de internet. Pongo por ejemplo los animes, muchos dibujos animados, las pelis raras, ... por no hablar de los problemas del idioma. Mi biblioteca de XBMC, aparte de algo abandonada, siempre se deja unos cuantos enlaces sin resolver.

Yo soy de los que no usa la biblioteca, tengo las carátulas y ya está :)

Re: Integrando la biblioteca...

Publicado: 30 Ene 2010, 12:19
por jurrabi
Seguramente no me creerás si te digo que soñé con esta conversación anoche.

Tiene mucho sentido lo de scrapear pelis. Como dices no todo tiene porque ir a tu biblioteca, y tener opción de buscar información adicional de una película para que te ayude a decidir si la quieres ver... suena no solo lógico, sino deseable.
De hecho estoy seguro de que pude que haya formas... habrá que escudriñar las librerias de xbmc.

En cuanto a lo de postear los cambios, déjame hasta el lunes para que limpie el código y revise que van bien todos los canales y lo pongo. Podría tardar menos, pero este finde es el cumple de mi madre y estaré liado (busca regalo, compra, reuniones, cena, etc).

Esta mañana no sé porqué los scrapers de cine se negaban a bajar info para ficheros strm, aunque el mismo fichero renombrado a avi iba bien :( Como te digo ando liado y ni he mirado el log, pero lo solucionaré.

Ya te cuento...

Jur.

PD. En el tema de que falten cosas en las bd... Supongo que siempre faltarán cosas. Por supuesto está la opción de añadirlo uno mismo (en thetvdb.com estarán encantados). Yo, la verdad como no veo anime y casi todas mi series son de "las populares" pues no tengo problema. De hecho la info de los episodios más nuevos (que descargo al día siguiente de emitirse en EEUU) siempre está actualizada...
Cuando dices que te bajas la carátula y ya está... ¿No has probado los fanart? Yo estoy enganchadísimo... si puedo (a ver cuando busco tiempo) grabo un video pequeño y lo subo al youtube para que veas un ejemplito de pelis y series con fanart y foto/argumento de cada episodio... Hoy estoy probando el skin Alaska y me parece precioso. Quedará bien en un video ;)

Re: Integrando la biblioteca...

Publicado: 31 Ene 2010, 15:34
por bandavi
Hola Jurrabi,

Si que es extenso el post, no se en que parte me perdi jejeje... la idea principal sí te entendí y la verdad no sabia que se pudieran correr los plugin con strm y eso que los utilicé bastante.

Creo que confundes el concepto de pelisalacarta con la biblioteca, en ningun momento se intenta competir con la misma,son dos cosas distintas, la biblioteca necesita tener los videos almacenados,ademas tiene que ser administrada por el usuario mismo y no todos estan por la labor aunque sea facil para algunos, imagina para el que no lo es.Yo lo deje con las 50 primeras peliculas, todo muy chulo con fanart y todo pero con lo que me faltaba, tiempo es lo que no tengo, asi que mejor utilizo mi tiempo en otra cosa como sentarme al sofa y ver lo que hay en la web de algun canal de pelisalacarta y a golpe de un click ver la peli y si el canal me facilita la sinopsis y la caratula como informacion mejor ya que son añadidos y no estoy de acuerdo que ralentizen al plugin, hay skins chulos que te chupan todo el cpu, ya que el xbmc no puede utilizar las librerias de la tarjeta grafica, asi que todo es a golpe de cpu,podria ralentizar un poco a la hora de cachear las listas en el disco duro pero son segundos. Ademas el esfuerzo del mantenimiento de los canales es para el creador de los mismos, los demas estan exceptos de ocuparse de eso, a no ser que sepan de como se hace y hacerlo ellos mismos. El concepto de pelisalacarta para mi es llevarte los videos que estan en una web al televisor y a golpe de un click del control remoto puedas verlo o bajartelo si quieres, nada mas, no te va a administrar tus videos para eso esta la biblioteca.

La idea de Jesus es utilizar los scrapers,pero como opcion, para los mas exigentes, incluso podertelo descargar junto con el video pero todo son mejoras que se añadiran con el tiempo.

Entrando en el tema de programacion, tu descubrimiento del strm podria servir como enlace entre pelisalacarta y la biblioteca, y no me parece mala idea.
Tu idea de como crear el plugin es muy intrusiva a mi parecer y puede llegar a confundir si hay algun error, se puede hacer sin tocar nada, solo tienes saber que cosas necesitas, para correr un enlace, que esta en tus favoritos del xbmc, ponerlo en un plugin diferente y lanzarlo con el strm.
Las cosas que necesitas esta en el enlace mismo, ejemplo :
este es un enlace sacado de mis favoritos del xbmc de una pelicula.

-plugin://video/pelisalacarta/?channel=dospuntocerovision&action=detail&category=Dospuntocerovision&title=Ricky+%282009%29+-+Ver+pelicula+Online+-+%28Megavideo%29&url=M6AIIT9H&thumbnail=jpg&plot=&server=Megavideo

Si te fijas en action este llama a un modulo "detail", otra veces en vez de ser "detail" es "play" y este llamará al xbmctools.playvideo, bien con eso ya sabemos que se necesitan tanto detail y play como xbmc.playvideo esos tres los juntamos en un plugin y ya lo tienes. Hay detalles que se van solucionando con pruebas pero eso es basico para correr el strm.
Como me dejaste picado con lo del strm asi que no me aguanté, queria probar y lo hice jejeje..., lo siento , te lo dejo para que lo pruebes por si te sirve.
La parte de crear los strm te lo dejo a ti pero te aconsejo que lo hagas a partir del archivo de tus favoritos, puedes elegir los videos con el boton info y Añadir a favoritos o como este en tu control remoto y cargar con un plugin el archivo xml. Tambien fijate que he quitado la informacion del thumbnail y el plot, sobretodo el plot que si es demasiado largo el strm no te va a funcionar.
Plugin_By_strm.rar
(183.33 KiB) Descargado 466 veces
PD.:
Al descomprimir el rar, hay dos folders dentro, el folder "strm" lo copias dentro de "plugin/video/", y en el folder "video" estan los ejemplos de enlaces de videos en formato strm.

Re: Integrando la biblioteca...

Publicado: 02 Feb 2010, 10:56
por jesus
@jurrabi, normalmente bajo con los scrapers de xbmc las cosas y luego voy completando a mano así que tengo varios fanarts, pero no le dedico mucho tiempo tampoco.

Además del anime, soy forofo de los documentales que no están en ningún sitio normalmente. Para esto el canal documaniatv de @bandavi es una mina, pues tiene captura de pantalla y argumento en todas las entradas :)

Siempre he pensado que mucho de lo que hace XBMC es para presumir delante de los amigos, como algunos skins y varias de las funciones que tiene, pero a mí me gusta más también el rollo de poder sentarme, elegir y ver sin complicaciones.

Últimamente me encuentro con que tengo un vídeo bajado en HD, sobre todo con los animes, y me voy a algún canal de pelisalacarta para ver el argumento antes de empezar a verla :)

Es como una biblioteca... pero on-line je je je

Re: Integrando la biblioteca...

Publicado: 02 Feb 2010, 14:25
por jurrabi
Hola bandavi.

Gracias por leerte el rollo (a veces pierdo la noción de lo que escribo).
Te había hecho una contestación por partes a tu mensaje y un cuelgue cierre involuntario del crhome me ha hecho perder la última hora de escribir. Como además iba a ser un mensaje rápido porque tengo que irme, disculpa que no sea más específico.
Intentaré sintetizar:

1. Gracias por todos tus comentarios. El tema de la biblioteca me quedó muy integrista en el primer mensajes (y no lo pretendia) me parece bien todo.
2. Mi intención es dar una opción más a la gente (que es la que a mi me gusta) para que la usen (si quieren) o no.
3. Hacerlo a parte no me parece buena opción porque las mejoras que se hagan a pelisalacarta se quedarían fuena.
4. Lo que intento hacer es añadir 1 función sin afectar a la funcionalidad existente ni a los canales.
5. Gracias por mandar lo que investigaste. Aunque no lo he abierto, por lo que escribes seguiste las mismas investigaciones con strm files (yo también empecé con los favoritos) ;)

Os dejo lo que llevo hecho, que es lo del viernes, porque el finde lo he tenido liado. Por desgracia esta semana tambien estoy hasta arriba. siento postear algo aún sin acabar, pero quiero que veais por donde voy y deis vuestra opinión.

Estado actual:
Funcionalmente:
Añadida la opción "Añadir a la biblioteca" en el menú play de los videos de megaupload(megavideo). El resto será facil.
Esta opción crea un fichero .strm en la carpeta $HOMEPELISALACARTA$/Library (que hay que crear a mano).
La opción funciona en todos los canales (aunque no los he tocado), al menos en todos los que he probado. Como dije quería probar más antes de mandarlo, pero no he podido ni voy a poder hoy o mañana.
La idea es que estos ficheros se pueden tratar como si fueran pelis o episodios y buscar su info con los scrappers. Desgraciadamente los scrappers de pelis no están funcionando (los de series si). Creo que se trata de un problema de XBMC y ya estoy en contacto con la gente de TeamXBMC para ver si tiene solución.

Faltan cosas importantes como organizar los strm en subcarpetas para poder diferenciar pelis de series de docus, etc. Y como además no funcionan los scrappers de cine pues las pruebas no servirán para casi nadie.

Si lo posteo es para que veais la linea que llevo y me digais si os parece adecuada.

Técnicamente:
He añadido un archivo nuevo library.py que va en resources/lib y he modificado 2 de los ficheros existentes. xbmctools.py y pelisalacarta.py.
En pelisalacarta.py he añadido lo necesario para tratar la nueva acción strm (ejecutar desde strm)
en xbmctools.py he modificado los playvideo para añadir la opción nueva de "añadir a la biblioteca" y para entender la acción strm.

De esta forma bandavi no necesito modificar ni detail ni play en los canales y se evita una modificación más intrusiva y masiva ;) Espero que os parezca aceptable. Me comí bastante el tarro para buscar el mejor sitio.

El código está sin comentar extensivamente ni limpiar. Ni siquiera está bien verificado. (en eso andaba)... No seáis demasiado duros....

os adjunto 2 rars, el pelisalacarta completo con los ficheros modificados en su sitio y los ficheros sueltos por si quereis mirarlos rápidamente.
Todo junto: http://www.megaupload.com/?d=NVXF26DB
Separado: http://www.megaupload.com/?d=PIQ653ZH

(os habéis fijado que todo junto se escribe separado y que separado se escribe todo junto ;))

Los archivos van así:
pelisalacarta/pelisalacarta.py
pelisalacarta/resources/lib/xbmctools.py
pelisalacarta/resources/lib/library.py
pelisalacarta/library/ (sólo crear la carpeta)

Un saludo y seguimos hablando (a lo mejor tardo un poco esta semana, pero el finde me pongo a tope).

Jur.
Ahora que miro no veo como adjuntar archivos... lo subo a megaupload . No los he comprobado. Si veis que fallan al principio intentar mas tarde (a veces tardan un poco en estar disponibles en general).

Re: Integrando la biblioteca...

Publicado: 05 Feb 2010, 11:12
por jurrabi
Jesus, tengo una consultita.

¿Cual es la intención del parámetro category? Aun estoy mirando en detalle, pero veo que en muchos casos es casi equivalente a channel. ¿Es realmente utilizado o es quizá una herencia de las plantillas de plugin?


Lo pregunto porque estoy metido con el tema de añadir una opción para añadir toda una temporada de golpe a la biblioteca y me hace falta una forma de diferenciar canales de películas, series y documentales. Para los canales que tienen varios tipos de contenido la distinción se hace más adelante (en los niveles siguientes).

He cambiado el valor en seriesyonkis a modo de prueba y el plugins parece funcionar sin problema... El campo catagoria, si no tiene otro uso, podría ser perfecto para distinguir las pelis de las series y otros contenidos...

De paso aprovecho y te pregunto si has tenido oportunidad de echarle un vistazo a los cambios que os mande. ¿Qué te parecen? ¿Van el una linea adecuada? ¿Alguna sugerencia?

Un saludo,

Jur.


EDITO: Te pego los cambios que he hecho en channelselector.py para probar poner la categoría como "Series":

Código: Seleccionar todo

...
	addfolder("Seriesyonkis","seriesyonkis","mainlist","Series") #Modificado por JUR para añadir la categoría
...
def addfolder(nombre,channelname,accion,category=""):
	if category == "":    #JUR
		category = nombre    #JUR
	listitem = xbmcgui.ListItem( nombre , iconImage="DefaultFolder.png", thumbnailImage=os.path.join(IMAGES_PATH, channelname+".png"))    #JUR
	itemurl = '%s?channel=%s&action=%s&category=%s' % ( sys.argv[ 0 ] , channelname , accion , urllib.quote_plus(category) )
	xbmcplugin.addDirectoryItem( handle = int(sys.argv[ 1 ]), url = itemurl , listitem=listitem, isFolder=True)

Re: Integrando la biblioteca...

Publicado: 07 Feb 2010, 14:41
por bandavi
Hola Jurrabi.
Toda la semana he estado liado, siento no haber podido contestarte.
Vayamos por pasos:
1. Gracias por todos tus comentarios. El tema de la biblioteca me quedó muy integrista en el primer mensajes (y no lo pretendia) me parece bien todo.
2. Mi intención es dar una opción más a la gente (que es la que a mi me gusta) para que la usen (si quieren) o no.
3. Hacerlo a parte no me parece buena opción porque las mejoras que se hagan a pelisalacarta se quedarían fuena.
4. Lo que intento hacer es añadir 1 función sin afectar a la funcionalidad existente ni a los canales.
5. Gracias por mandar lo que investigaste. Aunque no lo he abierto, por lo que escribes seguiste las mismas investigaciones con strm files (yo también empecé con los favoritos)
1. Todos a veces somos un poco integristas con lo que nos gusta, a mi, a veces me pasa, sobretodo con pelisalacarta ;) , asi que no pasa nada.

2. Esa tambien es nuestra intension entre otras cosas.

3. Siento no haberme explicado bien, mi intension no es que, lo que quieres hacer, quede fuera de pelisalacarta, ni mucho menos, yo no tengo injerencia sobre eso,faltaria mas, lo mio es puramente orientativo y lo que quiero es todo lo contrario, que sea parte del mismo pero ojo, "se puede estar juntos pero no revueltos", con esto que quiero decir, que puedes ponerlo todo dentro un plugin y ubicarlo dentro de la carpeta "lib" o "channel" eso ya veria Jesus donde ubicarlo mejor.

4. Precisamente esa es la idea

5. Yo si he revisado lo tuyo, te resumo lo que he visto:
Veo que evitaste la modificacion de "detail" y "play" en los canales, hubiera sido un desastre si el canal dejaba de existir y se tuvieran archivos strm que hacian referencia a estos, por eso es mejor tener los propios sin que afecte a los demas ni los demas lo afecten.
La ubicacion de "xbmcplugin.setResolvedUrl" junto a "xbmcPlayer.play" separados con un "if" no me parece muy eficiente, es mejor tenerlos en modulos separados,sacrificas unos bytes pero ganas eficiencia, aparte que evitas que "xbmcplugin.setResolvedUrl" se ejecute y de error sin necesidad,cuando los parametros no vienen de un strm.

Por ultimo, un consejo, si empiezas a hacer un plugin viendo donde modificar lo que esta ya hecho, solo te romperas el tarro por ende el de Jesus tambien jejeje... mejor empieza viendo que cosas necesitas, armas el rompecabezas en un plugin, ves que te funcione y lo cuelgas para que Jesus le heche un vistazo.
Dejame decirte que toda ayuda Jesus lo recibe con los brazos abiertos, de eso puedo dar fe. ;)
Desde yá, te estoy agradecido por el dato del strm y tu intension de añadirlo al plugin, yo tengo intension de utilizarlo aunque no de la forma que tu quieres (con la biblioteca) mas bien como siempre lo utilicé, para pasarselo a mis amigos, o cuando estoy viendo las listas de videos, haya alguna que me interese la pueda guardar como strm y despues verla mas tarde sin necesidad de tener que buscarla otra vez.



un saludo.