Manual para creación de canales

En el equipo Alfa hemos decidido inculcar un poco de cultura a los usuarios y porque no, también a desarrolladores para que puedan aprender a programar o mejorar sus conocimientos, Alfa como siempre lo dijimos no solo pretende entretener, también pretende que los usuarios obtengan cierta independencia y conocimiento suficiente el cual les permita poder crear o reparar sus propios canales, addons y no depender de que alguien haga el trabajo por ellos, esperamos sea de utilidad para muchos!

Como somos un addon que publica su codigo en github y nos gustaria ver nuevos desarrolladores, vamos a aportar nuestro granito de arena.

Las preguntas se hacen en público para que otros puedan aprender.

Equipo Alfa
 

Adjuntos

  • manual creacion de canales.pdf
    1 MB · Visitas: 1.985

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34

Gracias de nuevo, el problema es que en el código fuente desde el que leo las series no viene su nombre en inglés, así que no puedo capturarlo:

HTML:
Por favor, Acceder o Registrarse para ver el contenido

¿En este caso habría que crear una excepción cuando en el título llegara "Sin límites"? Ya me comentó antes @caperucitaferoz , que no sois partidarios de crear excepciones (lo cual comparto).
 

Intel1

Miembro del equipo
16 Oct 2017
344
176
43
En el listado de series vas a tener que dejarlo así nomas, o tal vez usar lo que te comenta Delta que es mas avanzado; que es usando el thumbnail de la serie para sacar los datos del tmdb, pero mejor no te compliques con eso y lo vez después o que te lo explique @caperucitaferoz si es que puede :)

Lo que te digo es ya al entrar a la serie para listar los capítulos en: def episodes allí tomar el nombre original para que busque con tmdb.

Osea reemplazar el que llega a episodios: contentSerieName = "Sin limites", contentTitle = "Amar sin límites"

A:

contentSerieName = "limitless", contentTitle = ""

El título original lo tomas de:

Screenshot_20.jpg

Ya al hacer click a la serie como te digo.

Y te comento como dato adicional, que en tmdb.py hay un error justo con tu caso, cuando no puede encontrar la serie; da ese error en el log, pero en la próxima versión estará solucionado, para que no aparezca el error.

Pero igual, la serie no es reconocida por el módulo tmdb, y en nuestras pruebas vemos que no saca los datos aún con el tmdb corregido.

Por eso puedes tomar el nombre original de la serie, pero ya en el def episodios (Al hacer click a la serie en la lista de series)

