Página 8 de 9

Re: Duda sobre la creación de canales

Publicado: 17 Feb 2019, 20:13
por devalls
Antes de empezar, he de pedir disculpas por demorarme tanto en responder.
El tiempo del que dispongo no es demasiado y me tiene que cundir para todo. :roll:
caperucitaferoz escribió:
07 Feb 2019, 20:55
Sobre el canal... despues del empujoncito te dejo continuar por donde creas q es mejor.
Puedes llamarlo 'empujoncito', pero ambos sabemos que me sacaste de la pista... :lol: :lol: :lol: Eso si, de forma elegante. :D
He aprendido la lección. Antes de sacar nueva versión, plantearé los cambios. :mrgreen:

¿Empezamos?
  • He reescrito la función findvideos desde 0 y eliminado las viejas funciones _old.
  • Para obtener el torrent hay que hacer una nueva descarga. En el código hay 2 opciones, pero no sabría decir cual es mejor ni porque... ¿Otro 'empujoncito'? :?:
  • A la hora de capturar el torrent, me he encontrado que la web no siempre genera el link correctamente, así que he decidido contemplar la excepción y no añadirlo al itemlist si no es correcto. Así el usuario final no recibirá un error al reproducir y no habrá reporte por un fallo que no es del canal, sino de la web.
  • El punto anterior genera otro 'problema'. Puede que una película no muestre enlaces si no han sido generados correctamente, así que de nuevo contemplo la excepción y hago uso de label_extra para evitar, una vez mas, un posible reporte...
  • Finalmente, muy a mi pesar. :lol: :lol: :lol: no ordeno los resultados por calidad, ya que existe esa opción en la configuración general de servidores... ;)
A la hora que escribo este post, el tema de los torrent mal generados ya esta solucionado en la web y no he encontrado ningún enlace para reproducir el error, aún así, he mantenido el código.
He dejado comentarios en el código que hacen referencia a lo expuesto en este post.

PD: También he añadido un condicional a la función movies para que no muestre next_page en Top ten torrents, ya que todas las páginas muestran los mismos 10 títulos.

Saludos.

Re: Duda sobre la creación de canales

Publicado: 25 Feb 2019, 18:40
por devalls
Seguimos...

He hecho algunos cambios mas que paso a detallar:
  • He añadido a la función sub_busqueda() un condicional por si aparece algún title con menos de 3 caracteres.
  • También he limitado la longitud de los caracteres a buscar con item.title[:50] en la url de búsqueda.
  • En las funciones portada() se nos olvidó limpiar el title de adjetivos no deseados... En lugar de añadirlo, lo he quitado de movies() para añadirlo a la función idioma_calidad(title)
  • También he comentado la función portada_sin_hilos() y el item del menú al que hace referencia.
He dejado comentarios en el código para que se comprendan mejor los cambios mencionados.

Ahora creo que el canal esta terminado, salvo que se me haya pasado algo...
Antes de lanzar nueva versión, dejo aquí el código para testear.

Saludos.

Re: Duda sobre la creación de canales

Publicado: 25 Feb 2019, 20:52
por caperucitaferoz
devalls escribió:
17 Feb 2019, 20:13
A la hora que escribo este post, el tema de los torrent mal generados ya esta solucionado en la web y no he encontrado ningún enlace para reproducir el error, aún así, he mantenido el código.
Entonces es necesario o no?
devalls escribió:
17 Feb 2019, 20:13
El punto anterior genera otro 'problema'. Puede que una película no muestre enlaces si no han sido generados correctamente, así que de nuevo contemplo la excepción y hago uso de label_extra para evitar, una vez mas, un posible reporte...
umm yo no usaria el label_extra para esto. label_extra esta reservado para una informacion complementaria a lo que viene siendo la construccion de la etiqueta q segun el skin hace el perfil seleccionado. Si quieres marcar esto podrias hacerlo con un item tipo label, aunque yo prefiero no generar nada y q el codigo comun indique que no hay enlaces (mas q nada para evitar cosas raras con buscador global, novedades o cualquier otra cosa asi). Recuerda q buscamos canales con la maxima homogeneidad.
devalls escribió:
25 Feb 2019, 18:40
En las funciones portada() se nos olvidó limpiar el title de adjetivos no deseados... En lugar de añadirlo, lo he quitado de movies() para añadirlo a la función idioma_calidad(title)
En findvideo tambien se podria eliminar.
devalls escribió:
17 Feb 2019, 20:13
Para obtener el torrent hay que hacer una nueva descarga. En el código hay 2 opciones, pero no sabría decir cual es mejor ni porque... ¿Otro 'empujoncito'?
Pero las dos obtienen el mismo enlace o es posible q el scraper no lo encunetre y al cargar la otra pagina si. Si es asi primero scrapeamos (menos recursos) y si no hay resultado usamos el metodo alternativo.

