Primer intento del verificador automático de canales
Publicado: 11 Ene 2012, 00:35
Me voy a dormir, antes de lo que esperaba porque hoy me vence el sueño.
Llevo unos días trabajando y subiendo al SVN lo que es el primer intento del verificador automático de canales. Básicamente es un script (python claro) que verificará uno por uno que los canales funcionan, y generará un XML en algún sitio que permitirá luego utilizarlo en pelisalacarta para avisarte.
De momento llevo:
1) Una función "test()" en unos cuantos canales (por orden alfabético, voy por "divxonline") que devuelve "True" si el canal funciona, y "False" en caso de error. La primera versión es muy básica, busca cualquier vídeo que tenga mirrors en la sección "Novedades" que todos los canales suelen tener y si encuentra alguno da por bueno el canal.
2) Una función de prueba en mi "tester.py" que me dice al ejecutarla que canales están activos, cuales fallan y cuales no se verifican (los no genéricos por ejemplo). En un futuro esto generará el XML (o json o lo que sea), de momento es una prueba.
Se puede mejorar mucho la verificación de cada canal, por ejemplo en Cuevana hace algo más elaborado ya que verifica tanto películas como series. Lo ideal sería verificar todas las secciones, para detectar por ejemplo que en Cuevana no funciona el HD como pasaba hoy.
En cualquier caso, antes de perfeccionar la verificación de los canales prefiero añadir un test simple a todos para tener más información cuando algo falla. Ya que si un canal falla, suele hacerlo completamente.
Llevo unos días trabajando y subiendo al SVN lo que es el primer intento del verificador automático de canales. Básicamente es un script (python claro) que verificará uno por uno que los canales funcionan, y generará un XML en algún sitio que permitirá luego utilizarlo en pelisalacarta para avisarte.
De momento llevo:
1) Una función "test()" en unos cuantos canales (por orden alfabético, voy por "divxonline") que devuelve "True" si el canal funciona, y "False" en caso de error. La primera versión es muy básica, busca cualquier vídeo que tenga mirrors en la sección "Novedades" que todos los canales suelen tener y si encuentra alguno da por bueno el canal.
Código: Seleccionar todo
# Verificación automática de canales: Esta función debe devolver "True" si todo está ok en el canal.
def test():
bien = True
# mainlist
mainlist_items = mainlist(Item())
# Da por bueno el canal si alguno de los vídeos de "Novedades" devuelve mirrors
episodios_items = novedades(mainlist_items[0])
bien = False
for episodio_item in episodios_items:
mirrors = videos(episodio_item)
if len(mirrors)>0:
bien = True
break
return bien
Código: Seleccionar todo
def test_one_channel(channelid):
try:
exec "from pelisalacarta.channels import "+channelid+" as channelmodule"
resultado = channelmodule.test()
except:
resultado = False
return resultado
def test_channels():
para_probar = []
para_probar.append("animeflv")
para_probar.append("animeid")
para_probar.append("buenaisla")
para_probar.append("cineadicto")
para_probar.append("cineblog01")
para_probar.append("cinegratis")
para_probar.append("cinetube")
para_probar.append("cuevana")
para_probar.append("dlmore")
para_probar.append("delatv")
para_probar.append("descargacineclasico")
para_probar.append("descargapelis")
para_probar.append("descarregadirecta")
para_probar.append("discoverymx")
para_probar.append("divxonline")
funcionan = []
no_funcionan = []
no_probados = [ "asiateam", "casttv" ]
# Verifica los canales
for canal in para_probar:
resultado = test_one_channel(canal)
if resultado:
funcionan.append(canal)
else:
no_funcionan.append(canal)
Código: Seleccionar todo
# Verificación automática de canales: Esta función debe devolver "True" si todo está ok en el canal.
def test():
bien = True
# mainlist
mainlist_items = mainlist(Item())
peliculas_items = peliculas(mainlist_items[0])
# Comprueba primero las películas "Recientes" a ver si alguna tiene mirrors
novedades_items = novedades(peliculas_items[1])
bien = False
for pelicula_item in novedades_items:
mirrors = findvideos(item=pelicula_item)
if len(mirrors)>0:
bien = True
break
if not bien:
return bien
# Comprueba luego las series
seriesmenu_items = seriesMenu(mainlist_items[1])
series_items = series(seriesmenu_items[0])
episodios_items = episodios(series_items[0])
bien = False
for episodio_item in episodios_items:
mirrors = findvideos(item=episodio_item)
if len(mirrors)>0:
bien = True
break
return bien
Código: Seleccionar todo
funcionan: 15
animeflv
animeid
buenaisla
cineadicto
cineblog01
cinegratis
cinetube
cuevana
dlmore
delatv
descargacineclasico
descargapelis
descarregadirecta
discoverymx
divxonline
no funcionan: 0
no probados: 2
asiateam
casttv