Página 1 de 4

Dudas sobre mis primeros aportes y otras cosas

Publicado: 24 Jun 2016, 13:36
por identidad_oculta
Hola a todos, probablemente ya os habréis olvidado de aquel mensaje que escribí en semana santa en el que, según he comprobado, me pase mucho de listo. Quería hacer mil cosas sin tener ni idea de git, python, kodi o el funcionamiento de pelsalacarta/tvalacarta. Desde entonces he estado buscando info, conociendo Sublimetext y SourceTree y conociendo git a fondo (por cierto, que maravilla de sistema), haciendo tutoriales de python (aunque tras terminarlos he observado que se aprende mas probando y fallando una y otra vez) y intentando entender el funcionamiento de los maravillosos Add-ons pelisalacarta/tvalacarta.

El caso es que recientemente he terminado con los exámenes y me he puesto a modificar algunas cosillas de tvalacarta y pelisalacarta con la intención de aportar mi granito de arena para agradeceros vuestro trabajo y ayudaros en cosas simples. Las modificaciones las he probado y las he subido a mis respectivos forks, pero antes de hacer un PR en sus respectivos repositorios me gustaría comentaros lo que he hecho y, si fuera posible, que me dijerais si esta bien, mal o como podría simplificarlo/mejorarlo (cuellos de botella, bucles innecesarios, etc.). Esto es mi primer paso con python, así que es posible que haya fallos de esos que hacen llorar a los veteranos.

tvalacarta
Modificaciones:
  • Poder usar direcciones con el protocolo "special://" en la configuración: Al usar direcciones con el protocolo special en "Configuración" el Add-on no podia arrancar, daba un error y había que usar forzosamente una dirección rudimentaria. Esto en un ordenador o en un dispositivo cuyo sistema de archivos no suele variar no importa, pero en iOS con cada actualización de Kodi cambia el nombre de la carpeta de los datos de la app de Kodi, y en Android, si se "cambia" entre ROMs de distintas "fuentes", posiblemente el sistema de archivos cambiara, así que el usuario empezara a ver errores, y salvo que sepa que pasa esto probablemente mas de uno acabara desesperado y hará algo drástico (como yo al principio). NOTA: Si esto os gusta y funciona en tvalacarta lo podría agregar a pelisalacarta tambien, por que, aunque esto ya funciona con la biblioteca, creo que no esta implementado para el canal "descargas" y "favoritos".
  • Ahora aparece "tvalacarta" en el titulo de las ventanas temporales que aparecen al entrar a los canales en vez de "pelisalacarta". Un fix menor.
  • Algunas correcciones de PEP8 y del logger (por canales que han cambiado a channels pero ponia "core" en el logger)
Enlace al commit

pelisalacarta
Modificaciones:
  • Al salir de ajustes no se crea una nueva ventana: Tras el reciente cambio en "channelselector" y el movimiento de canales a "channels", parece ser que si no se pone

    Código: Seleccionar todo

    folder=False
    en el "itemlist", "xmbctools" crea una nueva carpeta tras salir de la configuración. No he comprobado si da el tipico error/adventerncia en el log de "Invalid handle -1" por haber hecho esto.
  • Mejoras en el canal ayuda:
    1. Al modificar advancedsettings.xml ya no "machaca" el archivo por completo, ahora hace una copia del actual, lo abre, lo lee y solo modifica los apartados del advancedsettings.xml de jesus, lo demás lo deja como estaba, cincluso si habia otros ajustes dentro entre "<network>" y "</network>". Cuando conocí del potencial de Kodi (allá por Febrero) y use esta funcion dentro de "Ayuda" se substituyo el archivo de mi TV-Box por el de pelisalacarta, y dicho archivo tenia lineas importantes que estaban establecidas por el fabricante para optimizar el uso de Kodi. Hasta varias semanas después no me di cuenta y costo bastante conseguir el archivo original para devolver esas lineas (que en realidad eran 4 tonterías, pero eran necesarias). Ya no pasa mas.
    2. Reestructuracion del canal y separacion de las funciones con espacios en blanco. Creo que es mas util la estructura nueva.
    3. Al pulsar para actualizar los episodios y la biblioteca ya no se produce un bucle infinito. Esto en la TV-Box no daba problemas, pero en iOS se ha llegado a provocar varios crashes por este bucle. He hecho falta crear una función en "library_service.py", pero no ha tenido impacto alguno sobre su funcionamiento, o eso creo. NOTA: Todavía tengo varias cosas en proceso para mejorar esta característica dentro del canal.
    4. He agregado un itemlist junto con su función para restaurar el backup de advancedsettings.xml que exista (y sino existe se notifica)
  • Cambio en library.py: Antes de esta solución de Seitan a un problema que habia con "library.py", este iniciaba el procedimiento de convertir "series.xml" a "series.json" y se quedaba a medias, con lo que en en la función "convert_xml_to_json" agregué lo que se puede observar en este commit (en la parte de library.py) con el objetivo de que si se vuelve a quedar a medias por un problema se borre "SERIES_OLD" antes de intentar renombrarlo (por que si la carpeta no esta vacía "os.rename" no es capaz de renombrarla y no es capaz de continuar) y ademas haga una limpieza de la librería al finalizar (por que la función no "respeta" los archivos ".strm" que ya existen y al cambiar la dirección Kodi deja de saber donde están)
