Manual para creación de canales

Delta

Miembro del equipo
16 Oct 2017
857
942
93
He mirado la web primera que me has puesto y he podido sacar estos dos codigos:

Código:
patron  = '(?is)MvTbImg B.*?href="([^"]+)".*?'
patron += 'src="([^"]+)".*?'
Donde estoy teniendo mas problemas es en el apartado que tu me comentas, donde aparece Num...
Esos dos patrones que te he puesto anteriormente van bien encaminados? Mirando creo que vinculan a donde deberian, pero en donde marcaria el numero del episodio no doy con la tecla, he probado varias formas en local y no logro dar con la tecla.

o_O
veamos... En el mensaje anterior te di el ejemplo para obtener el numero de episodio, ese deberia ser tu primer patron,

class="Num">21</span>

class="Num">(\d+)<.*?

a continuación deberías obtener el thumbnail de

class="MvTbImg"><img src="https://elhogardelaprendiz.es/wp-co...to-y-su-pandilla-7924-episode-21-season-1.jpg"

class="MvTbImg"><img src="([^"]+)".*?


y finalmente la url y el titulo del episodio que esta en:

class="MvTbTtl"><a href="Don Gato y su pandilla 1x21 Archives - El Hogar del Aprendiz">Mono espacial</a>

class="MvTbTtl"><a href="([^"]+)">([^<]+)<

y luego ya deberias ajustar el for para utilizar todo lo que obtiene

for num_epi, thumb, url, title in matches:
.
.
.

Practicamente esta hecho, analizalos y veras que es sencillo.

Saludos
 
'Me Gusta': martinbm76

martinbm76

Usuario Novato
29 Oct 2019
24
3
3
44
Buenas noches de nuevo. He estado mirando el tema de for num_epi... y ahi sigo dandoles vuelta al tema.
He estado mirando primero las expresiones que me pusistes:
Código:
class="Num">(\d+)<.*?
etc...
más que nada para no ser un copiar y pegar y ya que estamos aprender un poco de esto que me va a venir muy bien.

En cuanto a lo de for...
1- No deberian tener el termino scraped delante? scrapednum_epi y asi con todas?
2- He puesto
Código:
title="1x%s - %s" % (num_epi, item.contentSerieName)
3-
Código:
itemlist.append(item.clone(action='findvideos', episode=num_epi, thumbnail=thumb, url=url, title=title, type=item.type,
                                   infoLabels=item.infoLabels))
Aqui he agregado las expresiones como me pusistes, obviamente, al probarlo en local no funciona :mad:. De todas formas, hoy he tenido poco tiempo para ponerme aqui, espero mañana estar menos espeso y poder seguir un ratin mas.

Saludos y muchas gracias !!!
 

martinbm76

Usuario Novato
29 Oct 2019
24
3
3
44
Buenas de nuevo. Sigo peleandome con esto un poco, he estado mirando por internet para orientarme algo y ha quedado asi:

Código:
def episodios(item):
   logger.info()
   itemlist = list()
   data = httptools.downloadpage(item.url).data
   data = data.replace('"ep0','"epp"')
   patron  = 'class="Num">(\d+)<.*?'
   patron += 'class="MvTbImg"><img src="([^"]+)".*?'
   patron += 'class="MvTbTtl"><a href="([^"]+)">([^<]+)<'
   matches = scrapertools.find_multiple_matches(data, patron)
   for scrapednum_epi, scrapedthumbnail, scrapedurl, scrapedtitle in matches:
       title="1x%s - %s" % (episode, item.contentSerieName)
       #urls = scrapertools.find_multiple_matches(scrapedurls, 'href="([^"]+)')
       itemlist.append(item.clone(action='findvideos', episodios=scrapednum_epi, thumbnail=scrapedthumbnail, url=scrapedurl, title=title, type=item.type,
                                  infoLabels=item.infoLabels))
   if config.get_videolibrary_support() and len(itemlist) > 0:
       itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]",
                            url=item.url, action="add_serie_to_library", extra="episode",
                            contentSerieName=item.contentSerieName))
   return itemlist
 

lucumon

Usuario Novato
30 Sep 2018
8
0
1
18
Hola!

