Página 7 de 9

Re: Duda sobre la creación de canales

Publicado: 28 Ene 2019, 19:22
por caperucitaferoz
Tengo que pedirte perdon porque ultimamente hemos estado muy liados y no he tenido tiempo de mirar tu codigo.
Tanto es asi, q me cuesta saber en que punto lo dejamos. ¿Seria mucho pedir q me hicieses un resumen de que secciones agrupan o no agrupan por idioma y/o calidad?

A ver si con eso puedo comenzar de nuevo a analizar el canal.

Re: Duda sobre la creación de canales

Publicado: 29 Ene 2019, 20:14
por devalls
Por supuesto caperucitaferoz... :mrgreen:
Lo primero es lo primero, y yo no tengo prisa. Además no hay que olvidar que esto es un hobby y como tal, hay que disfrutarlo. ;)

¿Empezamos?

HDTorrents v4 features:
  • Sección Novedades:
    • Muestra la lista de los últimos torrent añadidos a la web.
    • Cada title con su idioma y calidad, muestra su correspondiente torrent.
    • La lista agrupa title con los idiomas y calidades de esos title repetidos y muestra los torrent correspondientes a esos title.
    • Esta sección NO muestra todos los torrent que pueda haber en la web. --> Esto es debatible.
  • Sección Top ten torrent:
    • Muestra la lista de los torrent mas vistos/descargados en la web.
    • Cada title con su idioma y calidad, muestra su correspondiente torrent.
    • Esta sección NO agrupa title.
  • Sección En portada: (Esta sección es la que me preocupa por la merma en el rendimiento al capturar tantos datos).
    • Muestra la lista de los torrent de la portada de la web.
    • Cada title muestra todos los idiomas y calidades que encuentra para ese title en la web y lista todos sus torrent.
    • Esta sección agrupa title, idiomas y calidades.
  • Sección Filtrar por calidad: --> Funciona de manera similar a la sección Novedades.
    • Muestra la lista de las calidades de la web.
    • Cada calidad muestra la lista de los torrent asociados a esa calidad.
    • La lista agrupa title con los idiomas y calidades de esos title repetidos y muestra los torrent correspondientes a esos title.
    • Esta sección NO muestra todos los torrent que pueda haber en la web.
  • Sección Buscar: --> Funciona de manera similar a la sección En portada.
    • Muestra la lista de los torrent que coinciden con la palabra clave de la búsqueda.
    • Cada title muestra todos los idiomas y calidades que encuentra para ese title en la web y lista todos sus torrent.
    • Esta sección agrupa title, idiomas y calidades.
Además, he solucionado el tema de los title con menos de 3 caracteres con el mismo método que uso en Novedades y Filtrar por calidad, es decir, creando una lista con las URLs de esos title, que findvideos trata como tal.

Esta versión también corrige un par de cambios en la web (modificación de patrones).
Creo que hay algunas modificaciones más, pero yo también he perdido un poco el hilo después de reinstalar todo el sistema.
Además el IDE que usaba para escribir el código no me funciona en mi sistema actual y todavía me estoy haciendo a su sustituto, así que no he revisado ni limpiado el código... :oops:

Para cualquier duda y/o apreciación sobre el código, aquí estoy. :D

Saludos.

Re: Duda sobre la creación de canales

Publicado: 30 Ene 2019, 13:52
por caperucitaferoz
Empecemos pues...
Te he reescrito las funciones "movies" y "search" al completo. Miratelas y si algo no te cuadra me lo preguntas ya q el cambio ha sido muy profundo. Te dejo renombradas tu versiones para q puedas comparar funcionamiento si quieres.

Me queda pendiente el apartado "En portada" y la funcion "findvideos".

Sobre esta ultima.. una de las cosas q mas tiempo emplea (sino la que mas) en el proceso de obtener un itemlist cualquiera son las descargas desde la web. Por eso hemos de intentar minimizarlas, por ejemplo si para obtener la sinopsis hemos de descargar cada una de las paginas de las peliculas en el listado de 'movies' pues lo descartamos (la sinopsis, si la tenemos bien, pero sino ya la añadira tmdb si es posible). Otros ejemplos donde los puedes ver es en findvideos: te descargas la misma web creo q hasta 3 veces!!!
En otros casos no habra mas remedio (ya lo veremos en la portada), pero en esos caso intentaremos utilizar los multihilos q en python para estos temas funcionan muy bien :D