Espero me hayas entendido tanto enredo :(

Saludos.
 

caperucitaferoz

Usuario
20 Oct 2017
75
36
18
Bueno veo q esto se va animando y eso me gusta!!!


Por favor no me llameis profesor.....LLAMADME SOLAMENTE GRAN MAESTRA JEDI :D:D:D

Hay muchas cosas por responder aunq creo q la mas significativa es el tema de la serie 'Sin Límites'. El modulo tmdb funciona muy bien, pero en ocasiones aunq la peticion este bien realizada obtenemos respuestas incorrectas y esta es una de ellas (si le quitais la tilde al titulo la respuesta sera correcta). Lo q no es muy logico es q el modulo se quede colgado segun @Intel1 estara corregido en proximas versiones, asi q mejor esperar.

Supongo que @Delta se refiere en filtrar los resultados de tmdb segun la url de la imagen de la web, lo cierto es q recuerdo haberlo visto pero ahora mismo no sabria explicarte como se hace.

@Intel1 propone por su parte sustituir el titulo de la serie por su version original, q normalmente falla menos con series inglesas, pero q puede ser un fastidio con el anime. En cualquier caso no es necesario eliminar el contenido de item.contentTitle pero si el de item.infoLabels['tmdb_id`] como ejemplo (y sin q sirva de precedente) puedes probar añadiendo esto despues de la linea 112:
Python:
Por favor, Acceder o Registrarse para ver el contenido


Otros temas:
  • Al clonar un item no es necesario indicar q un atributo es el mismo q el de su padre. Eso ya lo hace solo (herencia) asi q
    Python:
    Por favor, Acceder o Registrarse para ver el contenido
    podria ser
    Python:
    Por favor, Acceder o Registrarse para ver el contenido
  • En la funcion temporadas(item):
    • Yo obtendria el numero de temporada (scrapedseason) con el siguiente patron: '<span class="se-t[^>]+>([^<]+)</span>' Tomarlo del titulo es un poco arriesgado si el webmaster comienza a cambiar el guion por espacio o guion bajo por ejemplo (algo asi como lo q ya nos paso al obtener el numero de temporada y episodio ¿recuerdas?)
    • Y item.title = "Temporada " + scrapedseason e item.season=scrapedseason
    • Con esto podrias llamar otra vez a tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) y recuperar los datos de las temporadas si existen (posters diferentes, sinopsis por temporada, etc...)
  • En la funcion episodios(item):
    • Si el item pasado ya tiene numero de temporada filtro los episodios encontrados y me quedo solo con los q son de esa temporada descartando el resto (con esto me ahorro item.extra)
    • Si el item no tiene numero de temporada muestro todos los episodios encontrados (mas adelante te dire por q si es q aun tienes ganas de continuar claro)
No se si me dejo algo en el tintero, pero en cualquier caso Felicidades por el trabajo realizado. Como podras comprobar ya avanzas mas aprisa q los primeros dias y eso significa q estas asimilando correctamente lo q intento explicarte. La unica pega es q otros no se animen tb a seguirte.
 

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34
Gracias a @Delta, @Intel1 y sobre todo a @caperucitaferoz por ayudarme a seguir puliendo los defectos del canal. Lo de la serie Sin Límites lo he arreglado con la solución de @caperucitaferoz, ya entra correctamente y muestra los capítulos. También he revisado todos los puntos que me indicaba @caperucitaferoz excepto el último, que no acabo de verlo:
¿Cuál es el motivo? Porque siempre capturamos el número de temporada.
 

caperucitaferoz

Usuario
20 Oct 2017
75
36
18

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34
Actualización lista:

ToDo:
  1. Utilizar scrapertools.get_season_and_episode para ver si así se solucionan los problemas detectados con varias series.
  2. Mostrar las temporadas de cada serie y sus episodios y no todos los episodios como se muestra actualmente.
  3. Añadir nueva sección en mainlist para "Nuevos episodios".
  4. Arreglar el buscador.
  5. Añadir el canal al buscador global.
  6. Añadir el canal a la sección "Novedades" de Alfa.
Aún queda trabajo por delante.

Saludos.
 

Adjuntos

  • PelisUltra.zip
    2,3 KB · Visitas: 5

caperucitaferoz

Usuario
20 Oct 2017
75
36
18
Espero q mis apuntes los consideres siempre como indicaciones para aprender, no quisiera parecer pedante.Empezamos.

En MainMenu:
  • "Novedades del canal" ahora deberia ser "Peliculas Novedades" ¿no?
  • ¿Q te pareceria incluir una etiqueta para separar las secciones?

En temporadas:
  • La excepcion (q insisto era solo para probar) no debe ir dentro del for, ya q la serie (item.contentTitle) no cambia en las iteracciones, por lo q se esta repitiendo inutilmente.
En episodios:
  • la funcion tmdb.set_infolabels_itemlist esta buscando la informacion de todos los episodios aun cuando los hemos delimitado a una temporada en concreto.
Nuevos episodios:
  • Has olvidado incluir el nombre de la serie en el titulo, si no es por el fanart seria dificil saber a q serie pertenece cada episodio. ¿q tal, por ejemplo: "House: 7x21 - El arreglo"?
Si te quedas atascado en algun punto de tu lista dimelo, mientras tanto continuare repasando tu codigo segun lo vayas subiendo ¿ok?
 

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34
Hola @caperucitaferoz, para nada pareces pedante. Tus indicaciones son necesarias para que el canal se parezca a uno de verdad. Tu experiencia y conocimientos son necesarios para mí porque si no hace tiempo habría dado el canal por concluido.
Sí, debería llamarse como dices. Lo que propones es crear una etiqueta Películas y ya dentro que ponga Novedades, Estrenos y Géneros, ¿no?
El tema es que en un primer momento lo puse fuera, tal y como recomendaste y me seguía fallando, así que tuve que ponerlo dentro del for. Volveré a probarlo fuera y te digo.
Tienes razón una vez más, lo meteré en el for para que solo aplique a los episodios adecuados.
Pues no me había dado ni cuenta. Lo reviso.
Muchas gracias, una vez más, por tu ayuda ;););)
 