No has cambiado las calidades a minusculas, ciertamente nos ahorramos muchas excepciones.

Re: Duda sobre la creación de canales

Publicado: 26 Feb 2019, 20:23
por devalls
caperucitaferoz escribió:
25 Feb 2019, 20:52
Entonces es necesario o no?
No.
En principio, si la web funciona como debe, el código no es necesario.
Aún así, teniendo en cuenta que no consume recursos, yo prefiero mantenerlo...
La razón es simple: Cabe la posibilidad que la web vuelva a generar un enlace torrent NO válido y si se añade, fallará al lanzarlo.
Prefiero no generar nada a tener la posibilidad de listar algo que se que fallará. ;)
Necesitarás un argumento mas sólido si quieres convencerme. :mrgreen:
caperucitaferoz escribió:
25 Feb 2019, 20:52
umm yo no usaria el label_extra para esto. label_extra esta reservado para una informacion complementaria a lo que viene siendo la construccion de la etiqueta q segun el skin hace el perfil seleccionado. Si quieres marcar esto podrias hacerlo con un item tipo label, aunque yo prefiero no generar nada y q el codigo comun indique que no hay enlaces (mas q nada para evitar cosas raras con buscador global, novedades o cualquier otra cosa asi). Recuerda q buscamos canales con la maxima homogeneidad.
Aquí si te doy la razón.
En realidad mi primera opción fue usar label y no label_extra, pero no puedes darme un 'juguete' nuevo y esperar que no 'juegue' con el. :lol: :lol: :lol:
Lo he rectificado, pero en este apartado si que me has convencido y dejaré que el código común indique que no ha encontrado enlaces.
caperucitaferoz escribió:
25 Feb 2019, 20:52
En findvideo tambien se podria eliminar.
Hecho.
caperucitaferoz escribió:
25 Feb 2019, 20:52
Pero las dos obtienen el mismo enlace o es posible q el scraper no lo encunetre y al cargar la otra pagina si. Si es asi primero scrapeamos (menos recursos) y si no hay resultado usamos el metodo alternativo.
Uhmmm... Ambas opciones hacen lo mismo. Ambas obtienen el mismo enlace. Ambas necesitan descargar la url capturada para obtener el torrent. La única diferencia es que una usa la función url_torrent(url) y la otra lo hace al vuelo dentro de la función findvideos()
He dejado habilitada la opción que usa la función url_torrent(url) pero sigo sin saber cual es mejor... :?
caperucitaferoz escribió:
25 Feb 2019, 20:52
No has cambiado las calidades a minusculas, ciertamente nos ahorramos muchas excepciones.
Corregido.

Una vez mas, antes de lanzar nueva versión con el código limpio, dejo aquí el canal para testear.

Saludos.

Re: Duda sobre la creación de canales