Re: Duda sobre la creación de canales

Publicado: 31 Ene 2019, 12:25
por caperucitaferoz
continuo... mientras espero tus dudas/comentarios.

En esta ocasion he creado la primera version de 'En portada'. Creo q funciona como tu querias, aunque como ya preveiamos es bastante lenta (25 peticiones a la web). En la proxima version implementaremos los hilos, pero era importante q entendieses como se hacen las busquedas secuenciales y como se descartan resultados si los titulos no son coincidentes. Fijate q para hacer la comparacion entre el titulo buscado y los encontrados empleamos la funcion auxiliar normalizar que ya se incluia en el codigo de ayer. Esto nos permite considerar como iguales dos titulos q solo difieran alguna tilde o donde uno de ellos este capitalizado y el otro no.

Otra cosa que he implementado es una idea que se comento, pero parece q quedo un poco en el aire: las etiquetas extras para el caso de MicroHd. Ahora si el resultado de un listado no se agrupan y alguno de ellos es un microHD, indempendientemente de q la calida se marque como HDFull, se añade al final una etiqueta extra de color amarillo identificandolo.
Es una lastima q la web no incluya el tamño de los torrents, por q ese dato si lo considero importante. No obstante podrias implementar el truco de las etiquetas extras para los microHd en la funcion findvideos.

El codigo esta lleno de comentarios y muchos logger.debug() para que puedas comprobar como funciona.

Re: Duda sobre la creación de canales

Publicado: 31 Ene 2019, 20:54
por devalls
caperucitaferoz escribió:
30 Ene 2019, 13:52
Empecemos pues...
Te he reescrito las funciones "movies" y "search" al completo. Miratelas y si algo no te cuadra me lo preguntas ya q el cambio ha sido muy profundo. Te dejo renombradas tu versiones para q puedas comparar funcionamiento si quieres.

Me queda pendiente el apartado "En portada" y la funcion "findvideos".

Sobre esta ultima.. una de las cosas q mas tiempo emplea (sino la que mas) en el proceso de obtener un itemlist cualquiera son las descargas desde la web. Por eso hemos de intentar minimizarlas, por ejemplo si para obtener la sinopsis hemos de descargar cada una de las paginas de las peliculas en el listado de 'movies' pues lo descartamos (la sinopsis, si la tenemos bien, pero sino ya la añadira tmdb si es posible). Otros ejemplos donde los puedes ver es en findvideos: te descargas la misma web creo q hasta 3 veces!!!
En otros casos no habra mas remedio (ya lo veremos en la portada), pero en esos caso intentaremos utilizar los multihilos q en python para estos temas funcionan muy bien :D
caperucitaferoz escribió:
31 Ene 2019, 12:25
continuo... mientras espero tus dudas/comentarios.

En esta ocasion he creado la primera version de 'En portada'. Creo q funciona como tu querias, aunque como ya preveiamos es bastante lenta (25 peticiones a la web). En la proxima version implementaremos los hilos, pero era importante q entendieses como se hacen las busquedas secuenciales y como se descartan resultados si los titulos no son coincidentes. Fijate q para hacer la comparacion entre el titulo buscado y los encontrados empleamos la funcion auxiliar normalizar que ya se incluia en el codigo de ayer. Esto nos permite considerar como iguales dos titulos q solo difieran alguna tilde o donde uno de ellos este capitalizado y el otro no.

Otra cosa que he implementado es una idea que se comento, pero parece q quedo un poco en el aire: las etiquetas extras para el caso de MicroHd. Ahora si el resultado de un listado no se agrupan y alguno de ellos es un microHD, indempendientemente de q la calida se marque como HDFull, se añade al final una etiqueta extra de color amarillo identificandolo.
Es una lastima q la web no incluya el tamño de los torrents, por q ese dato si lo considero importante. No obstante podrias implementar el truco de las etiquetas extras para los microHd en la funcion findvideos.

