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

caperucitaferoz

Usuario
20 Oct 2017
75
36
18
Es cierto q es un tema estetico, pero lo importante aqui era mostrarte como utilizar una configuracion propia para cada canal.
Con solo incluir en el canalname.json el apartado 'settings' ya se crea un archivo en "userdata\addon_data\plugin.video.alfa\settings_channels\canalname_data.json" (esta ruta varia segun el SO), donde se guardan los valores escogidos.

Con platformtools.show_channel_settings() se muestra el cuadro de dialogo con los controles incluidos en canalname.json y los valores guardados actualmente en canalname_data.json. Al cerrar ese cuadro los valores modificados se guardan automaticamente.

Para acceder al valor de un determinado ajuste usamos config.get_setting(id_ajuste, canalname) y si quieres modificar dicho ajuste directamente desde python usamos config.set_setting(id_ajuste, value, canalname)

Los tipos de controles q se pueden incluir en un cuadro de dialogo estan especificados en xbmc_config_menu.py

Busca todas estas funciones y mira su documentacion en el codigo.


En este caso el autor ha definido en el json una lista con 4 elementos (0-3) . Los 3 primeros son perfiles de color definidos en el codigo y el ultimo (__perfil__ = 3) equivale a 'Ninguno'. Lo q hace el condicional es: si el valor es menor de 3 fija las variables colorN segun los valores de la lista perfil, pero si no es menor fija todas las variables colorN = "" (es decir no fija color y se mostrara el color por defecto del item en el skin q utilices, q habitualmente es blanco)

En este canal hay 5 colores definidos, pero para probar no te hacen falta tantos. Ademas hay un truco utilizando controles tipo 'label' ocultas en la configuracion q la verdad no se para q lo usan.

Con todo lo explicado te atreverias a completar mi lista:
  • El numero de episodios_por_pagina podria ser variable y seleccionable por el usuario.
  • Se podria dar la opcion al usuario de decidir si quiere ver las series por temporadas o listar todos los episodios juntos.
Si lo haces ya solo te quedaria una leccion mas para completar el curso y llegar al nivel de SUMO CREADOR DE CANALES (¿para eso no hay trofeos en el foro???)

@bic no te pena q se acabe el hilo... siempre podemos empezar con otra web :)
 
Última edición:
  • Me gusta
Reacciones: Paquito Porras y tovo

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34
Esta explicación se merece una gran ovación:

giphy.gif


:):):)

Lo has explicado completamente claro, ahora entiendo cómo funciona el tema de los settings en el json y cómo se escriben y se leen.

Creo que ahora sabría cómo mostrar en el cuadro de diálogo una opción más para que el usuario elija el número de items por página. Así que, intentaré ponerlo y también lo de las temporadas que comentas. Reduciré el número de colores y aplicaré los tres perfiles, cada uno de un color. Me interesa más hacerlo funcionar que que quede bonito.

Lo único que no me ha quedado claro de tu post es:

Quiero llegar a ser... ¡¡¡ SUMO CREADOR DE CANALES !!! ;););):):):)
 
  • Me gusta
Reacciones: tovo

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34
Bueno, pues al final le he podido sacar un ratito esta noche.
Ya tengo los dos puntos nuevos que proponías, @caperucitaferoz, tanto el número de capítulos configurables por página como lo de mostrar las series por temporadas o todos los capítulos.
También he configurado los perfiles de color, lo que pasa es que no los he aplicado aún (me da cierta pereza) :rolleyes::rolleyes::rolleyes:

Subo la nueva versión para que le echéis un vistazo, tanto tú como mi betatester oficial: @bic.

Creo que he resuelto "elegantemente" dos problemas que me han surgido:

El primero es que he puesto el número de episodios por página como tipo texto, para que el usuario pueda poner el número que quiera desde teclado, esto podría causar un problema si algún usuario "malintencionado" metía algo distinto a un número. En primer lugar había pensado meter una lista, pero era meter muchos valores, así que he optado por el texto y he comprobado que la cadena que me mete es un digito, si no lo es, escribo yo el valor por defecto en el archivo data (así he aprendido a escribir en el data, no sólo a leer).

El segundo problema es distinguir cuando el usuario ha elegido la opción de "temporadas" o "todos los episodios". Porque al final es la función "episodios" quien recibe la orden y en esa función tenía que distinguir desde donde me llegaba, si desde "temporadas" o desde "series". He analizado el item que me llega desde uno y otro sitio y lo he solucionado cogiendo el item.contentTitle como valor diferencial. :):):)

