Página 3 de 6

Re: Biblioteca multi-web

Publicado: 01 Oct 2016, 11:03
por Lortropic
El library_service.py main()

Me da problemas con el tvshow.nfo que adjunto.

Concretamente peta aquí:

Código: Seleccionar todo

Traceback (most recent call last):
          File "/home/USER/.kodi/addons/plugin.video.pelisalacarta/library_service.py", line 143, in main
            serie = Item().fromjson(filetools.read(tvshow_file,1))
          File "/home/USER/.kodi/addons/plugin.video.pelisalacarta/core/item.py", line 328, in fromjson
            self.__dict__.update(JSONItem)
        TypeError: 'NoneType' object is not iterable
Porque los parsers jsons no pueden leer el nfo:

Código: Seleccionar todo

Traceback (most recent call last):
          File "/home/USER/.kodi/addons/plugin.video.pelisalacarta/core/jsontools.py", line 37, in loads
            return to_utf8(json.loads(*args, **kwargs))
          File "/usr/lib/python2.7/json/__init__.py", line 352, in loads
            return cls(encoding=encoding, **kw).decode(s)
          File "/usr/lib/python2.7/json/decoder.py", line 367, in decode
            raise ValueError(errmsg("Extra data", s, end, len(s)))
        ValueError: Extra data: line 1 column 13 - line 148 column 2 (char 12 - 4770)
Algo que jode parte del update es que en este pete ya deja de actualizar. Habría que poner un try por serie.

Si falla una al menos que siga con la siguiente.

Re: Biblioteca multi-web

Publicado: 01 Oct 2016, 11:10
por Lortropic
Otro problema es, también con el library_service.py main()

Este canal se queda "sin nombre" en los jsons.
1x13 [].json 1x13.nfo 1x13.strm

Cuando la añades si sale OK.

Edit: Estos 2 problemas pasan con el código del git. Lo he probado por si acaso era culpa mía por solo copiar X archivos, pero no.

Re: Biblioteca multi-web

Publicado: 01 Oct 2016, 11:49
por Lortropic
El problema del último es que en newpct1 se envía:

Código: Seleccionar todo

def episodios(item):
    # Necesario para las actualizaciones automaticas
    return completo(Item(url=item.url, show=item.show, extra= "serie_add"))
No añade el "item.channel".

Re: Biblioteca multi-web

Publicado: 01 Oct 2016, 12:01
por SeiTaN
Lortropic escribió:El problema del último es que en newpct1 se envía:

Código: Seleccionar todo

def episodios(item):
    # Necesario para las actualizaciones automaticas
    return completo(Item(url=item.url, show=item.show, extra= "serie_add"))
No añade el "item.channel".

Código: Seleccionar todo

def episodios(item):
    # Necesario para las actualizaciones automaticas
    return completo(Item(url=item.url, show=item.show, extra= "serie_add"))
Debería valer con lo siguiente.

Código: Seleccionar todo

def episodios(item):
    # Necesario para las actualizaciones automaticas
    return completo(item.clone(extra="serie_add"))

Re: Biblioteca multi-web

Publicado: 01 Oct 2016, 13:37
por super_berny
En primer lugar gracias de nuevo por colaborar.
Lortropic escribió:Bug en la ventana de selección de canal (si está activado el método "seleccionar canal previamente"): No se puede cancelar realmente! Le das a cancelar y te busca lo que tienes seleccionado
Aqui difiero de tu planteamiento, lo q hace si cancelas el cuadro es no filtrar por canal, es decir busca todos los enlaces de todos los canales disponibles. Prefiero q muestre todo el listado q los cuadros de error por haber cancelado.
De hecho creo q voy a añadir una opcion mas a la lista de canales q sea "Mostrar todos los canales" ¿como lo ves?

Código: Seleccionar todo

filtro_canal = ''
if len(list_canales) > 1 and config.get_setting("ask_channel") == "true":
        from platformcode import platformtools
        opciones = ["Mostrar solo los enlaces de %s" %k.capitalize() for k in list_canales.keys()]
        opciones.insert(0,"Mostrar todos los enlaces")
        index = platformtools.dialog_select(config.get_localized_string(30163), opciones)
        if index > 0:
            filtro_canal = opciones[index]

Lortropic escribió:Hay otro bug del mismo tipo (hay las selecciones canceladas... :lol:)