caperucitaferoz

Usuario
20 Oct 2017
75
36
18
Si, pero ojo una etiqueta, no un submenú. Si hubiesen muchos apartados de cada tipo (películas/series) entonces si valdría la pena crear submenús. Pero con las etiquetas conseguimos agrupar visualmente y no aumentar los clicks necesarios para ver un vídeo.

Si es así dímelo y lo repaso.

Cuidado!!! No dentro del for porque sino repetirá la búsqueda!!! Solo fíjate q lista le pasas a la función.
 

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34

Hola @caperucitaferoz, entonces no sé qué es una etiqueta, pensé que te referías a un submenú. Buscaré información acerca de las etiquetas.


Si lo sacas fuera del "for", falla con la serie maldita:
Python:
Por favor, Acceder o Registrarse para ver el contenido

Fijate en el siguiente log:
Código:
Por favor, Acceder o Registrarse para ver el contenido

En la siguiente línea compruebo que entra dentro del "IF" donde cambiamos el contentSerieName:
Código:
Por favor, Acceder o Registrarse para ver el contenido
pero posteriormente sigue poniendo contentSerieName= 'Sin límites'. En cambio, con el "IF" dentro del "FOR" lo cambia correctamente. Yo supongo que funciona de la segunda forma porque hacemos el cambio antes de añadirlo al itemlist.

Ahhhhhh, te refieres a que le pase la lista "itemlist_page" y no "itemlist", así ahorramos unas cuantas llamadas.
 
Última edición:

Intel1

Miembro del equipo
16 Oct 2017
344
176
43
Hola paquito porras :)

En lo de etiquetas se refiere a tenerlo mas o menos de ésta forma:

Screenshot_20.jpg
 

caperucitaferoz

Usuario
20 Oct 2017
75
36
18
Piensalo, lo importante es q los nuevos item (los añadidos al itemlist) tengan modificados los dos atributos. Como ya intuias, si le cambias el valor al item (q te han pasado como argumento de la funcion) despues de haber rellenado el listado los nuevos items ni se enteran. Sin embargo si lo haces antes, como los nuevos items se obtienen por clonacion heredaran, entre otros, esos dos atributos modificados.
Una vez entendido q se ha de hacer antes de clonar y añadir...¿por q fuera del for y no dentro? Pues por q TODOS los nuevos items han de tener esos dos atributos iguales, es decir no cambian por muchas iteracciones q hagas en el for, asi q mejor hacerlo una sola vez (antes de entrar al bucle) ¿entiendes?

Correcto. ¿A q queda mucho mas vistoso? Las etiquetas son items sin 'action'
Por otra parte, veo q tambien le has puesto color. Perfecto!!!!

Para q veas q yo tb me equivoco..:oops::oops::oops:
en lugar de item.season deberia ser item.contentSeason. Me he dado cuenta porq tmdb no estaba buscando datos de las temporadas.
Debes cambiarlo en las lineas 118:
Python:
Por favor, Acceder o Registrarse para ver el contenido
y 142:
Python:
Por favor, Acceder o Registrarse para ver el contenido


Lo proximo el buscador?
 
Última edición:

bic

Usuario Activo
17 Oct 2017
732
147
43
La sipnosis de las series si la muestra pero no la de las peliculas utilizando la funcion Infoplus comento esto para ayudar a pulir detalles y por que quizas se este pasando por alto esto antes de ir al buscador

Utilizando Extendedinfo parece que esta funcion si esta funcionando correctamente y muestra la sipnosis en las series y peliculas


Buen trabajo saludos:)
 
Última edición:

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34
Gracias @bic, lo tendré en cuenta.
A ver si puedo sacar algo de tiempo hoy para revisar el buscador, que están siendo días difíciles.
 

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34
Hola @caperucitaferoz , creo que la clave está en el patrón de búsqueda. Dado que las pelis tienen calidad y las series no, habría que utilizar un patrón que no busque la calidad y meterlo en un itemlist cuya "action" sea "findvideos". Ese patrón lo tenemos en la función "series", lo que pasa que el "action" del "itemlist" es "temporadas". Así que creo que lo más fácil sería poner ahí un "if". ¿Cómo lo ves?