Estoy intentando crear un canal para la televisión de galicia, pero me he topado con un problema que no se como resolver y es que me es imposible crear un regex para obtener los episodios, ya que estos no aparecen listados de ninguna forma en el codigo fuente.
Mi progreso actual lo tengo en github y, por ejemplo, la página de uno de los programas sería esta, en la que los episodios se encuentran listados en el final de ella. Los episodios estan divididos en varias páginas, pero que no tienen un enlace distinto cada uno, si no que actualiza la información en la misma página, motivo por el cual entiendo que los episodios no aparecen listados en el codigo fuente.
Por lo de ahora lo que tengo hecho funciona, he conseguido que en el addon se muestren las distintas categorias y dentro de ellas los programas que hay, así como una página de destacados.

Gracias por el excelente manual!
 

Cylon

Usuario Novato
31 Ago 2018
11
0
1
Hola, soy Miguel Ángel!

Querría añadir 3 canales nuevos, soy desarrollador desde hace años pero nunca me había puesto con Python. Estoy usando vuestro MediaServer y me gustaría mostrar en consola o en un fichero ciertos datos para poder depurar el código de mis nuevos canales ¿es posible o debo de instalar Kodi?

He probado a utilizar print("mensaje"), logger.info("mensaje"), logger.debug("mensaje" y hasta logger.error("mensaje") pero no veo nada ni en la consola de mi navegador Web ni en la consola desde donde lanzo "python -d alfa.py";

Y por supuesto mil gracias por el esfuerzo por hacer y mantener Alfa y los canales. Es impresionante todo el trabajo que hacéis y muchas veces en tiempo real.

Gracias de antemano,
Miguel Ángel.
 
Última edición:

Cylon

Usuario Novato
31 Ago 2018
11
0
1
Me respondo a mí mismo: sí que se puede usar la función "print" (por ejemplo print("mensaje")) usando el MediaServer, se ve en la consola desde donde se lanza python. Mi problema era que algún tipo de error no lanzaba mi canal nuevo y nunca llegaba a ejecutar el print.

Hola, soy Miguel Ángel!

Querría añadir 3 canales nuevos, soy desarrollador desde hace años pero nunca me había puesto con Python. Estoy usando vuestro MediaServer y me gustaría mostrar en consola o en un fichero ciertos datos para poder depurar el código de mis nuevos canales ¿es posible o debo de instalar Kodi?

He probado a utilizar print("mensaje"), logger.info("mensaje"), logger.debug("mensaje" y hasta logger.error("mensaje") pero no veo nada ni en la consola de mi navegador Web ni en la consola desde donde lanzo "python -d alfa.py";

Y por supuesto mil gracias por el esfuerzo por hacer y mantener Alfa y los canales. Es impresionante todo el trabajo que hacéis y muchas veces en tiempo real.

Gracias de antemano,
Miguel Ángel.
 

Cylon

Usuario Novato
31 Ago 2018
11
0
1
Para poder hacer mis tests y aprender sobre cómo crear un canal he hecho un clon de GNula con un "id" y name "distinto" (nombres de fichero "kinoz_to.json" y "kinoz_to.py") y bajo MediaServer todo va bien pero al copiarlo en la carpeta de ".kodi/addons/plugin.video.alfa/channels" no me va en Kodi. Según el log mi problema es el siguiente:


13:26:04.183 T:139794706052864 NOTICE: alfa.platformcode.launcher [run] action= 'mainlist', category= 'Kinox to', channel= 'kinoxto', contentPlot= '[COLOR yellow]Tipo de contenido:[/COLOR] Movies

[COLOR yellow]Idiomas:[/COLOR] Latino, Castellano', context= [], fanart= '', frequency= 0, infoLabels= {'plot': '[COLOR yellow]Tipo de contenido:[/COLOR] Movies\n\n[COLOR yellow]Idiomas:[/COLOR] Latino, Castellano'}, language= ['lat', 'cast'], thumbnail= 'https://www.kinoz.to/cs/themes/default/Header/Default.png', title= 'Kinox to', viewmode= 'list'
13:26:04.184 T:139794706052864 NOTICE: alfa.core.channeltools [is_adult] channel_name=kinoxto
13:26:04.184 T:139794706052864 ERROR: ######## ERROR #########
13:26:04.184 T:139794706052864 ERROR: [alfa.core.channeltools.get_channel_parameters] kinoxto.json error
13:26:04.184 T:139794706052864 NOTICE: alfa.platformcode.launcher [run] channel_file=/home/mfuentes/.kodi/addons/plugin.video.alfa/channels/kinoxto.py
13:26:04.184 T:139794706052864 ERROR: ######## ERROR #########
13:26:04.184 T:139794706052864 ERROR: [alfa.platformcode.launcher.run] Traceback (most recent call last):
File "/home/mfuentes/.kodi/addons/plugin.video.alfa/platformcode/launcher.py", line 160, in run
logger.info("Running channel %s | %s" % (channel.__name__, channel.__file__))
AttributeError: 'NoneType' object has no attribute '__name__'



Me da la impresión de que en Kodi no basta con copiar y pegar mis ficheros sino que tendría que hacer algo más ¿es así?
 

Delta

Miembro del equipo
16 Oct 2017
857
942
93
Para poder hacer mis tests y aprender sobre cómo crear un canal he hecho un clon de GNula con un "id" y name "distinto" (nombres de fichero "kinoz_to.json" y "kinoz_to.py") y bajo MediaServer todo va bien pero al copiarlo en la carpeta de ".kodi/addons/plugin.video.alfa/channels" no me va en Kodi. Según el log mi problema es el siguiente:


13:26:04.183 T:139794706052864 NOTICE: alfa.platformcode.launcher [run] action= 'mainlist', category= 'Kinox to', channel= 'kinoxto', contentPlot= '[COLOR yellow]Tipo de contenido:[/COLOR] Movies

[COLOR yellow]Idiomas:[/COLOR] Latino, Castellano', context= [], fanart= '', frequency= 0, infoLabels= {'plot': '[COLOR yellow]Tipo de contenido:[/COLOR] Movies\n\n[COLOR yellow]Idiomas:[/COLOR] Latino, Castellano'}, language= ['lat', 'cast'], thumbnail= 'https://www.kinoz.to/cs/themes/default/Header/Default.png', title= 'Kinox to', viewmode= 'list'
13:26:04.184 T:139794706052864 NOTICE: alfa.core.channeltools [is_adult] channel_name=kinoxto
13:26:04.184 T:139794706052864 ERROR: ######## ERROR #########
13:26:04.184 T:139794706052864 ERROR: [alfa.core.channeltools.get_channel_parameters] kinoxto.json error
13:26:04.184 T:139794706052864 NOTICE: alfa.platformcode.launcher [run] channel_file=/home/mfuentes/.kodi/addons/plugin.video.alfa/channels/kinoxto.py
13:26:04.184 T:139794706052864 ERROR: ######## ERROR #########
13:26:04.184 T:139794706052864 ERROR: [alfa.platformcode.launcher.run] Traceback (most recent call last):
File "/home/mfuentes/.kodi/addons/plugin.video.alfa/platformcode/launcher.py", line 160, in run
logger.info("Running channel %s | %s" % (channel.__name__, channel.__file__))
AttributeError: 'NoneType' object has no attribute '__name__'



Me da la impresión de que en Kodi no basta con copiar y pegar mis ficheros sino que tendría que hacer algo más ¿es así?

En primer lugar, es agradable saber que aun hay personas interesadas en aprender y colaborar con el proyecto.

Sobre tu problema revisa que en el json de canal tengas bien definido el id, debe ser el mismo nombre del py.

Te recomiendo abrir un hilo en la sección desarrolladores para poder seguir tu avance con el canal, en esa misma sección tienes un mini canal de muestra bastante simple que puedes mirar como guia.
 

Cylon

Usuario Novato
31 Ago 2018
11
0
1
Mil gracias, tenías razón, al final me di cuenta por casualidad :eek:. Me pasaré por el hilo de desarrolladores para preguntar una duda sobre algo.


Mil gracias de nuevo por mantener vivo Alfa, vuestra tarea es vital para muchísima gente que busca relajarse un rato disfrutando de contenidos digitales.





En primer lugar, es agradable saber que aun hay personas interesadas en aprender y colaborar con el proyecto.

Sobre tu problema revisa que en el json de canal tengas bien definido el id, debe ser el mismo nombre del py.

Te recomiendo abrir un hilo en la sección desarrolladores para poder seguir tu avance con el canal, en esa misma sección tienes un mini canal de muestra bastante simple que puedes mirar como guia.