Buenas noches! Me voy con la satisfacción del trabajo bien hecho :):):)

P.D: Por supuesto que se admiten sugerencias y rectificaciones, @caperucitaferoz!
 

Adjuntos

  • PelisUltra.zip
    3,2 KB · Visitas: 6
Última edición:
  • Me gusta
Reacciones: paeznet

caperucitaferoz

Usuario
20 Oct 2017
75
36
18
Felicidades, has sabido resolver correctamente el ejercicio de hoy :D:D:D

Personalmente hubiese optado por una lista para 'episodios_x_pagina' con valores como: 10, 20, 30 y 40 por ejemplo. Y un booleano para 'temporada_o_todos' (label: 'Mostrar temporadas'). Pero ya digo q es algo personal, y de lo q se trata es de aprender a solucionar los problemas q vayas encontrando tal y como tu has hecho aqui.

Recuerdas esto?

Si te fijas en el caso de venir desde temporadas() el item contiene contentSeason, mientras q si venimos de series() no. Por lo tanto en episode podemos hacer:
Python:
Por favor, Acceder o Registrarse para ver el contenido
 

bic

Usuario Activo
17 Oct 2017
732
147
43
Buen trabajo paquito,con mis escasos y nulos conocimientos no soy capaz de encontrar fallos ni errores que pulir ni mejorar en esta ultima version eso ya queda para alguien con grandes conocimientos y mas preparada como @caperucitaferoz


Desde mi ignorancia en python en programacion y regex y sin saber casi nada de crear canales solo puedo ver un gran trabajo


Con un poco mas de practica creando algun canal mas y con ayuda de lo que ya has aprendido creo que podrias formar parte del equipo Alfa en poco tiempo y asi de paso lo aprendido y tu talento podria llevarse a la practica mejorarse y ser aprovechado y no se perderia por eso creo que despues de acabar con este canal seria buena idea que intentes crear alguno mas para ver si lo aprendido ya es suficiente y aprender a lo mejor lo que te pueda quedar,tambien creo que tus conocimientos ya pueden ser suficientes para reparar algunos canales y algun conector que no sea de los dificiles,ademas cada vez vas entendiendo mas cosas y aprendes mas y deprisa:)
 
Última edición:
  • Me gusta
Reacciones: paeznet

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34

Hola @caperucitaferoz. Gracias por tu respuesta. En un primer momento valoré poner 'episodios_x_pagina' como una lista, pero lo descarté por un texto. Creo que voy a cambiarlo a lista eligiendo 10, 15, 20 y 25 porque en pocas ocasiones creo que un usuario podría querer más capítulos por página.


Lo recuerdo, pero sigo sin saber la finalidad... cuéntanos más ;)


Tu código, como siempre, es más sencillo que el mío, lo que demuestra, una vez más, que desarrollas muy bien. Supongo que ese "continue" salta a la siguiente iteración del "for" y no lo añade en el itemlist a menos que cumpla la condición del "if". Muy ingenioso.

P.D: Ya he hecho los cambios. Esta tarde los pruebo en casa y si están bien, lo subo.
 
Última edición:
  • Me gusta
Reacciones: tovo

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34

Hola @bic, me refería a que probaras las funcionalidades nuevas, es decir, lo de los episodios por página y lo de mostrar las temporadas o todos los capítulos, no a que te pongas a leer el código. Es una labor muy importante la que haces revisando que todo funcione como debe.

Mi intención no es formar parte del equipo Alfa, simplemente desde que uso el addon siempre he tenido curiosidad de saber cómo funciona y esta ocasión ha sido ideal para aprender un poco de los entresijos gracias a que @caperucitaferoz ha querido compartir su tiempo y sus conocimientos con todos nosotros... no podía desaprovechar esta oportunidad. ;)

Por último, ¿conoces algún canal que no exista en Alfa y merezca la pena incluirlo?
 
  • Me gusta
Reacciones: tovo

bic

Usuario Activo
17 Oct 2017
732
147
43

Las funcionalidades ya las probe antes de escribir mi anterior mensaje y como decia desde mis escasos conocimientos solo veo un buen trabajo bien realizado,el codigo no puedo ponerme a mirarlo por que lo entiendo muy poco