Publicado: 27 Feb 2019, 18:37
por caperucitaferoz
devalls escribió:
26 Feb 2019, 20:23
Necesitarás un argumento mas sólido si quieres convencerme.
Ni lo voy a intentar, me parece razonable...aunq cuando lleves unas cuantas versiones mas de este canal si ves q ya no vuelven a generar mal los torrents si podrias quitarlo, para simplificar nada mas.
devalls escribió:
26 Feb 2019, 20:23
Ambas necesitan descargar la url capturada para obtener el torrent.
No me habia fijado en ese detalle. Entonces en realida ambas son iguales. ¿cuando usar una subrutina y cuando no? Aporta algo el uso de la subrutina (o funcion)? Yo creo q en este caso no. Una subrutina es util cuando es llamada desde diferentes partes del codigo (evitamos repetir codigo. Por ejemplo idioma_calidad) o cuando tiene una funcion muy delimitada (abstraemos el funcionamiento de esa subrutina del proceso principal).
Asi pues yo usaria el metodo q tienes comentado y eliminaria la funcion url_torrent

Re: Duda sobre la creación de canales

Publicado: 04 Mar 2019, 20:53
por devalls
caperucitaferoz escribió:
27 Feb 2019, 18:37
...aunq cuando lleves unas cuantas versiones mas de este canal si ves q ya no vuelven a generar mal los torrents si podrias quitarlo, para simplificar nada mas.
Bien.
He estado unos días comprobando la generación de los enlaces torrent y no ha habido ni un solo error. Tampoco se porque se generaba ese tipo de error, lo que sin duda ayudaría a tomar una decisión. No obstante, teniendo en cuenta que se puede arreglar fácilmente, he decidido seguir tu consejo y simplificar en la nueva versión.
caperucitaferoz escribió:
27 Feb 2019, 18:37
¿cuando usar una subrutina y cuando no? Aporta algo el uso de la subrutina (o funcion)? Yo creo q en este caso no. Una subrutina es util cuando es llamada desde diferentes partes del codigo (evitamos repetir codigo. Por ejemplo idioma_calidad) o cuando tiene una funcion muy delimitada (abstraemos el funcionamiento de esa subrutina del proceso principal).
Asi pues yo usaria el metodo q tienes comentado y eliminaria la funcion url_torrent
Entendido.

Llegados a este punto, solo queda liberar la versión 5.
-Código del canal reescrito completamente. --> Gracias caperucitaferoz
-Código limpio de comentarios y código no usado.

Dejo el enlace a la nueva versión en el post principal.

Saludos.

Re: Duda sobre la creación de canales

Publicado: 08 Mar 2019, 08:01
por caperucitaferoz
Esto ya poco mas va a dar de si (vete buscando otra web si quieres q continuemos :lol: :lol: :lol: )

Pero aun hay una ultima cosa que comentarte...
Actualmente en tu funcion findvideo se hacen 2 llamadas a httptools.downloadpage por cada url agrupada. En este caso entiendo q normalmente no van a ver demasiados elementos en item.url y q por lo tanto es un coste 'asumible'. Pero podria darse el caso de que una pelicula estuviese en todas las calidades (5) y en todos los idiomas (3), lo que produciria (5x3)x2= 30 llamadas!!!
Para evitar esto podemos pasar la segunda de las llamadas a httptools.downloadpage a una funcion play(item) que sera llamada al seleccionar una de las opcione devueltas por findvideo:

Código: Seleccionar todo

def findvideos(item):
    logger.trace()
    itemlist = list()

    for link in item.url:
        data = httptools.downloadpage(link).data
        data = re.sub(r"\n|\r|\t|\s{2}| ", "", data)

        title, url = scrapertools.find_single_match(data, '<title>([^-]+)- HD Torrents</title>.*?'
                                                          'download"><p><a href="([^"]+)" rel=')

        idioma, calidad, title = idioma_calidad(title)

        itemlist.append(item.clone(
            action='play',
            url=url,
            quality=QLT.get(calidad),
            lang=LNG.get(idioma),
            label_extra={"sublabel": " -MicroHD-",
                         "color": "yellow",
                         "value": "True"} if calidad == 'microhd' else None,
            server='torrent',
            type='server'
        ))

    return servertools.get_servers_from_id(itemlist)


def play(item):
    logger.trace()
    item.url = scrapertools.find_single_match(httptools.downloadpage(HOST + item.url).data, 'click <a href="'
                                                                                          '([^"]+)"><strong>')
    return item