El codigo esta lleno de comentarios y muchos logger.debug() para que puedas comprobar como funciona.
:o :o :o :o :o :o :o :o :o :shock: :shock: :shock: :shock: :shock: :shock: :shock:
Apenas he empezado a estudiar tu primera modificación y ya tengo otra pendiente... :oops: :oops: :oops:

Comentaré por encima mis primeras impresiones, pero me reservo el derecho a preguntar mis dudas mas adelante :lol: :lol: :lol:
-El uso del patrón en movies es soberbio. Yo ni me había dado cuenta de la similitud...

-Agrupar en item.query debería ser True. La única sección que no agrupa title es Top ten torrents por su caracter de torrents mas vistos/descargados.

-Cuando limpiamos el title de adjetivos no deseados, se aplica un strip() que en tu código no es efectivo, ya que ese title todavía conserva los atributos de idioma y calidad. Si quieres probar, usa la sección buscar (acuerdate de agrupar=True) con la palabra clave deadpool --> apareceran dos title como Deadpool 2 a pesar de que debería agrupar porque uno tiene 1 espacio al final y el otro 2. La solución podría ser añadir title = title.strip() al final de la nueva función idioma_calidad(title)

-Entiendo lo que hace la función normalizar, pero esa parte del código escapa a mis conocimientos sobre python... :oops:

-Convertir la calidad a minúscula para no tener variaciones me parece un acierto para simplificar código. Otro ejemplo en el que no había caído... :oops:

-Probando Portada, me he dado cuenta de que no agrupa. Es un poco raro ver dos titulos en la misma lista que muestran los mismos enlaces. :)

De momento, como duda no acabo de entender el uso que haces del diccionario -auxdict- en la función movies... Quizás porque estoy mas acostumbrado a ver los dict como los uso en mis funciones... :cry:

Además, me queda pendiente estudiar la función Portada, aunque para seguir con la estética del resto de secciones se podría modificar el item quality para ordenar las calidades: :mrgreen:

Código: Seleccionar todo

        if list_urls:
            itemlist.append(item.clone(
                url= list_urls,
                quality=sorted(list(calidades), key=lambda c: c.level, reverse=True),  # list(calidades),
                lang=list(idiomas)
            ))
Seguro que me dejo cosas, pues tengo mucho que estudiar y el tiempo no me da para más. Y por si fuera poco, estoy deseando ver el tema de los hilos. :lol: :lol: :lol:

Saludos.

Re: Duda sobre la creación de canales

Publicado: 01 Feb 2019, 08:34
por caperucitaferoz
devalls escribió:
31 Ene 2019, 20:54
Apenas he empezado a estudiar tu primera modificación y ya tengo otra pendiente...

Comentaré por encima mis primeras impresiones, pero me reservo el derecho a preguntar mis dudas mas adelante
-El uso del patrón en movies es soberbio. Yo ni me había dado cuenta de la similitud...

-Agrupar en item.query debería ser True. La única sección que no agrupa title es Top ten torrents por su caracter de torrents mas vistos/descargados.
Pues espabila que tengo lista la tercera con los hilos!!! No, es broma. La tengo lista pero no la publicare hasta q hayas asimilado esta y tu me lo pidas.
Sobre el patron: Tu utilizas la forma canonica (poner nombre a las capturas) que a mi no me gusta (aunque en ocasiones la haya utilizado). Las expresiones regulares ya son de por si algo complejo de entender como para irle añadiendo cosas al patron!!!
No lei bien lo de la agrupacion de las busquedas. Pero como has podido deducir es muy sencillo cambiarlo ¿cierto?
devalls escribió:
31 Ene 2019, 20:54
-Cuando limpiamos el title de adjetivos no deseados, se aplica un strip() que en tu código no es efectivo, ya que ese title todavía conserva los atributos de idioma y calidad. Si quieres probar, usa la sección buscar (acuerdate de agrupar=True) con la palabra clave deadpool --> apareceran dos title como Deadpool 2 a pesar de que debería agrupar porque uno tiene 1 espacio al final y el otro 2. La solución podría ser añadir title = title.strip() al final de la nueva función idioma_calidad(title)
Por fin he entendido de donde salia lo de "The Super Duper Cut"!!!! El problema q comentas con esta pelicula no esta en el strip final q utilizo para asegurarme q la calida esta al final del titulo (fijate en el $ del patron que busca la calidad). El problema es que justo antes de 'The' hay un espacio q no se elimina con el re.sub. La patron de la subtitucion debe incluir ese espacio en blanco previo (lo hice con 3D pero se me paso con el resto de adjetivos).
Por cierto, no tengo muy claro que 'V.Extendida' y este 'The Super Duper Cut' sean adjetivos a eliminar. Creo q no es la misma pelicula el metraje estandar q la version extendida o remontada y no deberian agruparse. Lo que si serian adjetivos son incluir 3D en el titulo cuando ya lo tenemos en la calidad o descripciones del tipo de compresion de video o audio (DTS o MKV por ejemplo)
devalls escribió:
31 Ene 2019, 20:54
-Entiendo lo que hace la función normalizar, pero esa parte del código escapa a mis conocimientos sobre python...