Tras darle a un episodio y que salga el menú de "Ver" "Descargar" "Buscar trailer".... (es decir, al entrar en el play_video). Si cancelamos hace un Buscar trailer... ya que el resultado es -1.
Aqui si q te doy la razon. El caso es q pense q estaba controlado dentro de set_opcion(item, seleccion, opciones, video_urls) (L#721), pero ya veo q no. Los metodos get_dialogo_opciones, get_seleccion y set_opcion no me acaban de gustar, habria q darles una vuelta, pero de momento aceptare tu propuesta.
Lortropic escribió:El problema ... es que en newpct1...
Por mucho q hayamos intentado q los cambios sean genericos y q funcionen con el mayor numero de canales, lamentablemente iran apareciendo errores de este tipo, aunque a medida q los vayamos descubriendo se podran solucionar con el minimo esfuerzo.
Lo mas gracioso de todo es q la funcion newpct1.episodios() la cree yo :lol: :lol: :lol:

Re: Biblioteca multi-web

Publicado: 01 Oct 2016, 13:51
por Lortropic
super_berny escribió:En primer lugar gracias de nuevo por colaborar.
Lortropic escribió:Bug en la ventana de selección de canal (si está activado el método "seleccionar canal previamente"): No se puede cancelar realmente! Le das a cancelar y te busca lo que tienes seleccionado
Aqui difiero de tu planteamiento, lo q hace si cancelas el cuadro es no filtrar por canal, es decir busca todos los enlaces de todos los canales disponibles. Prefiero q muestre todo el listado q los cuadros de error por haber cancelado.
De hecho creo q voy a añadir una opcion mas a la lista de canales q sea "Mostrar todos los canales" ¿como lo ves?
El cancelar tiene que cancelar y acabar. Era mi intención en ese punto. Si no lo hace no puedo cancelar nunca (por ejemplo, que te equivoques de episodio al darle, lo que quiero es quitarlo, no que me muestre todos los enlaces).

La opción extra de "Mostrar todos" me parece bien, pero el cancelar tiene que cancelar y acabar el proceso de reproducción.

Re: Biblioteca multi-web

Publicado: 01 Oct 2016, 13:55
por RiderOne
super_berny escribió: Gracias, pero es un trabajo conjunto con Seitan y divadr (y alguna que otra colaboracion externa).
Ya dije q la intencion es publicar una beta (me falta un conversor entre las actuales bibliotecas y esta nueva), pero me alegra ver q hay gente dispuesta a probar directamente desde github.
Y ya q estais:
  • ¿podeis probar los favoritos?
  • ¿Habeis probado los menus contextuales? ¿que os parecen? Me interesa tanto la opinion de usuarios finales como la de creadores de canales.
  • Tengo serios problemas con la funcion q actualiza la biblioteca ¿os funciona? ¿q scraper teneis por defecto?
[*]Si el titulo original tiene caracteres no ascii (tildes por ejemplo) falla[/list]
Hola ya he hecho más pruebas, si, actualiza las carpetas que pongo en favoritos, tambien actualiza la biblioteca correctamente cuando hay episodios nuevos.

En cuanto a las tildes creo que el problema está en filetools.py, si elimino la linea 358 path = normalize(path, respect), se añaden las series con caracteres no ascii, eso si, se añaden con tildes, así pude añadir sin problema Allí abajo y Mar de Plástico
Algún problema más debe de haber con los caracteres no ascii aparte de este, ya que al probar con series con tilde probé con Aída, una vez eliminada la linea mencionada la serie se añade pero da error en el 2º episodio de la 7º temporada, no es un problema de un canal he probado desde varios.

Re: Biblioteca multi-web

Publicado: 02 Oct 2016, 11:18
por super_berny
RiderOne escribió:Hola ya he hecho más pruebas, si, actualiza las carpetas que pongo en favoritos, tambien actualiza la biblioteca correctamente cuando hay episodios nuevos.
Entiendo q te funciona perfectamente tanto los favoritos como la actualizacion automatica de series. Perfecto.
La verdad es q nunca me habia mirado el tema de los favoritos, pero da mucho juego (podemos guardar cualquier cosa: canales, apartados dentro de un canal, series, etc...)

Cuando puedas mira lo de los menus contextuales a ver como te va.
RiderOne escribió:En cuanto a las tildes creo que el problema está en filetools.py, si elimino la linea 358 path = normalize(path, respect), se añaden las series con caracteres no ascii, eso si, se añaden con tildes, así pude añadir sin problema Allí abajo y Mar de Plástico
Algún problema más debe de haber con los caracteres no ascii aparte de este, ya que al probar con series con tilde probé con Aída, una vez eliminada la linea mencionada la serie se añade pero da error en el 2º episodio de la 7º temporada, no es un problema de un canal he probado desde varios.
Ok lo mirare a ver si le damos solucion.
RiderOne escribió:... las ventanas de filtro y de infromacion de la pelicula o serie me siguian dando error cuando la resolucion es mayor de 720p
La verdad es el tema de las ventanas aportan mucho, pero tb nos esta dando muchos problemas. Seguiremos trabajando en ello, gracias por tu aporte.
RiderOne escribió:¿En que codificación están los logs de pelisalacarta?
No enitendo muy bien la pregunta, pero la codificacion es UTF-8. Si lo q querias saber es donde encontrar el log mirate esto: http://www.mimediacenter.info/2012/10/2 ... isalacarta

Re: Biblioteca multi-web

Publicado: 02 Oct 2016, 12:41
por Cmos
Esto tengo que probarlo en cuanto me organice un poco (tengo el addon manga por hombro xD), pero a primera vista pinta de lujo, menudo trabajo habéis hecho :D Veo super_berny, que ya habéis avanzado también en el tema de los menús contextuales (lo estaba esperando!)y que el script de ExtendedInfo ya viene por defecto, con esto me ahorráis estar colgando archivos con cada nueva versión de pelisalacarta :lol:
super_berny escribió:
RiderOne escribió:... las ventanas de filtro y de infromacion de la pelicula o serie me siguian dando error cuando la resolucion es mayor de 720p
La verdad es el tema de las ventanas aportan mucho, pero tb nos esta dando muchos problemas. Seguiremos trabajando en ello, gracias por tu aporte.
No sé si os servirá, pero tras mi experiencia con las dichosas ventanitas en el mod de deportes, lo mismo os viene bien. Pensando en ese tema de las diferentes resoluciones y skins, en un principio lo abordé utilizando proporciones, pero acabó siendo un fracaso, además de ser un coñazo de calcular, al cambiar resoluciones se descuadraba todo. Entonces vi una función que incorpora xbmcgui que sirve para justamente eso, ajustar el contenido a diferentes resoluciones. Lo que hice es diseñar la ventana, los valores del .xml, con las medidas ajustadas a una resolución de 1080p y una vez se vayan a añadir los controles, indicar esto, creo que en el caso de vuestro archivo xbmc_info_window.py, iría dentro de onInit.

Código: Seleccionar todo

self.setCoordinateResolution(0)
De esta forma, Kodi se encarga de adaptar el contenido de la ventana a la resolución correcta tomando como referencia que esas medidas están ajustadas a 1080p. Aparte de eso, el archivo .xml lo copio tanto en la carpeta 720p como 1080i, ambos con las mismas medidas.

Re: Biblioteca multi-web

Publicado: 02 Oct 2016, 16:10
por Lortropic
Otro problema.

Este método:
def get_season_and_episode(title):

Lo único que hace es retornar parte del string que tiene el formato (\d+)[x|X](\d+)

Resulta que me he encontrado un canal donde ponen el formato sin ceros delante, es decir 1x1 por lo que al juntarlo con otro que si tiene, 1x01, no colisionan y se crea un: 1x1.strm y 1x01.strm

Una posible solución es que: filename=matches[0][0]+"x"+matches[0][1]
Retorne filename=int(matches[0][0])+"x"+int(matches[0][1])
o bien filename=matches[0][0]+"x"+matches[0][1].zfill(2)

Ahora bien, yo creo que no estaría mal que ese método retornara 2 ints:

Código: Seleccionar todo

def get_season_and_episode(title):
    ...
    return int(matches[0][0]), (matches[0][1])
Este método podría ser usado en los sitios donde ahora se hace un get_season_and_episode(t).split('x')

Además de tener otro método que retorne un string formateado siempre igual a partir de 2 ints:

Código: Seleccionar todo

get_season_and_episode_as_str(title):
    temp, ep = get_season_and_episode(title)
    return temp + "x" + str(ep).zfill(2)