Propuesta para 'find_videos' de los conectores
Publicado: 05 Oct 2015, 22:27
Me gustaría proponeros la modificación de 'find_videos' en los conectores para que se nos haga más fácil el mantenimiento de esta parte del conector.
El primer paso es eliminar todos los 'encontrados.add("http://....' y unificarlo en un archivo sin eliminar 'encontrados' y comprobando únicamente las coincidencias en 'match'.
Os pego la función comentada que uso para 'streaminto.py' y el archivo con la lista de todas las coincidencias a descartar que he encontrado.
find_videos:
filtro_findvideos:
El primer paso es eliminar todos los 'encontrados.add("http://....' y unificarlo en un archivo sin eliminar 'encontrados' y comprobando únicamente las coincidencias en 'match'.
Os pego la función comentada que uso para 'streaminto.py' y el archivo con la lista de todas las coincidencias a descartar que he encontrado.
find_videos:
Código: Seleccionar todo
def find_videos(data):
## Permanece 'encontrados' para las urls vídeos duplicadas
encontrados = set()
devuelve = []
## 'ignore_matches' reemplaza 'encontrados.add("http://....'
## Esta lista se puede añadir a servertools para que sólo exista una lista común para todos los conectores o
## crear un archivo .py que contenga la lista 'ignore_matches'
## De esta forma únicamente se añadiría la línea:
## from servers.servertools import ignore_matches
## o
## from servers.filtro_findvideos import ignore_matches
## Particularmente prefiero la segunda opción para no tocar servertools
from servers.filtro_findvideos import ignore_matches
## Urls comentadas que se filtrarán
# http://streamin.to/z3nnqbspjyne
# http://streamin.to/embed-z3nnqbspjyne.html
## Patrones para el filtro de urls
patterns = [
r'streamin.to/([a-z0-9A-Z]+)',
r'streamin.to/embed-([a-z0-9A-Z]+)'
]
## server_id para el título
server_id = "streaminto"
## Formato de la url para 'get_video_url'
url_format = "http://streamin.to/embed-%s.html"
## Anida los bucles
for pattern in patterns:
logger.info("[" + server_id + ".py] find_videos #" + pattern + "#")
matches = re.compile(pattern, re.DOTALL).findall(data)
for match in matches:
url = url_format % match
## Se añade el filtro para 'findvideos'
if url not in encontrados and match not in ignore_matches:
logger.info(" url="+url)
devuelve.append( [ '' , url , server_id ] )
encontrados.add(url)
else:
logger.info(" url duplicada="+url)
return devuelve
Código: Seleccionar todo
# -*- coding: utf-8 -*-
#------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Filtro para urls encontradas no válidas en find_videos
# cuando el contenido de 'data' es el contenido de la página.
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
#------------------------------------------------------------
ignore_matches = {
'a','cgi','checkfiles','contact','control','css','d','deliver','dmca','embed','f','faq','favicon','file','i','images','jquery','js','links','login','make','new','pages','player','premium','privacy','refund','reward','ri','s','serve','stylesheets','theme','tos','ver','ver-online','video','watch','watch_video','xupload'
}