Página 1 de 6

[BETA]'seriesblanco' con filtrado de enlaces

Publicado: 21 Nov 2015, 17:33
por SeiTaN
Buenas,

He hecho una modificación al canal para que dependiendo de la serie que listes, los enlaces que te muestren estén filtrados, ya sea por el idioma o por la calidad.

EPISODIO DE LA SERIE "FLASH"
Imagen

ANTES MOSTRABA TODOS LOS ENLACES
Imagen

AHORA MUESTRA SOLO LOS ENLACES FILTRADOS POR IDIOMA(VOS) Y POR CALIDAD PERMITIDA(TODOS MENOS 'SD')
Imagen

SI NO HAY ENLACES MOSTRARÍA UN TEXTO INFORMATIVO
Imagen
Esta imagen es ilustrativa debería poner "filtro [VOS]"


Esto es algo que tenía pendiente de hace bastante tiempo y yo hacía editando el fichero de datos, ahora es totalmente automatico desde el plugin.

Estos ajustes están guardado en un fichero "seriesblanco.data.json" de la carpeta userdata, por lo que si actualizamos la versión de pelisalacarta no se perderían los filtros.


COMO SE CONFIGURA

Se ha habilitado una opción al entrar en el canal.
Imagen

Una vez dentro se muestra el listado de las series filtradas, como no hay ninguna sólo se muestra la opción de añadir serie
Imagen

Pulsamos sobre el enlace, y nos sale la opción de "Buscar...", lo cual nos busca muestra el teclado para permitir buscar la serie que queramos en la web de seriesblanco. Yo he introducido el texto "the flash"

Una vez que la hemos encontrado y clickado sobre el nombre se vería así.
Imagen

Pulsamos sobre la opción de idioma y nos muestra los idiomas disponibles en la web
Imagen

Seleccionamos uno y nos vuelve a mostrar la página anterior con el idioma actualizado.
Imagen

seleccionamos sobre el filtro de "calidad no permitida" y nos muestra el teclado para que escribamos la calidad de los enlaces que no queramos.
"SD, hditunes", aceptamos y nos mostrara un enlace con el texto que hemos introducido y pulsamos si estamos de acuerdo para que filtre.

las calidades que no queremos que nos muestren deben estar separadas por "," y el nombre tiene que concordar con el nombre que sale en los enlaces, las mayusculas o minusculas da igual.

Después de los cambios lo veríamos tal que asi
Imagen

Pulsamos sobre guardar y si todo va bien no muestra el mensaje "FILTRO GUARDADO: pulse para volver al Listado", pulsamos y se muestra esta imagen
Imagen

Ya tenemos configurado el filtro para nuestra serie y los enlaces nos saldrán filtrados.
Imagen


COSAS PENDIENTES (TODO)
Tengo que pulir cosas como la navegación, a veces es un poco caótica al ir hacia atrás, limpiar código, e iré modularizando para que también pueda estar disponible en otros canales parecidos en un futuro.

quien quiera probarlo, se avisa de lo típico, haced una copia de seguridad de los ficheros de los dos ficheros que reemplazo.

Si teneis algún problema o algo que se podría mejorar soy todo "ojos"



------------

Ficheros modificados en el zip.

jsontools.py
Mejorado el metodo to_utf8

Código: Seleccionar todo

    def to_utf8(dct):
        if isinstance(dct, dict):
            return {to_utf8(key): to_utf8(value) for key, value in dct.iteritems()}
        elif isinstance(dct, list):
            return [to_utf8(element) for element in dct]
        elif isinstance(dct, unicode):
            return dct.encode('utf-8')
        else:
            return dct
seriesblanco.py
- ahora muestra si hay error al obtener los datos de la web, en esta página pasa mucho.
- añadida configuración de filtros por serie.
- añadido que se muestren solo los enlaces filtrados por la serie, en el caso que no haya filtro, se muestran los enlaces como siempre.

CHANGELOG
V2.5:
- renombradas variables y metodos para una mejor comprensión.
- eliminado codigo redundante.

V2.4:
- añadido los menus de listado por letra y todas las series para poder añadir el filtro.
- arreglado problema que no permitia borrar un filtro.

V2.3:
- añadido menu con el listado de las calidades.
- a través del listado se puede configurar la calidad permitida.

V2.2a (gestion de fichero data.json):
- si el fichero original es inválido se hace una copia de seguridad.
- no machaca el fichero entero al volver a guardar los datos, guardando solo el nodo de "SERIES".
- encode utf8 del fichero.
- mejora en el json.dumps, ya no guarda en ascii
- los filtros ahora se guardan siempre en minúsculas.

V2.2:
- mejorado rendimiento al filtrar los enlaces.
- mejorado el detalle de los logs.
- cambiado en jsontools el metodo utf8 y eliminado la referencia antigua a byteify

V2.1:
- arreglada referencia a dato erroneo.

V2:
- reestructurado codigo.
- cambiado el tratamiento de los datos de los filtros al obtenerlos del string.
- añadido método en jsontools.py para convertir string a json

Re: [BETA]'seriesblanco' con filtrado de enlaces

Publicado: 21 Nov 2015, 22:50
por robalo
Un hombre inquieto si señor :)

Supongo que habrá gente que le gustará todo eso aunque estén callados. La idea de de crear un archivo de configuracione personal para los canales con una misma estructura está bastante bien.