Bueno esta labor en realidad la puede hacer cualquier usuario con algo de experiencia usando el plugin,pero gracias de todas formas paquito,la labor verdaderamente importante es la tuya y la de @caperucitaferoz


En efecto el poder compartir el tiempo sus conocimientos y colaboracion con @caperucitaferoz creo que a sido vital para poder desarrollar este canal,sin su ayuda creo que el desarrollo de este canal se hubiera quedado atascado y paralizado hace tiempo como me paso a mi,pero creo que @caperucitaferoz tambien esta disfrutando con esta labor y tiene su compensacion y me da la impresion que la encantaria seguir disfrutando con la creacion de otro canal en este mini equipo de este hilo,por que este hilo creo que engancha mucho:D


Antes del cierre de algunos addons tenia algunos en mente,pero ahora mismo de memoria no me viene ninguno a la cabeza,pero si de verdad estas dispuesto a comenzar cuando acabes este con otro canal me pondre a rebuscar un poco y en breve presentare algunas propuestas,en esto tambien pueden colaborar cualquiera,a ver si entre todos encontramos el mejor canal y el que mas valga la pena,sin que llegue a ser un canal demasiado dificil por supuesto:)
 
Última edición:
  • Me gusta
Reacciones: tovo

caperucitaferoz

Usuario
20 Oct 2017
75
36
18
Pronto, pronto tengo q buscar un rato para redactar todo lo q quiero explicar.

No niego q me lo he pasado bien en este hilo... Compensacion??? Si casi os tuve q suplicar un like!!!!:confundido::confundido::confundido:
Sobre lo de repetirlo con otro canal, lo siento pero va a ser q no. Estaré por aqui para resolver temas puntuales, pero no voy a repetir de nuevo este 'tutorial'. Cómo ya os dije ya no utilizo Alfa y pronto mis esfuerzos van a ir hacia otro sitio ;)

Por cierto, no se si os habéis dado cuenta de q tenemos un observador :genial: vergonzoso...:p:p:p amigo @tovo no seas timido puedes participar cuando quieras. Cuantos más seamos mejor. :):)
 
  • Me gusta
Reacciones: tovo

caperucitaferoz

Usuario
20 Oct 2017
75
36
18
En primer lugar @Paquito Porras, decirte q el canal pelisultra esta terminado. Podrias añadirle cosas como el Autoplay, trailers a las películas y todo lo que se te ocurra (fijandote el alguno de los canales q lo incorporen) pero tal y como esta ahora mismo es 100% operativo y funcional.

Preguntaras entonces cual es la ultima lección ¿no? Veras, no todos las webs tienen una estructura tan simple como esta y de eso es de lo q voy a hablar.

  • Algunas webs requieren acceder mediante un login, en cuyo caso hay q estudiar las peticiones q se hacen en la web para enviar el user y el password y repetirlas en el canal (fíjate en pordede.login). Para estudiar estas peticiones yo utilizo las “Herramientas para desarrolladores” de chrome.

  • Te has fijado q los ítems devueltos por películas() y episodios() tiene la url donde están los servidores y action=’findvideos’? Que sucede realmente en Alfa a partir de ahi? Alfa incorpora una función findvideos genérica q lo q hace es descargarse la pagina de la url pasada y recorrer cada uno de los servidores incluidos en el plugin para buscar (mediante regex) si en esa pagina hay alguna url reconocible como un enlace propio (cada servidor reconoce sus propias urls). Con todos los enlaces reconocidos la función devuelve un itemlist (lista de servidores).
Pero no siempre funciona esta función genérica y hay q añadir una función findvideos(item) al canal (importante mantener el nombre). En ocasiones los enlaces están ofuscado o cifrados y al acceder desde la web se ejecuta un script para mostrar la url correcta. En este caso lo q debemos hacer es analizar el script e imitarlo mediante python (ver hdfull.findvideos y sus funciones auxiliares jhexdecode y obfs).​

  • En otras ocasiones nos encontramos q en la web al clicar en un servidor se nos abre otra pagina q es donde realmente está la url del servidor (mira la web wopelis). En este caso debemos crear una función findvideos(item) para listar los servidores encontrados y otra función play(item) donde realmente obtendremos el enlace al servidor correspondiente (fíjate en el canal wopelis).