Problemas encontrados:
  • "JSON.ObjectFromString" y "JSON.StringFromObject", de "jsontools.py" no existen. He agregado un "FIXME" delante de cada uno de ellos.
  • Hay un problema con json a la hora de leer los archivos de "settings_channel" en "filtertools.py". La verdad es que no he dedicado mucho tiempo a buscar como solucionarlo, pero los archivos json que intenta leer no existen en la carpeta, así que podría ser un problema sencillo a solucionar con un "if os.path.exists(fname): ...". Os dejo el log por si sirve de algo:
    ...
    [filtertools.py] get_filtered_tvshows
    NOTICE: [filtertools.py] read_file
    NOTICE: Traceback (most recent call last):
    File "/Users/__/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/core/jsontools.py", line 110, in load_json
    json_data = simplejson.loads(data, object_hook= to_utf8)
    File "/Users/__/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/lib/simplejson/__init__.py", line 318, in loads
    return cls(encoding=encoding, **kw).decode(s)
    File "/Users/__/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/lib/simplejson/decoder.py", line 335, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File "/Users/__/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/lib/simplejson/decoder.py", line 353, in raw_decode
    raise ValueError("No JSON object could be decoded")
    ValueError: No JSON object could be decoded
    23:09:48 T:123145321213952 NOTICE: pelisalacarta.core.jsontools.load_json Probando simplejson incluido en el interprete
    23:09:48 T:123145321213952 NOTICE: Traceback (most recent call last):
    File "/Users/__/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/core/jsontools.py", line 119, in load_json
    json_data = simplejson.loads(data, object_hook=to_utf8)
    File "/Users/__/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/lib/simplejson/__init__.py", line 318, in loads
    return cls(encoding=encoding, **kw).decode(s)
    File "/Users/__/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/lib/simplejson/decoder.py", line 335, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
    File "/Users/__/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/lib/simplejson/decoder.py", line 353, in raw_decode
    raise ValueError("No JSON object could be decoded")
    ValueError: No JSON object could be decoded
    NOTICE: pelisalacarta.core.jsontools.load_json Probando json incluido en el interprete
    NOTICE: Traceback (most recent call last):
    File "/Users/__/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/core/jsontools.py", line 128, in load_json
    json_data = json.loads(data, object_hook=to_utf8)
    File "/Users/Shared/jenkins/workspace/OSX-64/tools/depends/xbmc-depends/macosx10.10_x86_64-target/lib/python2.6/json/__init__.py", line 318, in loads
    File "/Users/Shared/jenkins/workspace/OSX-64/tools/depends/xbmc-depends/macosx10.10_x86_64-target/lib/python2.6/json/decoder.py", line 319, in decode
    File "/Users/Shared/jenkins/workspace/OSX-64/tools/depends/xbmc-depends/macosx10.10_x86_64-target/lib/python2.6/json/decoder.py", line 338, in raw_decode
    ValueError: No JSON object could be decoded
    NOTICE: pelisalacarta.core.jsontools.load_json Probando JSON de Plex
    NOTICE: Traceback (most recent call last):
    File "/Users/__/Library/Application Support/Kodi/addons/plugin.video.pelisalacarta/core/jsontools.py", line 137, in load_json
    json_data = JSON.ObjectFromString(data, encoding="utf-8")
    NameError: global name 'JSON' is not defined
    NOTICE: pelisalacarta.core.jsontools.load_json No se ha encontrado un parser de JSON valido
    NOTICE: pelisalacarta.core.jsontools.load_json -> (nada)
    NOTICE: [filtertools.py] check_json_file
    NOTICE: Error al cargar el json del fichero /Users/__/Library/Application Support/Kodi/userdata/profiles/Development/addon_data/plugin.video.pelisalacarta/settings_channels/seriesblanco_data.json
    NOTICE: Está vacío el fichero: /Users/__/Library/Application Support/Kodi/userdata/profiles/Development/addon_data/plugin.video.pelisalacarta/settings_channels/seriesblanco_data.json
    NOTICE: json_series: {}
    NOTICE: pelisalacarta.platformcode.library title_to_filename
    NOTICE: pelisalacarta.platformcode.library elimina_tildes
    NOTICE: pelisalacarta.platformcode.library savelibrary_tvshow
    NOTICE: pelisalacarta.platformcode.library title_to_filename
    NOTICE: pelisalacarta.platformcode.library elimina_tildes
    NOTICE: pelisalacarta.platformcode.library savelibrary_episodes
    ...
Enlace a commit 1
Enlace a commit 2
Enlace a commit 3(con la utlima version de ayuda.py)