Este canal concretamente es el que más me gusta, el segundo es tengourl :) por su sencillez. De echo el que uso no tiene menú, entra directamente a las series, con eso te lo digo todo :lol:

Y ya que estás cambia el __category__ = "F" que lleva casi un año con la "F" ahí pegá :lol: :lol: :lol:

Re: [BETA]'seriesblanco' con filtrado de enlaces

Publicado: 21 Nov 2015, 23:09
por SeiTaN
Hola r0balo,

Es cuestión de que la gente de sus opiniones, lo más coñazo es la navegación con el menú, porque el "botón atrás" es como en javascript un "history.back(-1)", estaba pensando de si poner una parte de configuración desde la parte de añadir filtro, pero uno no está creando filtros continuamente.

¿La "F" se refiere a series?

Respecto al canal que dices ¿por que no agregas las series a la biblioteca? Aparte de tu "manía" con los scrapers :lol:

P.D: he dejado el código por si quieres ser conejillo de indias 8-)

Re: [BETA]'seriesblanco' con filtrado de enlaces

Publicado: 22 Nov 2015, 00:31
por robalo
A "history.back(-1)" llevamos nenoaveresabirra1978fresquita y yo dándole puñaladas algún tiempo y por mucho que lo mates, siempre se levanta en alguna parte de algún canal.

A nivel de skin existe para OSD estiquetas <onclick> para los botones, tambien repamear el teclado antes del evento, y mil historias más que nunca funciona bien en todos los canles, contenedores, equipos, SO, skin, ....

La "F" = __category__

Dices de agregar series a la biblioetca en tengourl? Depende en lo que esté trajinando, ahora mismo tiene el script para pasar todos los .xml de los canles a .py o no, espera... ahora tengo el script para pasar todos los .xml de los canales a .json. Por tengourl han pasado muchos pero muchos scripts :lol: :lol: :lol: :lol:

Lo de los scrapeos no es manía es lo que hay y no me disgusta. Lo que no me gusta es la googledepencia que hay en algunos diseñadores web. Hace poco se calló enterito google durante una hora a las 4 de la mañana hora española y no veas el cacao que había, no andaba casi ninguna página y la que andaba lo hacía fatal :lol: :lol: :lol: :lol:

No te preocupes que lo miraré, llámame raro, que lo soy, pero me gusta leer

Re: [BETA]'seriesblanco' con filtrado de enlaces

Publicado: 22 Nov 2015, 09:53
por cabarrar
Me encantan este tipo de innovaciones !!! a probar se ha dicho !!!!

Re: [BETA]'seriesblanco' con filtrado de enlaces

Publicado: 22 Nov 2015, 13:22
por robalo
Después de leer por encima el code me da la impresión que de las 6 descargas - 1 (la mia) que hay ahora mismo, no han usado mucho o nada de lo nuevo, y si alguno es de plex posiblemente ha eliminado el archivo y no ha dicho nada.


Te falta algo como esto:

Código: Seleccionar todo

        if not os.path.exists( os.path.join(config.get_data_path(), "channels") ): os.mkdir( os.path.join(config.get_data_path(), "channels") )
En plex "lib.simplejson" no creo que lo tenga nadie.

Re: [BETA]'seriesblanco' con filtrado de enlaces

Publicado: 22 Nov 2015, 13:45
por SeiTaN
robalo escribió: Te falta algo como esto:

Código: Seleccionar todo

        if not os.path.exists( os.path.join(config.get_data_path(), "channels") ): os.mkdir( os.path.join(config.get_data_path(), "channels") )
Cierto el directorio lo hice a mano, y no caí después es que se tiene que crear, lo hago.
robalo escribió: En plex "lib.simplejson" no creo que lo tenga nadie.
El tema de json tengo que darle una vuelta por que creo que estoy liandola mucho.


Gracias por el testeo :geek:

Re: [BETA]'seriesblanco' con filtrado de enlaces

Publicado: 22 Nov 2015, 16:38
por SeiTaN
Subida nueva versión.

@robalo, he pasado un poco la escoba, y arreglado lo que has dicho, quitado las dependencias de simplejson, y he hecho referencia a un nuevo método en jsontools.

En el caso de plex, que no se como va, he usado.

Código: Seleccionar todo

JSON.StringFromObject
Saludos

Re: [BETA]'seriesblanco' con filtrado de enlaces

Publicado: 22 Nov 2015, 18:43
por SeiTaN
v2.1 - arreglado un detallito que hacia que no se cargara bien la lista tras los últimos cambios.

Re: [BETA]'seriesblanco' con filtrado de enlaces

Publicado: 22 Nov 2015, 20:16
por robalo
@SeiTaN Sobre el tema de json lo fácil, al menos para mi, es pensar en lo que realmente es, una cadena de texto.
Si se quiere evitar complicaciones con el tema de compatibilidad entre plataformas o que debería usar "import json", "from core import jsontools" o "from lib import simplejson" lo mejor es olvidase de que existe :)

Soy soy algo retro y todo este tema lo veo como simples arrays.

En las modificaciones que has hecho en el primer archivo (ahora miraré el segundo) funciona igual de bien eliminando los imports a 'jsontools' y a 'simplejson'.

Te preguntarás, y qué hago con las líneas 'jsontools.load_json()' y 'simplejson.dumps()'?
Sencillo:
'json = jsontools.load_json(str)'
por
'exec "json = " + str'

'str = simplejson.dumps(json)'
por
'str = str(json)'

Así de fácil :)