-Convertir la calidad a minúscula para no tener variaciones me parece un acierto para simplificar código. Otro ejemplo en el que no había caído...

-Probando Portada, me he dado cuenta de que no agrupa. Es un poco raro ver dos titulos en la misma lista que muestran los mismos enlaces.
Lo importante aqui es q entiendas porque se 'normalizan' los titulos...para el resto "Google es tu amigo" (y el mio no te creas :lol:)
Despues de enviarte la version de ayer me di cuenta de q portada() no agrupaba. Ya esta corregido.
devalls escribió:
31 Ene 2019, 20:54
De momento, como duda no acabo de entender el uso que haces del diccionario -auxdict- en la función movies... Quizás porque estoy mas acostumbrado a ver los dict como los uso en mis funciones...
Bueno un diccionario siempre es un diccionario y creo q lo usamos del mismo modo (para saber si un titulo ya esta añadido o es nuevo y añadirlo o ampliarlo consecuentemete). La unica diferencia q veo es q tu guardabas un diccionario como valor asociado a cada clave title y yo guardo una tupla (int, item) compuesta por un entero (para mantener el orden de la lista) y un objeto item.
devalls escribió:
31 Ene 2019, 20:54
para seguir con la estética del resto de secciones se podría modificar el item quality para ordenar las calidades:
Cierto tomo nota. Y hablando de ordenar... en la funcion findvideos no se deberian ordenar los servidores ya que hay un parametro en la configuracion de servidores precisamente para hacer eso.
devalls escribió:
31 Ene 2019, 20:54
Seguro que me dejo cosas, pues tengo mucho que estudiar y el tiempo no me da para más. Y por si fuera poco, estoy deseando ver el tema de los hilos.
Se te paso comentar el tema del label_extra :cry: con lo bonito q me ha quedado :lol:

Y cuando quieras hilos, no tienes mas q pedirlos... :lol: :lol: :lol:

Re: Duda sobre la creación de canales