Dudas/Propuestas/...
  • Se podría poner como ruta predeterminada "special://profile/addon_data/plugin.video.(pelisalacarta o tvalacarta)/(lo que toque)" como ruta predeterminada en los ajustes? Si con la modificación que he hecho en tvalacarta todo funcionase bien seria mucho mas cómodo.
  • En pelisalacarta mas que en tvalacarta: Para trabajar uso SublimeText (gracias por recomendarlo) junto con el package "Anaconda" y "kodistubs" (complemento de "anaconda" para tener la documentación de la api de kodi). Hay archivos en los que mas de la mitas de las lineas me salen marcadas (lo hace "Anaconda") por tener "errores" relacionados con PEP8 o por falta de espacios o por que los hay donde no debieran o por que se usa "<>" en vez de "!=", etc. Como no he pedido permiso no he tocado nada, así que os pregunto: Lo dejo como esta o tengo permiso ara "limpiarlo"?
  • En pelisalacarta y tvalacarta: Hace unos años el equipo de Kodi decidió "abandonar" las traducciones con "strings.xml" y pasarse a "strings.po" (la diferencia se puede observar aqui, y el proyecto no parece haber tenido el existo que esperaban por falta de colaboracion (aparentemente), asi que dejaron presente la compatibilidad con el antiguo sistema. Este sistema funciona con los addons, y aunque aun se "permite" la compatibilidad con "strings.xml" recomiendan usar el nuevo método. Hay incluso una herramienta que sirve para convertir de ".xml" a ".po". Mi duda es: Es mejor dejarlo todo como esta por que todo funciona bien así o se podría intentar pasar al nuevo sistema? En teoria si se cambia a "strings.po" no habría que modificar absolutamente nada mas.
  • En pelisalacarta: No se si vosotros lo habréis experimentado, pero me pasa con frecuencia que intentar lanzar un capitulo no muestra los enlaces hasta que entre en el Add-on, entro en el canal y en la serie y pulso sobre un capitulo cualquiera, tras lo cual todo funciona a las mil maravillas. Esto por que podría ser?
  • Cuando se hace el cambio de xml a json, en la ventana que aparece (por cierto, menudo pedazo de curro), no se acierta siempre (por ejemplo con "Doctor Who" y el nuevo método no lo elegí bien, mientras que con la lista "fea" que sale al hacerlo manualmente desde "archivos"(como había que hacer hasta ahora si Kodi no detectaba la serie) no hay problema alguno. El asunto es que desde que seleccione esa opción de forma incorrecta no he encontrado forma de cambiarlo (aunque supongo que podría cambiar el ID en "series.json"), y ademas no ha actualizado la información de los archivos "strm" por lo que no aparece en la biblioteca. Como podría modificar la información de una serie después de seleccionarla por primera vez?
Agradezco cualquier comentario, ayuda o respuesta.

Muchas gracias por todo lo que hacéis y perdón por el toston. :roll:

Un saludo.

Re: Dudas sobre mis primeros aportes y otras cosas

Publicado: 24 Jun 2016, 14:59
por SeiTaN
Ante todo agradecerte el tomarte la molestia de ponerte a hacer cosas, nunca está de más hacerlo cuando "pierdes" tiempo en algo que sirve para más gente.

Si que te has explayado :lol: :lol: te hablo de las partes de pelisalacarta que me conozco.

- channelselector, sólo veo distinta lo del Folder, el resto no veo nada raro para "hacer un enter" en las lineas del Item() , las líneas ya eran de 80 espacios :|
Imagen
kerenmac escribió: - Al pulsar para actualizar los episodios y la biblioteca ya no se produce un bucle infinito. Esto en la TV-Box no daba problemas, pero en iOS se ha llegado a provocar varios crashes por este bucle. He hecho falta crear una función en "library_service.py", pero no ha tenido impacto alguno sobre su funcionamiento, o eso creo. NOTA: Todavía tengo varias cosas en proceso para mejorar esta característica dentro del canal.
El problema de los bucles infinitos en lo poco que sé, es debido a como funciona el plugin, ya se envia la url al launcher cada vez que se va de un sitio a otro.
Sobre lo cambiado en library_service, si estás mirando las notaciones de PEP008, comentarte que los docstrings de los métodos se usa """ (triple comilla doble ) y no simple ''' ;)
kerenmac escribió: Cambio en library.py: Antes de esta solución de Seitan a un problema que habia con "library.py", este iniciaba el procedimiento de convertir "series.xml" a "series.json" y se quedaba a medias, con lo que en en la función "convert_xml_to_json" agregué lo que se puede observar en este commit (en la parte de library.py) con el objetivo de que si se vuelve a quedar a medias por un problema se borre "SERIES_OLD" antes de intentar renombrarlo (por que si la carpeta no esta vacía "os.rename" no es capaz de renombrarla y no es capaz de continuar)
Buen detalle, a mi no me había dado problemas al hacer todo el proceso, pero nunca está de más controlarlo ;)
kerenmac escribió: y ademas haga una limpieza de la librería al finalizar (por que la función no "respeta" los archivos ".strm" que ya existen y al cambiar la dirección Kodi deja de saber donde están)
Yo tengo añadido a kodi otras cosas que no son de pelisalacarta, con la función que comentas ¿no borrarias tb eso?
kerenmac escribió: Hay un problema con json a la hora de leer los archivos de "settings_channel" en "filtertools.py". La verdad es que no he dedicado mucho tiempo a buscar como solucionarlo, pero los archivos json que intenta leer no existen en la carpeta, así que podría ser un problema sencillo a solucionar con un "if os.path.exists(fname): ...".
Esto es porque no se te han creado con el desarrollo de superberny, que automáticamente te creaba un fichero json por cada canal, cuando me baje sus cambios lo hizo bien, En tu caso, no se si es debido a que tú has tenido problemas o es algo que se haya modificado últimamente :S
kerenmac escribió: Se podría poner como ruta predeterminada "special://profile/addon_data/plugin.video.(pelisalacarta o tvalacarta)/(lo que toque)" como ruta predeterminada en los ajustes? Si con la modificación que he hecho en tvalacarta todo funcionase bien seria mucho mas cómodo.
No se si lo que dices de la configuración tb se usa en media-server o plex, pero la etiqueta special sólo se usa para kodi, con lo que podrías estropear algo.
kerenmac escribió: En pelisalacarta mas que en tvalacarta: Para trabajar uso SublimeText (gracias por recomendarlo) junto con el package "Anaconda" y "kodistubs dentro" (para tener la documentación de la api de kodi). Hay archivos en los que mas de la mitas de las lineas me salen marcadas (lo hace "Anaconda") por tener "errores" relacionados con PEP8 o por falta de espacios o por que los hay donde no debieran o por que se usa "<>" en vez de "!=", etc. Como no he pedido permiso no he tocado nada, así que os pregunto: Lo dejo como esta o tengo permiso ara "limpiarlo"?
Esto lo tendrá que decidir Jesús, yo soy partidario porque en mi opinión personal todo queda más homogeneo y en el plugin han tocado muchas manos, al menos en mis desarrollos si lo hago por lo dicho anteriormente.
kerenmac escribió: En pelisalacarta y tvalacarta: Hace unos años el equipo de Kodi decidió "abandonar" las traducciones con "strings.xml" y pasarse a "strings.po" (la diferencia se puede observar aqui, y el proyecto no parece haber tenido el existo que esperaban por falta de colaboracion (aparentemente), asi que dejaron presente la compatibilidad con el antiguo sistema. Este sistema funciona con los addons, y aunque aun se "permite" la compatibilidad con "strings.xml" recomiendan usar el nuevo método. Hay incluso una herramienta que sirve para convertir de ".xml" a ".po". Mi duda es: Es mejor dejarlo todo como esta por que todo funciona bien así o se podría intentar pasar al nuevo sistema? En teoria si se cambia a "strings.po" no habría que modificar absolutamente nada mas.
Igual que antes, es cosa de Jesús, yo tb estuve mirando los .po, creo que practicamente nadie usa las traducciones, quizás si se tradujera el plugin a catalán, gallego y euskera tendría más sentido, además de añadir las traducciones en partes del codigo donde los mensajes están a fuego, hardcode o como quieras llamarlo.
kerenmac escribió: En pelisalacarta: No se si vosotros lo habréis experimentado, pero me pasa con frecuencia que intentar lanzar un capitulo no muestra los enlaces hasta que entre en el Add-on, entro en el canal y en la serie y pulso sobre un capitulo cualquiera, tras lo cual todo funciona a las mil maravillas. Esto por que podría ser?
¿Lanzandolo desde donde? ¿la biblioteca? No recuerdo que me haya pasado nada parecido.
kerenmac escribió: Cuando se hace el cambio de xml a json, en la ventana que aparece (por cierto, menudo pedazo de curro), no se acierta siempre (por ejemplo con "Doctor Who" y el nuevo método no lo elegí bien, mientras que con la lista "fea" que sale al hacerlo manualmente desde "archivos"(como había que hacer hasta ahora si Kodi no detectaba la serie) no hay problema alguno. El asunto es que desde que seleccione esa opción de forma incorrecta no he encontrado forma de cambiarlo (aunque supongo que podría cambiar el ID en "series.json"), y ademas no ha actualizado la información de los archivos "strm" por lo que no aparece en la biblioteca. Como podría modificar la información de una serie después de seleccionarla por primera vez?
El mérito es de superberny y divadres :D, cuando te sale la ventana si hay más de un resultado se te habilitan los botones para navegar entre las opciones.

El tema de re-elegir los datos de una serie es algo que está pendiente, Jesús lanzó propuestas/cambios sobre la biblioteca y aún no están concretadas por lo que no se ha terminado esa parte por si acaba desechado el desarrollo.

Si quieres cambiarlo a mano tienes que hacer dos cosas:
- edita el fichero tvshow.nfo de la serie, y cambiar la url que hay dentro por la de la serie correcta, la web que se usa para obtener esta información es themoviedb.org

Código: Seleccionar todo

https://www.themoviedb.org/tv/57243
- en series.json cambiar el ID que te sale por el correcto, esto no es obligatorio si no usas varios canales para la misma serie, sino no se te agruparian.

Sobre el fichero series.json, divadres y yo estuvimos hablando y en un futuro cercano, el fichero series.json no se va a utilizar, los datos de cada serie serán independientes.

Saludos.

Re: Dudas sobre mis primeros aportes y otras cosas

Publicado: 01 Jul 2016, 19:03
por jesus
kerenmac escribió:Hola a todos, probablemente ya os habréis olvidado de aquel mensaje que escribí en semana santa en el que, según he comprobado, me pase mucho de listo. Quería hacer mil cosas sin tener ni idea de git, python, kodi o el funcionamiento de pelsalacarta/tvalacarta. Desde entonces he estado buscando info, conociendo Sublimetext y SourceTree y conociendo git a fondo (por cierto, que maravilla de sistema), haciendo tutoriales de python (aunque tras terminarlos he observado que se aprende mas probando y fallando una y otra vez) y intentando entender el funcionamiento de los maravillosos Add-ons pelisalacarta/tvalacarta.

El caso es que recientemente he terminado con los exámenes y me he puesto a modificar algunas cosillas de tvalacarta y pelisalacarta con la intención de aportar mi granito de arena para agradeceros vuestro trabajo y ayudaros en cosas simples. Las modificaciones las he probado y las he subido a mis respectivos forks, pero antes de hacer un PR en sus respectivos repositorios me gustaría comentaros lo que he hecho y, si fuera posible, que me dijerais si esta bien, mal o como podría simplificarlo/mejorarlo (cuellos de botella, bucles innecesarios, etc.). Esto es mi primer paso con python, así que es posible que haya fallos de esos que hacen llorar a los veteranos.
Adelante con ello, vamos punto por punto.
kerenmac escribió:tvalacarta
Modificaciones:
  • Poder usar direcciones con el protocolo "special://" en la configuración: Al usar direcciones con el protocolo special en "Configuración" el Add-on no podia arrancar, daba un error y había que usar forzosamente una dirección rudimentaria. Esto en un ordenador o en un dispositivo cuyo sistema de archivos no suele variar no importa, pero en iOS con cada actualización de Kodi cambia el nombre de la carpeta de los datos de la app de Kodi, y en Android, si se "cambia" entre ROMs de distintas "fuentes", posiblemente el sistema de archivos cambiara, así que el usuario empezara a ver errores, y salvo que sepa que pasa esto probablemente mas de uno acabara desesperado y hará algo drástico (como yo al principio). NOTA: Si esto os gusta y funciona en tvalacarta lo podría agregar a pelisalacarta tambien, por que, aunque esto ya funciona con la biblioteca, creo que no esta implementado para el canal "descargas" y "favoritos".
El único fallito que le veo es que das por hecho que se va a usar desde XBMC/Kodi.

Fíjate en cómo se usa el config.is_xbmc() y no pongas el "import xbmc" hasta que no estés seguro de que estás en Kodi.
kerenmac escribió:[*]Ahora aparece "tvalacarta" en el titulo de las ventanas temporales que aparecen al entrar a los canales en vez de "pelisalacarta". Un fix menor.
Ya lo revisé, pero seguro que se me pasaron muchos por alto. Antes el código de ambos add-ons era copiado pero como pelisalacarta ha avanzado por un sitio y tvalacarta por otro cada vez se alejan más.
kerenmac escribió:pelisalacarta
Modificaciones:
  • Al salir de ajustes no se crea una nueva ventana: Tras el reciente cambio en "channelselector" y el movimiento de canales a "channels", parece ser que si no se pone

    Código: Seleccionar todo

    folder=False
    en el "itemlist", "xmbctools" crea una nueva carpeta tras salir de la configuración. No he comprobado si da el tipico error/adventerncia en el log de "Invalid handle -1" por haber hecho esto.
No lo he probado, pero suena bien.
kerenmac escribió:[*]Mejoras en el canal ayuda:
  1. Al modificar advancedsettings.xml ya no "machaca" el archivo por completo, ahora hace una copia del actual, lo abre, lo lee y solo modifica los apartados del advancedsettings.xml de jesus, lo demás lo deja como estaba, cincluso si habia otros ajustes dentro entre "<network>" y "</network>". Cuando conocí del potencial de Kodi (allá por Febrero) y use esta funcion dentro de "Ayuda" se substituyo el archivo de mi TV-Box por el de pelisalacarta, y dicho archivo tenia lineas importantes que estaban establecidas por el fabricante para optimizar el uso de Kodi. Hasta varias semanas después no me di cuenta y costo bastante conseguir el archivo original para devolver esas lineas (que en realidad eran 4 tonterías, pero eran necesarias). Ya no pasa mas.
Muy buena esta :)
kerenmac escribió:[*]Al pulsar para actualizar los episodios y la biblioteca ya no se produce un bucle infinito. Esto en la TV-Box no daba problemas, pero en iOS se ha llegado a provocar varios crashes por este bucle. He hecho falta crear una función en "library_service.py", pero no ha tenido impacto alguno sobre su funcionamiento, o eso creo. NOTA: Todavía tengo varias cosas en proceso para mejorar esta característica dentro del canal.
Ojo porque la biblioteca está en "obras". Probablemente cambie por completo :)
kerenmac escribió:Dudas/Propuestas/...
  • Se podría poner como ruta predeterminada "special://profile/addon_data/plugin.video.(pelisalacarta o tvalacarta)/(lo que toque)" como ruta predeterminada en los ajustes? Si con la modificación que he hecho en tvalacarta todo funcionase bien seria mucho mas cómodo.
No veo por qué no, pero sin olvidar la comprobación is_xbmc()
kerenmac escribió:[*]En pelisalacarta mas que en tvalacarta: Para trabajar uso SublimeText (gracias por recomendarlo) junto con el package "Anaconda" y "kodistubs" (complemento de "anaconda" para tener la documentación de la api de kodi). Hay archivos en los que mas de la mitas de las lineas me salen marcadas (lo hace "Anaconda") por tener "errores" relacionados con PEP8 o por falta de espacios o por que los hay donde no debieran o por que se usa "<>" en vez de "!=", etc. Como no he pedido permiso no he tocado nada, así que os pregunto: Lo dejo como esta o tengo permiso ara "limpiarlo"?
Para discutir esto apropiadamente, propongo que creemos un hilo y lo discutamos entre todos.

Créalo tú, o que lo haga Seitan si no quieres complicaciones, y lo valoramos.

Yo lo que te diría si vas a hacer ese tipo de cambios, es que hicieras un commit con el cambio de formato en sí, y otro con las modificaciones que propongas.

De otra forma es difícil ver en el log de git lo que has modificado, ya que está mezclado por los cambios de formato.
kerenmac escribió:[*]En pelisalacarta y tvalacarta: Hace unos años el equipo de Kodi decidió "abandonar" las traducciones con "strings.xml" y pasarse a "strings.po" (la diferencia se puede observar aqui, y el proyecto no parece haber tenido el existo que esperaban por falta de colaboracion (aparentemente), asi que dejaron presente la compatibilidad con el antiguo sistema. Este sistema funciona con los addons, y aunque aun se "permite" la compatibilidad con "strings.xml" recomiendan usar el nuevo método. Hay incluso una herramienta que sirve para convertir de ".xml" a ".po". Mi duda es: Es mejor dejarlo todo como esta por que todo funciona bien así o se podría intentar pasar al nuevo sistema? En teoria si se cambia a "strings.po" no habría que modificar absolutamente nada mas.
Me parece bien, hay que dar una solución a plataformas no-kodi pero debería ser sencillo. Por mí adelante.
kerenmac escribió:Agradezco cualquier comentario, ayuda o respuesta.

Muchas gracias por todo lo que hacéis y perdón por el toston. :roll:

Un saludo.
Gracias a tí por aportar ;)

Re: Dudas sobre mis primeros aportes y otras cosas

Publicado: 01 Jul 2016, 20:34
por SeiTaN
Jesús escribió:
[identidad_oculta] escribió:[*]En pelisalacarta mas que en tvalacarta: Para trabajar uso SublimeText (gracias por recomendarlo) junto con el package "Anaconda" y "kodistubs" (complemento de "anaconda" para tener la documentación de la api de kodi). Hay archivos en los que mas de la mitas de las lineas me salen marcadas (lo hace "Anaconda") por tener "errores" relacionados con PEP8 o por falta de espacios o por que los hay donde no debieran o por que se usa "<>" en vez de "!=", etc. Como no he pedido permiso no he tocado nada, así que os pregunto: Lo dejo como esta o tengo permiso ara "limpiarlo"?
Para discutir esto apropiadamente, propongo que creemos un hilo y lo discutamos entre todos.

Créalo tú, o que lo haga Seitan si no quieres complicaciones, y lo valoramos.
Esto depende de quien se quiera complicar, aunque la mayoría tirais de editores de texto y no mirais estás cosas, existen plugins que te permiten inspeccionar el código además de tener las sugerencias de PEP8 como ha dicho [identidad_oculta]
Jesús escribió: Yo lo que te diría si vas a hacer ese tipo de cambios, es que hicieras un commit con el cambio de formato en sí, y otro con las modificaciones que propongas.

De otra forma es difícil ver en el log de git lo que has modificado, ya que está mezclado por los cambios de formato.
Totalmente de acuerdo, si no es una locura.

Referente a crear el hilo que se pronuncie "el nuevo" decida quien lo hace ;)

Re: Dudas sobre mis primeros aportes y otras cosas

Publicado: 02 Jul 2016, 19:38
por SeiTaN
Jesús escribió:
kerenmac escribió: [*]En pelisalacarta y tvalacarta: Hace unos años el equipo de Kodi decidió "abandonar" las traducciones con "strings.xml" y pasarse a "strings.po" (la diferencia se puede observar aqui, y el proyecto no parece haber tenido el existo que esperaban por falta de colaboracion (aparentemente), asi que dejaron presente la compatibilidad con el antiguo sistema. Este sistema funciona con los addons, y aunque aun se "permite" la compatibilidad con "strings.xml" recomiendan usar el nuevo método. Hay incluso una herramienta que sirve para convertir de ".xml" a ".po". Mi duda es: Es mejor dejarlo todo como esta por que todo funciona bien así o se podría intentar pasar al nuevo sistema? En teoria si se cambia a "strings.po" no habría que modificar absolutamente nada mas.
Me parece bien, hay que dar una solución a plataformas no-kodi pero debería ser sencillo. Por mí adelante.
Los ficheros strings.xml son obligatorios hasta Frodo, a partir de la cual se puede usar strings.po o strings.xml, y si no recuerdo mal prevalece los .po

Un pequeño script y ya está hecho :)

Si quieres añadir los comentarios existentes en los ficheros strings.xml tan solo tienes que poner #. o #: para usar la nomenclatura, un ejemplo...

Código: Seleccionar todo

#. COMENTARIO PRINCIPAL
#: COMENTARIO SECUNDARIO
msgctxt "#30000"
msgid "Default player (XBOX only):"
msgstr "Reproductor (solo XBOX):"
Adjunto los ficheros.

Re: Dudas sobre mis primeros aportes y otras cosas

Publicado: 09 Jul 2016, 12:32
por identidad_oculta
He ido haciendo mas cambios, según lo que me habéis comentado.
  • El primer fallo que cometí y he arreglado es lo del "import XBMC", por que no me di cuenta de que tiene que ser compatible con todas las plataformas.
  • Para tvalacarta borre la rama con los cambios de formato y he hecho un PR con el resto de los cambios.
  • Lo del formato lo voy haciendo poco a poco y dejando las modificaciones de lado archivándolas.
  • Para pelisalacarta he hecho un merge del develop oficial a mi rama, donde hice las modificaciones que aquí os comenté, y he resuelto los conflictos (sobretodo relacionados con "viemode" y "item.channel").
  • He hecho los mismos cambios de tvalacarta en los canales de "favoritos" y "descargas" para poder usar el protocolo "special" en plataformas Kodi.
  • Al hacer el merge de develop y ver los cambios en "configuración", en la sección novedades he agregado "folder=False" para que visualmente sea mas agradable.
  • Me puse a crear una función para crear un dialogo al pulsar sobre "Buscar actualizaciones" en "Configuración", pero al hacerlo en el "launcher" apareció un problema, puesto que tiene una variable llamada "version" que sale de "updater.checkforupdates()", pero no entiendo como modificarlo, por que esa función en el updater no tienen ningun "return", no se que es lo que le devuelve y/o como lo hace. El problema aparecio por que para el dialogo use un "return" con unas variables que crei necesarias para la nueva funcion. EDITO: He visto que se ha editado el archivo "updater.py" y ahora tiene un "return", pero en el antiguo no lo entiendo. Alguien me puede explicar como funcionaba??
  • Lo de la traduccion demomento no lo tocare, por que por experiencia se que "si algo funciona BIEN no lo toques", y ademas hay otras prioridades.
Problema detectado + sugerencia/idea:
  • Dado que me encanta el sistema de "series.xml" y la version 4.0.9 no he actualizado aun a la 4.1.0, pero al entrar en un par de canales, como estan las versiones actualizadas (y adaptadas para la nueva versión) en la rama "master", estos se actualizaron, y se volvió imposible acceder a los canales por razones obvias. Manualmente he tenido que cambiar los canales por los antiguos. Para los que sabemos hacerlo es un pequeño fastidio, pero para un usuario menos mañoso esto es un problema. No se podría asociar las versiones de los canales con las versiones del Addon? Dentro del ".xml" se pone un dato que especifique la versión mínima (y/o máxima) de pelisalacarta con la que es compatible, y el updater no actualiza el canal si no tiene dicha versión. Todos los canales que hay son para la versión 4.1.0, no son compatibles con la 4.0.9. Me parece un detalle importante, y si todos estáis liados con cosas mas complejas podría hacerlo yo, aunque ahora estoy liado.
No se si hacer un PR antes de que los cambios vayan a mas y tenga que vermelas con los conflictos. Que opinais??

Un saludo y muchas gracias por vuestras respuestas y vuestro tiempo.

Re: Dudas sobre mis primeros aportes y otras cosas

Publicado: 10 Jul 2016, 09:37
por jesus
SeiTaN escribió:
Jesús escribió:
kerenmac escribió: [*]En pelisalacarta y tvalacarta: Hace unos años el equipo de Kodi decidió "abandonar" las traducciones con "strings.xml" y pasarse a "strings.po" (la diferencia se puede observar aqui, y el proyecto no parece haber tenido el existo que esperaban por falta de colaboracion (aparentemente), asi que dejaron presente la compatibilidad con el antiguo sistema. Este sistema funciona con los addons, y aunque aun se "permite" la compatibilidad con "strings.xml" recomiendan usar el nuevo método. Hay incluso una herramienta que sirve para convertir de ".xml" a ".po". Mi duda es: Es mejor dejarlo todo como esta por que todo funciona bien así o se podría intentar pasar al nuevo sistema? En teoria si se cambia a "strings.po" no habría que modificar absolutamente nada mas.
Me parece bien, hay que dar una solución a plataformas no-kodi pero debería ser sencillo. Por mí adelante.
Los ficheros strings.xml son obligatorios hasta Frodo, a partir de la cual se puede usar strings.po o strings.xml, y si no recuerdo mal prevalece los .po

Un pequeño script y ya está hecho :)

Si quieres añadir los comentarios existentes en los ficheros strings.xml tan solo tienes que poner #. o #: para usar la nomenclatura, un ejemplo...

Código: Seleccionar todo

#. COMENTARIO PRINCIPAL
#: COMENTARIO SECUNDARIO
msgctxt "#30000"
msgid "Default player (XBOX only):"
msgstr "Reproductor (solo XBOX):"
Adjunto los ficheros.
Pensando en mantener un único fichero, ¿lo que hace tu script es convertir el xml en .po's?

Lo probaré y lo incluiré en el build.xml, para no tener los dos ficheros en Github y que la gente se líe acerca de cual tocar.

Re: Dudas sobre mis primeros aportes y otras cosas

Publicado: 10 Jul 2016, 09:49
por SeiTaN
jesus escribió: Pensando en mantener un único fichero, ¿lo que hace tu script es convertir el xml en .po's?
Si, primero creo el archivo en inglés, y luego con los otros idiomas, se genera el codigo de xml a po y se lee el de inglés po para añadir los 2 textos,

Código: Seleccionar todo

#. COMENTARIO PRINCIPAL
#: COMENTARIO SECUNDARIO
msgctxt "#30000"
msgid "Default player (XBOX only):"
msgstr "Reproductor (solo XBOX):"

Re: Dudas sobre mis primeros aportes y otras cosas

Publicado: 10 Jul 2016, 09:53
por jesus
kerenmac escribió:He ido haciendo mas cambios, según lo que me habéis comentado.
  • El primer fallo que cometí y he arreglado es lo del "import XBMC", por que no me di cuenta de que tiene que ser compatible con todas las plataformas.
  • Para tvalacarta borre la rama con los cambios de formato y he hecho un PR con el resto de los cambios.
Ya he mergeado el PR, gracias :)
kerenmac escribió:[*]Lo del formato lo voy haciendo poco a poco y dejando las modificaciones de lado archivándolas.
De momento pásate por el hilo que he abierto y comentamos cómo abordar el tema de PEP8, aún no está decidido.

Y los cambios de PEP8 en cualquier caso sólo en pelisalacarta, al menos de momento...
kerenmac escribió:[*]Para pelisalacarta he hecho un merge del develop oficial a mi rama, donde hice las modificaciones que aquí os comenté, y he resuelto los conflictos (sobretodo relacionados con "viemode" y "item.channel").
Anoche volví a hacer un merge, ahora las ramas master y develop están sincronizadas y tienen la versión 4.1.1.
kerenmac escribió:[*]He hecho los mismos cambios de tvalacarta en los canales de "favoritos" y "descargas" para poder usar el protocolo "special" en plataformas Kodi.
Perfecto
kerenmac escribió:[*]Al hacer el merge de develop y ver los cambios en "configuración", en la sección novedades he agregado "folder=False" para que visualmente sea mas agradable.
No se si entiendo lo que quieres decir, pero lo veremos.
kerenmac escribió:[*]Me puse a crear una función para crear un dialogo al pulsar sobre "Buscar actualizaciones" en "Configuración", pero al hacerlo en el "launcher" apareció un problema, puesto que tiene una variable llamada "version" que sale de "updater.checkforupdates()", pero no entiendo como modificarlo, por que esa función en el updater no tienen ningun "return", no se que es lo que le devuelve y/o como lo hace. El problema aparecio por que para el dialogo use un "return" con unas variables que crei necesarias para la nueva funcion. EDITO: He visto que se ha editado el archivo "updater.py" y ahora tiene un "return", pero en el antiguo no lo entiendo. Alguien me puede explicar como funcionaba??
Ha sido uno de los fallos entre versiones, divadres hizo el cambio para que devolviera la versión pero antes no funcionaba así. Yo lo ví, pensé que era yo el que había metido la pata, lo restauré y al final la liamos.

El resultado es que ahora todo vuelve a funcionar, y sólo hay que arreglar esa opción en "Configuración" para que use la nueva llamada :)
kerenmac escribió:[*]Lo de la traduccion demomento no lo tocare, por que por experiencia se que "si algo funciona BIEN no lo toques", y ademas hay otras prioridades.[/list]
Sí, es algo que hay que tener claro.

Piensa que otras plataformas necesitan el XML, así que no basta con actualizar. Hay que mantener ambas formas, así que mientras Kodi no descarte totalmente los XML yo no tocaría nada.
kerenmac escribió:Problema detectado + sugerencia/idea:
  • Dado que me encanta el sistema de "series.xml" y la version 4.0.9 no he actualizado aun a la 4.1.0, pero al entrar en un par de canales, como estan las versiones actualizadas (y adaptadas para la nueva versión) en la rama "master", estos se actualizaron, y se volvió imposible acceder a los canales por razones obvias. Manualmente he tenido que cambiar los canales por los antiguos. Para los que sabemos hacerlo es un pequeño fastidio, pero para un usuario menos mañoso esto es un problema. No se podría asociar las versiones de los canales con las versiones del Addon? Dentro del ".xml" se pone un dato que especifique la versión mínima (y/o máxima) de pelisalacarta con la que es compatible, y el updater no actualiza el canal si no tiene dicha versión. Todos los canales que hay son para la versión 4.1.0, no son compatibles con la 4.0.9. Me parece un detalle importante, y si todos estáis liados con cosas mas complejas podría hacerlo yo, aunque ahora estoy liado.
Normalmente eso no va a ser un problema, sólo lo está siendo ahora debido al cambio de versiones.

Piensa que lo habitual es que la versión de pelisalacarta sea la última, no tiene mucho sentido mantener versiones antiguas porque se quedan obsoletas enseguida. Y la actualización automática de canales está sin hacer (lo que hay ahora es la versión antigua).
kerenmac escribió:No se si hacer un PR antes de que los cambios vayan a mas y tenga que vermelas con los conflictos. Que opinais??

Un saludo y muchas gracias por vuestras respuestas y vuestro tiempo.
Lo mejor es que el PR lo hagas de funcionalidades específicas y las vemos una por una. Yo de momento no tocaría nada del updater (es una parte delicada) ni de las traducciones (por lo dicho).

Hablando de la configuración y si quieres ir cogiendo práctica, una cosa que puedes hacer y que está pendiente es añadir un enlace como el que hay a la configuración de "Novedades" y el "Buscador" pero para el resto de canales.

De esa forma cuando alguien quiera configurar sus cuentas no tiene que entrar canal por canal, y puede ir a configuración donde encontrará una lista de canales para poner lo que sea.

Re: Dudas sobre mis primeros aportes y otras cosas

Publicado: 10 Jul 2016, 17:02
por identidad_oculta
jesus escribió:...

Hablando de la configuración y si quieres ir cogiendo práctica, una cosa que puedes hacer y que está pendiente es añadir un enlace como el que hay a la configuración de "Novedades" y el "Buscador" pero para el resto de canales.

De esa forma cuando alguien quiera configurar sus cuentas no tiene que entrar canal por canal, y puede ir a configuración donde encontrará una lista de canales para poner lo que sea.
Me lo apunto. Soy un noob en python, así que no puedo ponerme con cosas muy complejas (y tampoco creo que debiera), así que me puedo dedicar a cosas mas sencillas como esta que has comentado u otros detalles visuales. Las cosas que tengo pensado hacer proximamente son:
  • Cambiar direcciones por defecto en config.py para Kodi, agregando el protocolo special para descargas.py y favoritos.py (para la libreria ya funcionaba)
  • Pasar lo de Actualizar los enlaces y la biblioteca (que esta en ayuda.py) al canal configuración.py
  • Pasar lo de la modificación de advancedsettings.xml (que ahora esta en ayuda.py) a los ajustes del add-on (podría ponerlo en canal configuracion.py, pero creo que al no ser algo muy usado no tendría por que estar tan a la vista). Desde los ajustes del add-on tendría que crear un archivo ".py" para poder lanzarlo con "action" y "RunScript", desde el canal configuracion.py solo tendría que hacer un copy&paste desde ayuda.py y adaptar lo que haga falta.
  • Filtro (estático o dinámico) de lista de servidores en el canal configuracion.py en vez del sistema de lista blanca y negra que hay actualmente.
  • (Tu propuesta) Pasar al canal configuracion.py los ajustes de los canales que hay an los ajustes del Add-on. Que titulo le pongo, "Ajustes de los canales" o "Usuario/contraseña de los canales" o cual?
Explico que quería decir con lo de "folder=False": Si se accede al canal configuración.py, al pulsar en algún lado y aparece un popup, tras darle a "OK" u otro botón desaparece el popup y no se queda en la ventana anterior, se crea una nueva carpeta o ventana vacía (con los típicos "..."). Al poner "folder=False" no se crean las ventanas varias tras salir de los popups en configuracion.py, visualmente queda mejor.

un saludo y gracias por tu respuesta.

EDITO: Todavía no se han resuelto todos los problemas que comente al iniciar el tema, probado con GIT y la version oficial, no hay manera de que JSON funcione. "Doctor Who" sigue sin aparecer en la biblioteca y cada vez que Kodi se inicia vuelve a agregar todos los archivos .strm. Como es que a nadie mas le pasa esto?