A veces te puedes encontrar webs q combinan varios de los ejemplos q os he puesto y cuando alguien consigue ‘descifrarla’ cambian algo y tus regex dejan de funcionar :)mad: aparecen palomas y cosas asi :D) No creáis q yo domino todos estos temas (soy GRAN MAESTRA pero no llego a SUMO SACERDOTISA :p) en muchas ocasiones he comenzado un canal y lo he dejado por imposible al encontrarme cosas asi.
Y esto nos lleva a la ultima reflexión: ¿q web es interesante convertir en canal? Para mi hay una serie de condiciones q han de cumplirse, aunq cada uno tendra las suyas propias:
  • Q se actualice frecuentemente.
  • Q hayan bastantes enlaces/servidores por cada película o episodio.
  • Q el listado de películas incluya el año (sino tmdb falla mucho).
  • Q haya contenido en castellano. No rechazo el resto, pero esa mi lengua materna y cada dia hay mas webs con contenido exclusivo en latino y menos en castellano.
  • Q sea viable para mi, al menos hasta q llegue a ser SUMO SACERDOTISA!!!! :D:D:D
 

bic

Usuario Activo
17 Oct 2017
732
147
43


Bueno esto ya es algo importante yo tambien lo he pasado bien y ademas os he ido cojiendo un cierto aprecio


En este asunto hablo solo por mi,siempre he sido un poco frio en esto de los like y solo al empezar a acumular algunos like me he sentido un poco motivado o agradecido a darlos,aun asi reconozco y creo que muchas personas se merecian algunos like que yo no llegue a darlos por que nunca me dio por esto de los like y reconozco que ahora me cuesta y aunque muy despacio ya me voy animando a darlos ( esto ya es autocritica )


Dejando un `poco de lado esto de los likes que no se por que lo veo como algo material por un lado pero por otro una forma de demostrar aprecio,gratitud o mi mas reciente forma de verlo ultimamente como una forma de tener un detalle o ser detallista ( ya se que soy un poco raro y esta forma de explicar esto tambien lo debe ser o parecerlo )


Bueno en esto mas que a los like yo me referia mas a los buenos ratos al aprecio que se va haciendo entre las personas que no es por que se tengan o aporten conocimientos y a la pequeña ciber amistad que va saliendo de aqui,que nadie se engañe en esto yo no aprecio a la gente aqui por sus conocimientos como ya me dijo alguien en este hilo al insinuar que esperaba que alguien hiciera el canal por mi,imcluso Inter1 me llego a decir ( si quieres yo monto el canal y tu lo disfrutas ) Por suerte a pesar de eso aun le aprecio y aclaramos y arreglamos eso por privado y le sigo apreciando como antes y como siempre Creo que este no es el caso ni viene a cuento pero lo digo como aclaracion



Bueno yo como dije una vez si esto se acabase echare este hilo de menos he pasado buenos ratos y este hilo engancha a veces hay que recordar y tener presente que en este mundo todo se acaba y nada dura eternamente



En cualquier caso respeto todas las decisiones y espero que sean para bien y quedo agradecido:)
 
Última edición:

Paquito Porras

Usuario
9 Nov 2017
101
19
18
34

El mejor colofón para tu gran "curso intensivo de creación de canales".

giphy.gif


Sé que lo he dicho muchas veces durante estas páginas, pero te vuelvo a agradecer el tiempo, la dedicación y la paciencia que has tenido para que hayamos podido concluir el canal. Bueno, realmente no está concluido porque falta aplicar los perfiles de colores, que lo haré en cuanto pueda dedicarle un ratito.

Tengo claro que, a pesar de todos mis esfuerzos, este es un canal sencillo de realizar, no tiene todas las complicaciones que has expuesto arriba, tales como el login, enlaces en páginas externas y cifrados. Quedaría todavía un largo camino por delante que, sinceramente, no sé si llegaré a recorrer. Para mí, como usuario de Pelisalacarta y ahora Alfa, siempre he sentido curiosidad por saber la manera en que se capturaba toda la info de una web y nos la ofrecían de forma tan clara y sin publicidad y ahora esa curiosidad se ha disipado al haber realizado este canal bajo tu supervisión.

Agradezco también tus consejos sobre qué canal intentar "destripar", lo tendré en cuenta por si finalmente me animo a realizar alguno más.

Subo la penúltima versión del canal, por si nuestro amigo @bic quiere probarla. He puesto el número de episodios por página como lista y que muestre las temporadas como boolean.
 

Adjuntos

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