MejorTorrent: reparación desactivación automática del canal
This commit is contained in:
@@ -810,19 +810,19 @@ def episodios(item):
|
||||
|
||||
# Carga la página
|
||||
try:
|
||||
data = re.sub(r"\n|\r|\t|\s{2}|(<!--.*?-->)", "", httptools.downloadpage(item.url).data)
|
||||
data_alt = re.sub(r"\n|\r|\t|\s{2}|(<!--.*?-->)", "", httptools.downloadpage(item.url).data)
|
||||
except: #Algún error de proceso, salimos
|
||||
logger.error("ERROR 01: EPISODIOS: La Web no responde o la URL es erronea" + item.url)
|
||||
itemlist.append(item.clone(action='', title=item.channel.capitalize() + ': ERROR 01: EPISODIOS:. La Web no responde o la URL es erronea. Si la Web está activa, reportar el error con el log'))
|
||||
return itemlist
|
||||
|
||||
#Datos para crear el Post. Usado para documentales
|
||||
total_capis = scrapertools.find_single_match(data, "<input type='hidden' name='total_capis' value='(\d+)'>")
|
||||
tabla = scrapertools.find_single_match(data, "<input type='hidden' name='tabla' value='([^']+)'>")
|
||||
titulo_post = scrapertools.find_single_match(data, "<input type='hidden' name='titulo' value='([^']+)'>")
|
||||
total_capis = scrapertools.find_single_match(data_alt, "<input type='hidden' name='total_capis' value='(\d+)'>")
|
||||
tabla = scrapertools.find_single_match(data_alt, "<input type='hidden' name='tabla' value='([^']+)'>")
|
||||
titulo_post = scrapertools.find_single_match(data_alt, "<input type='hidden' name='titulo' value='([^']+)'>")
|
||||
|
||||
# Selecciona en tramo que nos interesa
|
||||
data = scrapertools.find_single_match(data,
|
||||
data = scrapertools.find_single_match(data_alt,
|
||||
"(<form name='episodios' action='secciones.php\?sec=descargas\&ap=contar_varios' method='post'>.*?)</form>")
|
||||
|
||||
# Prepara el patrón de búsqueda de: URL, título, fechas y dos valores mas sin uso
|
||||
@@ -836,9 +836,9 @@ def episodios(item):
|
||||
|
||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||
if not matches: #error
|
||||
item = generictools.web_intervenida(item, data) #Verificamos que no haya sido clausurada
|
||||
item = generictools.web_intervenida(item, data_alt) #Verificamos que no haya sido clausurada
|
||||
if item.intervencion: #Sí ha sido clausurada judicialmente
|
||||
item, itemlist = generictools.post_tmdb_findvideos(item, itemlist) #Llamamos al método para el pintado del error
|
||||
item, itemlist = generictools.post_tmdb_episodios(item, itemlist) #Llamamos al método para el pintado del error
|
||||
return itemlist #Salimos
|
||||
|
||||
logger.error("ERROR 02: EPISODIOS: Ha cambiado la estructura de la Web " + " / PATRON: " + patron + " / DATA: " + data)
|
||||
|
||||
@@ -529,10 +529,9 @@ def listado_busqueda(item):
|
||||
return itemlist #si no hay más datos, algo no funciona, pintamos lo que tenemos
|
||||
|
||||
cnt_next += 1
|
||||
# busca series y Novedades
|
||||
patron = '<tr.*?><a href="([^"]+)" style="[^>]+>([^<]+)<\/a>' #url
|
||||
patron += '<span style="[^"]+">\(([^>]+)\)<\/a><\/td>' #título
|
||||
patron += '<td align="[^"]+" width="[^"]+">([^>]+)<\/td><\/tr>' #calidad y tipo de contenido
|
||||
patron = '<a href="([^"]+)" style="[^>]+>([^<]+)<\/a>' #url y título
|
||||
patron += '<span style="[^"]+">\(([^>]+)?\)<\/a><\/td>' #calidad
|
||||
patron += '<td align="[^"]+" width="[^"]+">([^>]+)<\/td><\/tr>' #tipo de contenido
|
||||
matches_alt = scrapertools.find_multiple_matches(data, patron)
|
||||
|
||||
i = 0
|
||||
@@ -846,8 +845,7 @@ def findvideos(item):
|
||||
def episodios(item):
|
||||
logger.info()
|
||||
itemlist = []
|
||||
|
||||
logger.debug(item)
|
||||
|
||||
# Obtener la información actualizada de la Serie. TMDB es imprescindible para Videoteca
|
||||
if not item.infoLabels['tmdb_id']:
|
||||
tmdb.set_infoLabels(item, True)
|
||||
|
||||
@@ -417,6 +417,8 @@ def post_tmdb_episodios(item, itemlist):
|
||||
del item.url_alt
|
||||
if item.title_from_channel:
|
||||
del item.title_from_channel
|
||||
if item.ow_force:
|
||||
del item.ow_force
|
||||
|
||||
for item_local in itemlist: #Recorremos el Itemlist generado por el canal
|
||||
if item_local.add_videolibrary:
|
||||
@@ -443,6 +445,8 @@ def post_tmdb_episodios(item, itemlist):
|
||||
del item_local.channel_host
|
||||
if item_local.intervencion:
|
||||
del item_local.intervencion
|
||||
if item_local.ow_force:
|
||||
del item_local.ow_force
|
||||
#logger.debug(item_local)
|
||||
|
||||
#Ajustamos el nombre de la categoría si es un clone de NewPct1
|
||||
@@ -1036,10 +1040,10 @@ def redirect_clone_newpct1(item, head_nfo=None, it=None, overwrite=False, path=F
|
||||
- ow_force: indicador para la acción de "videolibrary_service.py". Puede crear la variable item.ow_force:
|
||||
- force: indica al canal que analize toda la serie y que videolibrary_service la reescriba
|
||||
- auto: indica a videolibrary_service que la reescriba
|
||||
- no: no acción especial para videolibrary_service
|
||||
- no: no acción para videolibrary_service, solo redirige en visionado de videolibrary
|
||||
ejemplo: ('1', 'mejortorrent', 'mejortorrent1', 'http://www.mejortorrent.com/', 'https://mejortorrent1.com/', 'auto')
|
||||
|
||||
La llamada recibe el parámetro Item, el .nfoy los devuleve actualizados, así como opcionalmente el parámetro "overwrite· que puede forzar la reescritura de todos los archivos de la serie
|
||||
La llamada recibe el parámetro Item, el .nfo y los devuleve actualizados, así como opcionalmente el parámetro "overwrite· que puede forzar la reescritura de todos los archivos de la serie, y el parámetro "path" si viene de videolibrary_service
|
||||
|
||||
"""
|
||||
if not it:
|
||||
@@ -1078,12 +1082,15 @@ def redirect_clone_newpct1(item, head_nfo=None, it=None, overwrite=False, path=F
|
||||
if item.contentType == "list": #Si viene de Videolibrary, le cambiamos ya el canal
|
||||
if item.channel != channel_py:
|
||||
item.channel = canal_des #Cambiamos el canal. Si es clone, lo hace el canal
|
||||
if item.contentType not in content_inc:
|
||||
continue #Salimos sin hacer nada más. item está casi vacío
|
||||
if item.contentType not in content_inc and "*" not in content_inc: #Está el contenido el la lista de incluidos
|
||||
continue
|
||||
if item.contentType in content_exc: #Es esta nuestra entrada?
|
||||
if item.contentType in content_exc: #Está el contenido excluido?
|
||||
continue
|
||||
if channel_enabled and canal_org != canal_des: #Si el canal está activo, puede ser solo...
|
||||
continue #... una intervención que afecte solo a una región
|
||||
if ow_force == 'no' and path != False: #Queremos que el canal solo visualice sin migración?
|
||||
continue #Salimos sin tocas archivos
|
||||
item.url = item.url.replace(url_org, url_des) #reemplzamos una parte de url
|
||||
if patron1: #Hay expresión regex?
|
||||
url = scrapertools.find_single_match(item.url, patron1) #La aplicamos a url
|
||||
@@ -1117,6 +1124,7 @@ def redirect_clone_newpct1(item, head_nfo=None, it=None, overwrite=False, path=F
|
||||
if ow_force in ['force', 'auto']: #Sobreescribir la series?
|
||||
overwrite = ow_force_param #Sí, lo marcamos
|
||||
|
||||
|
||||
if item.contentType in ['tvshow', 'season'] and it.library_urls:
|
||||
if path == False:
|
||||
TVSHOWS_PATH = item.path
|
||||
|
||||
Reference in New Issue
Block a user