Página 1 de 1

Obtener thumbs, plot y fanarts mas rapido.

Publicado: 19 Feb 2017, 21:42
por Hernan_Ar_c
Buenas, espero estén todos de lo mejor. Esta vez quiero compartir con los compañeros desarrolladores esta idea que tuve ya que veo que hay muchas paginas en las que la sinopsis mayormente o en algunos casos lo thumbs de mejor calidad se encuentras en "sub" paginas para que se entienda en la pagina principal, o no hay sinopsis o el cartel de la película es de baja calidad. Para poder ver la sinopsis es necesario acceder a la siguiente pagina, o url de la pagina principal (no se si me hago entender). El tema es que si uno quiere mostrar la sinopsis en la lista de películas/series debe cargar la pagina siguiente y desde ahí obtener los datos necesarios o por lo menos creo que ese es el metodo, lo que conlleva mucho tiempo de carga.
Por eso se me ocurrió implementar threading en esos casos y la verdad que la diferencia de carga es bastante importante. Con todo esto paso este canal pelisplus (llamado pelisplus2) para que vean de lo que hablo con un ejemplo claro para comparar, y la idea es que observen las funciones set_external_info, get_external_info y get_external_info_now, para ver si se puede mejorar y agregarlo a httptools o scrapertools como solución a este tipo de problemas. Se que por ahí es medio chapucera la solución así que si ven en que se puede mejorar... ya saben

ah perdón ademas agregue una función para ordenar los itemlist por titulo en el código del item.py también lo dejo para que puedan probar

No se si es buena idea o habrá algún tipo de problema, mi intención es aportar, si es una tontería lo que digo por favor disculpen.

Re: Obtener thumbs, plot y fanarts mas rapido.

Publicado: 19 Feb 2017, 22:10
por Cmos
Buenas hernan, no creo que sea ninguna tontería lo que has pensado y está muy bien aplicado, además como dices la mayoría de canales no disponen de toda la info o imágenes en el listado. Pero a todo hay que verle las dos caras, y en este caso, tiene un par de pegas. La primera es que si por lo que sea la web va sobrecargada, el tiempo de espera va a aumentar, incluso aunque se extraiga la info a través de threads, y además de esta forma en lugar de una petición a la web estarías haciendo muchas (20/30... dependerá del número de items claro). Esto último a la larga puede ser perjudicial para la propia página y si ya nos tienen manía por saltarnos su publicidad no te digo nada si la saturamos de tráfico xD

Si te sirve el consejo, yo optaría más por utilizar la gran librería tmdb de la que disponemos, que ya está preparada para utilizar threads y de la cual podemos sacar la sinopsis, imágenes, fanarts...muy fácilmente y sin saturar la web del canal. En el caso de tu canal pelisplus hay una pega, que las búsquedas en tmdb pueden dar resultados equivocados si no se les indica el año y la web de pelisplus no especifica el año en su listado. Por suerte hay una solución, por lo que he visto esa web utiliza como thumbs imágenes alojadas en tmdb, y la librería tmdb tiene una opción para filtrar los resultados de búsqueda indicando lo que debe contener en tal campo la película solicitada (ya sea el thumb, el país, etc...)

Te pongo un ejemplo, un enlace a una imagen de las que hay en el canal sería esta: "https://image.tmdb.org/t/p/w154/68j7CNW ... xHfwSt.jpg". Pues puedes meter como filtro el nombre del jpg y hacer la búsqueda, de forma que solo reconozca la película que tenga ese thumb y el resto las ignore. Algo así hice en el canal oranline que ya pasó a mejor vida xD Te lo pongo por si quieres probarlo ;)

Código: Seleccionar todo

        filtro_thumb = scrapedthumbnail.replace("https://image.tmdb.org/t/p/w154", "")
        filtro_list = {"poster_path": filtro_thumb} #Nombre del campo a filtrar y valor en los resultados de la api de tmdb
        filtro_list = filtro_list.items()

        new_item = item.clone(action="findvideos", title=title, url=scrapedurl, thumbnail=scrapedthumbnail,
                              fulltitle=scrapedtitle, infoLabels={'filtro': filtro_list},
                              contentTitle=scrapedtitle, context="05", text_color=color1, viewmode="list")
        itemlist.append(new_item)

    try:
        tmdb.set_infoLabels_itemlist(itemlist, __modo_grafico__)
    except:
        pass

Re: Obtener thumbs, plot y fanarts mas rapido.

Publicado: 20 Feb 2017, 14:17
por Hernan_Ar_c
Gracias Cmos, la verdad no había pensado en las contras que tiene el método de threading y es verdad seria como muy abusivo hacer tantas llamadas a la pagina y podría terminar afectándonos a la larga como mencionas, por lo tanto no seria factible utilizarlo.
Esto es lo bueno de compartir ideas en este foro siempre hay alguien que te puede dar otra visión de las cosas. Voy a probar el método de tmdb, (la verdad no me interiorice en el tema :oops: ) así que le voy a dar una mirada a ver si puedo aplicarlo.