Publicado: 02 Feb 2019, 18:41
por devalls
caperucitaferoz escribió:
01 Feb 2019, 08:34
Por fin he entendido de donde salia lo de "The Super Duper Cut"!!!! El problema q comentas con esta pelicula no esta en el strip final q utilizo para asegurarme q la calida esta al final del titulo (fijate en el $ del patron que busca la calidad). El problema es que justo antes de 'The' hay un espacio q no se elimina con el re.sub. La patron de la subtitucion debe incluir ese espacio en blanco previo (lo hice con 3D pero se me paso con el resto de adjetivos).
Solo tenías que preguntar!!! :lol: :lol: :lol:
El strip() del que hablaba es el del re.sub, NO el $ de la nueva función idioma_calidad(title). Aunque poner un espacio en el patrón de sustitución también solucionaría el 'problema'.
caperucitaferoz escribió:
01 Feb 2019, 08:34
Por cierto, no tengo muy claro que 'V.Extendida' y este 'The Super Duper Cut' sean adjetivos a eliminar. Creo q no es la misma pelicula el metraje estandar q la version extendida o remontada y no deberian agruparse. Lo que si serian adjetivos son incluir 3D en el titulo cuando ya lo tenemos en la calidad o descripciones del tipo de compresion de video o audio (DTS o MKV por ejemplo)
Estoy de acuerdo.
TMDB es la razón por la que me decidí a eliminarlos, ya que si se usa TMDB, dicha búsqueda da 3 resultados:
-Deadpool 2
-Deadpool 2 V.Extendida
-Deadpool 2
La 1a es The super duper cut, la 2a V.ext y la 3a es la normal.
En fin... Saca tu las conclusiones... El problema sigue siendo el etiquetado de título que usa la web.
Si te parece, podemos eliminar ambos 'adjetivos'.
caperucitaferoz escribió:
01 Feb 2019, 08:34
Lo importante aqui es q entiendas porque se 'normalizan' los titulos...para el resto "Google es tu amigo" (y el mio no te creas :lol:)
Entiendo lo de normalizar y a mi modo, lo intenté con title.strip().capitalize(), aunque seguía teniendo el problema con las marcas diacríticas. :oops:
Puedo asegurarte que google y yo somos amigos desde hace muuuuucho, :mrgreen: aunque hay que saber que buscar para encontrar algo.
caperucitaferoz escribió:
01 Feb 2019, 08:34
Bueno un diccionario siempre es un diccionario y creo q lo usamos del mismo modo (para saber si un titulo ya esta añadido o es nuevo y añadirlo o ampliarlo consecuentemete). La unica diferencia q veo es q tu guardabas un diccionario como valor asociado a cada clave title y yo guardo una tupla (int, item) compuesta por un entero (para mantener el orden de la lista) y un objeto item.
uhmmm... Ahora lo veo mas claro, aunque no estoy acostumbrado al nivel avanzado...
¿Puedes recomendarme alguna lectura al respecto?
caperucitaferoz escribió:
01 Feb 2019, 08:34
Cierto tomo nota. Y hablando de ordenar... en la funcion findvideos no se deberian ordenar los servidores ya que hay un parametro en la configuracion de servidores precisamente para hacer eso.
:o :roll: :roll: No me había dado cuenta!!! :lol: :lol: :lol:
caperucitaferoz escribió:
01 Feb 2019, 08:34
Se te paso comentar el tema del label_extra :cry: con lo bonito q me ha quedado :lol:
No. En realidad no se me pasó. Lo evité deliberadamente. :D Quería probarlo y entenderlo antes de comentarlo.
Me parece una opción muy buena para añadir etiquetas especiales, siempre que no se abuse de ella... Incluso se podría etiquetar Deadpool 2 The super duper cut para diferenciarla de la normal. 8-) --> No he podido evitar probarlo!!! :lol: :lol: :lol:
El potencial es enorme y la estética sublime. :geek:

No quiero acabar sin comentar estos otros temas:

Código: Seleccionar todo

                    poster=poster.replace('t.jpg', '.jpg'),
Esta parte de código demuestra hasta que punto analizas las webs. :o Chapeau

En la función Search se te ha pasado un itemlist = list() Desde tu modificación, dicha función no devuelve una lista. ;)