Re: Duda sobre la creación de canales

Publicado: 12 Mar 2019, 18:15
por devalls
caperucitaferoz escribió:
08 Mar 2019, 08:01
Esto ya poco mas va a dar de si (vete buscando otra web si quieres q continuemos :lol: :lol: :lol: )
Lo haré. :lol: :lol: :lol: Aunque últimamente ando un poco justo de tiempo. :(
caperucitaferoz escribió:
08 Mar 2019, 08:01
Pero aun hay una ultima cosa que comentarte...
Actualmente en tu funcion findvideo se hacen 2 llamadas a httptools.downloadpage por cada url agrupada. En este caso entiendo q normalmente no van a ver demasiados elementos en item.url y q por lo tanto es un coste 'asumible'. Pero podria darse el caso de que una pelicula estuviese en todas las calidades (5) y en todos los idiomas (3), lo que produciria (5x3)x2= 30 llamadas!!!
Para evitar esto podemos pasar la segunda de las llamadas a httptools.downloadpage a una funcion play(item) que sera llamada al seleccionar una de las opcione devueltas por findvideo:
Uhmm... :geek: Muy interesante. De esta forma solo se obtiene el torrent que se ha escogido en lugar de capturarlos todos.
Ahora el código es mas eficiente.

Aprovecho el lanzamiento de la versión 6 para hacer algún cambio mas:
  • Función findvideos optimizada con los arreglos de caperucitaferoz.
  • La función tags_qlt ahora reordena por quality.level en lugar de alfabeticamente.
  • Corrección de bug en patrón de captura (title) en findvideos.
Dejo el enlace a la nueva versión en el post principal.

Saludos.

Re: Duda sobre la creación de canales

Publicado: 20 Mar 2019, 20:11
por devalls
devalls escribió:
12 Mar 2019, 18:15
Aprovecho el lanzamiento de la versión 6 para hacer algún cambio mas:
  • Función findvideos optimizada con los arreglos de caperucitaferoz.
  • La función tags_qlt ahora reordena por quality.level en lugar de alfabeticamente.
  • Corrección de bug en patrón de captura (title) en findvideos.
Parece que en la web han decidido añadir 2 etiquetas mas de calidad:
  • Ts Screener
  • DVD rip --> En realidad son BRScreener
Así que he decidido añadir Qualities.scr a la declaración de QLT para su correcto etiquetado.
Con Ts Screener no ha habido problema (por el momento solo hay 1 título).
Con DVD rip hay un pequeño inconveniente: La calidad no esta etiquetada en el título y por lo tanto se muestra la calidad como DESCONOCIDA (por el momento solo hay 2 títulos).

Habrá que ver como evoluciona este nuevo etiquetado para ver que medidas se pueden implementar (o no), pero de momento, dejo el enlace con la nueva versión en el post principal.

PD: No acabo de ver que pintan estas nuevas etiquetas en una web de HD... :cry:

Saludos.

Re: Duda sobre la creación de canales

Publicado: 30 Mar 2019, 18:14
por caperucitaferoz
devalls escribió:
20 Mar 2019, 20:11
PD: No acabo de ver que pintan estas nuevas etiquetas en una web de HD...
Es dificil mantenerse firme como la mano incorrupta de Santa Teresa... :lol: :lol: :lol:
devalls escribió:
20 Mar 2019, 20:11
Con DVD rip hay un pequeño inconveniente: La calidad no esta etiquetada en el título...
Pero si son los unicos titulos que no tienen calidad podemos presuponer q si no hay etiqueta es por q son DVD-rip ¿no?
devalls escribió:
20 Mar 2019, 20:11
DVD rip --> En realidad son BRScreener
¿Todos? Si es asi podemos decir q si no hay etiqueta son Qualities.scr

Aunque si la ausencia de etiqueta en el titulo puede esconder diferentes calidades, lo mejor es dejarlo como esta.

PD: tienes un mensaje privado ;)