La función portada y su búsqueda secuencial la comprendo, aunque no se me ocurrió plantearla de esa manera. :(

PD: Sigo estudiando el uso del diccionario en la función movies en agrupar. :geek:
Puedes colgar la nueva versión cuando quieras, por supuesto.

Saludos.

Re: Duda sobre la creación de canales

Publicado: 04 Feb 2019, 17:34
por caperucitaferoz
devalls escribió:
02 Feb 2019, 18:41
La 1a es The super duper cut, la 2a V.ext y la 3a es la normal.
En fin... Saca tu las conclusiones... El problema sigue siendo el etiquetado de título que usa la web.
Si te parece, podemos eliminar ambos 'adjetivos'.
El problema mas q en el etiquetado del titulo en la web esta en q ese corto no esta en TMDB y por lo tanto lo mas similar es la version normal. En general las versiones extendidas no estan demsiado bien implementadas en la BBDD de TMDB, pero segun ellos estan trabajando para solucionarlo... Ala Koke otro mes q no cobras!!!
Por otra parte no puedes ir añadiendo los subtitulos de las ediciones especiales segun te encuntres por q seria una locura. Yo creo q es mejor q salga en 3 items, aunq no esten debidamente etiquetadas, que agurpar todas en un unico item.
devalls escribió:
02 Feb 2019, 18:41
uhmmm... Ahora lo veo mas claro, aunque no estoy acostumbrado al nivel avanzado...
¿Puedes recomendarme alguna lectura al respecto?
No se si es esto lo q te confunde, pero una tupla es un tipo de datos como lo son las listas, los diccionarios o los conjuntos (set).
Sobre python no tengo ningun libro q recomendarte...pero "Sin noticias de Gurb" de Eduardo Mendoza es un buen libro para recomendar :lol: :lol: :lol:
devalls escribió:
02 Feb 2019, 18:41
Me parece una opción muy buena para añadir etiquetas especiales, siempre que no se abuse de ella... Incluso se podría etiquetar Deadpool 2 The super duper cut para diferenciarla de la normal. --> No he podido evitar probarlo!!!
El potencial es enorme y la estética sublime.
Tu mismo lo has dicho, de esto no se puede abusar!!!
devalls escribió:
02 Feb 2019, 18:41
Puedes colgar la nueva versión cuando quieras, por supuesto.
Sus deseos son...
Fijate en el log cuando ejecutes En portada Con y Sin hilos

Re: Duda sobre la creación de canales

Publicado: 06 Feb 2019, 19:53
por devalls
caperucitaferoz escribió:
04 Feb 2019, 17:34
...
Yo creo q es mejor q salga en 3 items, aunq no esten debidamente etiquetadas, que agurpar todas en un unico item.
Bien... Esperaremos a esa implementación en la que esta trabajando el equipo de TMDB... Koke espabila!!! :lol:
caperucitaferoz escribió:
04 Feb 2019, 17:34
No se si es esto lo q te confunde, pero una tupla es un tipo de datos como lo son las listas, los diccionarios o los conjuntos (set).
Sobre python no tengo ningun libro q recomendarte...pero "Sin noticias de Gurb" de Eduardo Mendoza es un buen libro para recomendar :lol: :lol: :lol:
:lol: :lol: :lol:
Me refería mas bien a nuestro amigo Google, pero si quieres hablar de literatura...
[OFFTOPIC]
"Sin noticias de Gurb" lo leí hace ya algún tiempo, pero si te soy sincero, creo que Eduardo Mendoza tiene mejores obras.
Yo recomendaría "El laberinto de las aceitunas", pero hay que puntualizar que es la 2a obra de una trilogia.
Mas info: "Eduardo Mendoza".
[/OFFTOPIC]
:mrgreen:
caperucitaferoz escribió:
04 Feb 2019, 17:34
Fijate en el log cuando ejecutes En portada Con y Sin hilos
La verdad es que imaginaba una mejora en los tiempos, pero el resultado es abrumador. :o
La diferencia entre búsqueda secuencial y simultanea queda patente en este ejemplo.
Sobre el código que lanza los hilos, nada que objetar. Entiendo lo que hace, aunque desconocía que se podía hacer... Ya tengo deberes para Google. :mrgreen:

Pasando al código del canal...
Al final de la función movies tenemos el item next_page que no debería mostrarse en Top ten torrents, pero si en el resto de secciones.
Quizás debería ir precedido de:

Código: Seleccionar todo

    if item.label != "Top ten torrents":
También he probado label_extra en la función findvideos que resulta muy útil en secciones donde se muestran varios enlaces torrent, pero resulta redundante cuando se accede al filtrado por calidad...

Por cierto, modificando findvideos me he dado cuenta de algo que mencionaste algunos post atrás... Descargaba la misma web hasta 3 veces!!! :oops: :lol: :lol: :lol: Además, después de los arreglos que has introducido, le sobra la mitad del código! :lol: :lol: :lol:

Saludos.

Re: Duda sobre la creación de canales

Publicado: 07 Feb 2019, 20:55
por caperucitaferoz
Sobre el canal... despues del empujoncito te dejo continuar por donde creas q es mejor.

Sobre literatura... Conozco bien la bibliografia de Mendoza y reconozco q puede no ser su mejor libro, pero Gurb siempre tendra un lugar reservado en mi biblioteca y en mi corazon :lol: