- .*?
- (.*?)
- (.*?)
( 0 ) Resultados encontrados ' in data):
item = generictools.web_intervenida(item, data) #Verificamos que no haya sido clausurada
if item.intervencion: #Sí ha sido clausurada judicialmente
@@ -709,34 +713,40 @@ def listado_busqueda(item):
if not data: #Si no ha logrado encontrar nada, salimos
itemlist.append(item.clone(action='', title="[COLOR yellow]" + item.channel.capitalize() + '[/COLOR]: Ningún canal NewPct1 activo'))
itemlist.append(item.clone(action='', title=item.category + ': ERROR 01: LISTADO_BUSQUEDA:. La Web no responde o ha cambiado de URL. Si la Web está activa, reportar el error con el log'))
- return itemlist #si no hay más datos, algo no funciona, pintamos lo que tenemos
- elif item.channel_alt: #Si ha habido fail-over, lo comento
+ if len(itemlist) > 2:
+ #Pasamos a TMDB la lista completa Itemlist
+ tmdb.set_infoLabels(itemlist, __modo_grafico__)
+ #Llamamos al método para el maquillaje de los títulos obtenidos desde TMDB
+ item, itemlist = generictools.post_tmdb_listado(item, itemlist)
+ return itemlist #si no hay más datos, algo no funciona, pintamos lo que tenemos
+ elif item.channel_alt: #Si ha habido fail-over, lo comento
host = host.replace(item.channel_alt, item.channel)
#Obtiene la dirección de la próxima página, si la hay
try:
- post_actual = item.post #Guardamos el post actual por si hay overflow de Itemlist y hay que hechar marcha atrás
-
- if item.extra == "novedades":
- get, post, total_pag = scrapertools.find_single_match(data, '.*?Next<\/a>.*?Last<\/a>')
+ post_actual = item.post #Guardamos el post actual por si hay overflow de Itemlist y hay que hechar marcha atrás
+ #Probamos si es Novedades o Planetatorrent, sino, el resto
+ if scrapertools.find_single_match(data, '.*?Next<\/a>.*?Last<\/a>'):
+ get, post, total_pag = scrapertools.find_single_match(data, '.*?Next<\/a>.*?Last<\/a>')
else:
get, post, total_pag = scrapertools.find_single_match(data, '.*?Next<\/a>.*?onClick=".*?\(\'([^"]+)\'\);">Last<\/a>)')
except:
post = False
- cnt_next = 99 #No hay más páginas. Salir del bucle después de procesar ésta
+ cnt_next = 99 #No hay más páginas. Salir del bucle después de procesar ésta
- if post: #puntero a la siguiente página. Cada página de la web tiene 30 entradas
+ if post: #puntero a la siguiente página. Cada página de la web tiene 30 entradas
if "pg" in item.post:
item.post = re.sub(r"pg=(\d+)", "pg=%s" % post, item.post)
else:
item.post += "&pg=%s" % post
- post_num = int(post)-1 #Guardo página actual
+ post_num = int(post)-1 #Guardo página actual
# Preparamos un patron que pretence recoger todos los datos significativos del video
+ #seleccionamos el bloque que nos interesa
if item.extra == "novedades":
- pattern = '.*?.*?(.*?)
' % item.pattern #seleccionamos el bloque que nos interesa
+ pattern = '(.*?)
' % item.pattern
data_alt = data
data = scrapertools.get_match(data, pattern)
if item.extra == "novedades":
@@ -758,29 +768,33 @@ def listado_busqueda(item):
if not matches_alt and not '( 0 ) Resultados encontrados ' in data_alt and not '
' in data_alt: #error
logger.error("ERROR 02: LISTADO_BUSQUEDA: Ha cambiado la estructura de la Web " + " / PATRON: " + pattern + " / DATA: " + data_alt)
itemlist.append(item.clone(action='', title=item.category + ': ERROR 02: LISTADO_BUSQUEDA: Ha cambiado la estructura de la Web. Reportar el error con el log'))
- item, itemlist = generictools.post_tmdb_listado(item, itemlist) #Pintamos los datos de fail-over, si los hay
- return itemlist #si no hay más datos, algo no funciona, pintamos lo que tenemos
+ if len(itemlist) > 1:
+ #Pasamos a TMDB la lista completa Itemlist
+ tmdb.set_infoLabels(itemlist, __modo_grafico__)
+ #Llamamos al método para el maquillaje de los títulos obtenidos desde TMDB
+ item, itemlist = generictools.post_tmdb_listado(item, itemlist)
+ return itemlist #si no hay más datos, algo no funciona, pintamos lo que tenemos
#Ahora se hace una simulación para saber cuantas líneas podemos albergar en este Itemlist.
#Se controlará cuantas páginas web se tienen que leer para rellenar la lista, sin pasarse
- title_lista_alt_for = [] #usamos está lista de urls para el FOR, luego la integramos en la del WHILE
+ title_lista_alt_for = [] #usamos está lista de urls para el FOR, luego la integramos en la del WHILE
for scrapedurl, scrapedtitle, scrapedthumbnail, calidad, year, size in matches_alt:
#Realiza un control de las series que se añaden, ya que el buscador devuelve episodios y no las series completas
#Se analiza si la url de la serie ya se ha listado antes. Si es así, esa entrada se ignora
#Cuando llega al num. máximo de entradas por página, la pinta y guarda los contadores y la lista de series
scrapedurl_alt = scrapedurl
- if "pelisyseries.com" in host: #Excepción para mispelisyseries.com.
- scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-\d+-al-\d+', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
- scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-\d+', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
- scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
- scrapedurl_alt = re.sub(r'\/\d{5,7}', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
- if scrapedurl_alt in title_lista_alt: # si ya se ha tratado, pasamos al siguiente item
- continue # solo guardamos la url para series y docus
+ if "pelisyseries.com" in host: #Excepción para mispelisyseries.com.
+ scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-\d+-al-\d+', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
+ scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-\d+', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
+ scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
+ scrapedurl_alt = re.sub(r'\/\d{5,7}', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
+ if scrapedurl_alt in title_lista_alt: # si ya se ha tratado, pasamos al siguiente item
+ continue # solo guardamos la url para series y docus
if scrapedurl_alt in title_lista_alt or scrapedurl_alt in title_lista_alt_for or scrapedthumbnail in title_lista_alt or scrapedthumbnail in title_lista_alt_for: # si ya se ha tratado, pasamos al siguiente item
- continue # solo guardamos la url para series y docus
+ continue # solo guardamos la url para series y docus
if ".com/serie" in scrapedurl or "/serie" in scrapedurl or "-serie" in scrapedurl or "varios/" in scrapedurl:
title_lista_alt_for += [scrapedurl_alt]
@@ -791,16 +805,16 @@ def listado_busqueda(item):
cnt_title += 1 # Sería una línea real más para Itemlist
#Control de página
- if cnt_title > cnt_tot*0.65: #si se acerca al máximo num. de lineas por pagina, tratamos lo que tenemos
- cnt_next = 99 #Casi completo, no sobrepasar con la siguiente página
+ if cnt_title > cnt_tot*0.65: #si se acerca al máximo num. de lineas por pagina, tratamos lo que tenemos
+ cnt_next = 99 #Casi completo, no sobrepasar con la siguiente página
if cnt_title > cnt_tot:
- cnt_title = 99 #Sobrepasado el máximo. Ignoro página actual
- item.post = post_actual #Restauro puntero "next" a la página actual, para releearla en otra pasada
- post_num -= 1 #Restauro puntero a la página actual en el pie de página
+ cnt_title = 99 #Sobrepasado el máximo. Ignoro página actual
+ item.post = post_actual #Restauro puntero "next" a la página actual, para releearla en otra pasada
+ post_num -= 1 #Restauro puntero a la página actual en el pie de página
break
if cnt_title <= cnt_tot:
- matches.extend(matches_alt) #Acumulamos las entradas a tratar. Si nos hemos pasado ignoro última página
+ matches.extend(matches_alt) #Acumulamos las entradas a tratar. Si nos hemos pasado ignoro última página
title_lista_alt.extend(title_lista_alt_for)
#logger.debug("PATRON: " + pattern)
@@ -817,15 +831,15 @@ def listado_busqueda(item):
#El control de página ya se ha realizado más arriba
if "pelisyseries.com" in host: #Excepción para mispelisyseries.com.
scrapedurl_alt = scrapedurl
- scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-\d+-al-\d+', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
- scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-\d+', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
- scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
- scrapedurl_alt = re.sub(r'\/\d{5,7}', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
- if scrapedurl_alt in title_lista: # si ya se ha tratado, pasamos al siguiente item
- continue # solo guardamos la url para series y docus
+ scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-\d+-al-\d+', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
+ scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-\d+', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
+ scrapedurl_alt = re.sub(r'\/[c|C]ap.*?-', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
+ scrapedurl_alt = re.sub(r'\/\d{5,7}', '', scrapedurl_alt) #Scrapeo el capítulo para hacerlo serie
+ if scrapedurl_alt in title_lista: # si ya se ha tratado, pasamos al siguiente item
+ continue # solo guardamos la url para series y docus
- if scrapedurl in title_lista or scrapedthumbnail in title_lista: # si ya se ha tratado, pasamos al siguiente item
- continue # solo guardamos la url para series y docus
+ if scrapedurl in title_lista or scrapedthumbnail in title_lista: # si ya se ha tratado, pasamos al siguiente item
+ continue # solo guardamos la url para series y docus
if ".com/serie" in scrapedurl or "/serie" in scrapedurl or "-serie" in scrapedurl or "varios/" in scrapedurl:
if "pelisyseries.com" in host:
@@ -836,7 +850,7 @@ def listado_busqueda(item):
if ("juego/" in scrapedurl or "xbox" in scrapedurl.lower()) and not "/serie" in scrapedurl or "xbox" in scrapedtitle.lower() or "windows" in scrapedtitle.lower() or "windows" in calidad.lower() or "nintendo" in scrapedtitle.lower() or "xbox" in calidad.lower() or "epub" in calidad.lower() or "pdf" in calidad.lower() or "pcdvd" in calidad.lower() or "crack" in calidad.lower(): # no mostramos lo que no sean videos
continue
- cnt_title += 1 # Sería una línea real más para Itemlist
+ cnt_title += 1 # Sería una línea real más para Itemlist
#Creamos una copia de Item para cada contenido
item_local = item.clone()
@@ -868,8 +882,8 @@ def listado_busqueda(item):
#Si son episodios sueltos de Series que vienen de Novedades, se busca la url de la Serie
if item.extra == "novedades" and "/serie" in url and episodio_serie == 1:
item_local.url = url
- item_local.extra2 = 'serie_episodios' #Creamos acción temporal excluyente para otros clones
- if item_local.category == 'Mispelisyseries': #Esta web no gestiona bien el cambio de episodio a Serie
+ item_local.extra2 = 'serie_episodios' #Creamos acción temporal excluyente para otros clones
+ if item_local.category == 'Mispelisyseries': #Esta web no gestiona bien el cambio de episodio a Serie
pattern = 'class="btn-torrent">.*?window.location.href = "([^"]+)";' #Patron para .torrent
#Como no hay datos consistentes, llamamos al método de fail_over para que encuentre un canal que esté activo y pueda gestionar el cambio de episodio por serie
item_local, data_serie = generictools.fail_over_newpct1(item_local, pattern)
@@ -885,7 +899,7 @@ def listado_busqueda(item):
#Si no hay datos consistentes, llamamos al método de fail_over para que encuentre un canal que esté activo y pueda gestionar el cambio de episodio por serie
item_local, data_serie = generictools.fail_over_newpct1(item_local, pattern)
- if not data_serie: #Si no ha logrado encontrar nada, salimos
+ if not data_serie: #Si no ha logrado encontrar nada, salimos
title_subs += ["ERR"]
elif item_local.channel_alt: #Si ha habido fail-over, lo comento
@@ -895,9 +909,16 @@ def listado_busqueda(item):
try:
pattern = '.*?.*? 1: #para los demás valores, tomamos los de la lista
+ if ver_enlaces_veronline > 1: #para los demás valores, tomamos los de la lista
ver_enlaces_veronline = int(ver_enlaces[ver_enlaces_veronline])
#Carga la variable de verificar
verificar_enlaces_veronline = int(config.get_setting("clonenewpct1_verificar_enlaces_veronline", item.channel))
- if verificar_enlaces_veronline == 1: #a "Todos" le damos valor -1. Para "No" dejamos 0
+ if verificar_enlaces_veronline == 1: #a "Todos" le damos valor -1. Para "No" dejamos 0
verificar_enlaces_veronline = -1
- if verificar_enlaces_veronline > 1: #para los demás valores, tomamos los de la lista
+ if verificar_enlaces_veronline > 1: #para los demás valores, tomamos los de la lista
verificar_enlaces_veronline = int(ver_enlaces[verificar_enlaces_veronline])
#Carga la variable de contar sólo los servidores verificados
@@ -1224,26 +1249,26 @@ def findvideos(item):
#Carga la variable de lista de servidores excluidos
x = 1
- for x in range(1, max_excl+1): #recorremos todas las opciones de canales exluidos
+ for x in range(1, max_excl+1): #recorremos todas las opciones de canales exluidos
valor = str(config.get_setting("clonenewpct1_excluir%s_enlaces_veronline" % x, item.channel))
valor = int(valor)
- if valor > 0: #Evitamos "No"
- excluir_enlaces_veronline += [channel_exclude[valor]] #Añadimos el nombre de servidor excluido a la lista
+ if valor > 0: #Evitamos "No"
+ excluir_enlaces_veronline += [channel_exclude[valor]] #Añadimos el nombre de servidor excluido a la lista
x += 1
#Segundo loop para enlaces de Descargar.
#Carga la variable de ver
ver_enlaces_descargas = int(config.get_setting("clonenewpct1_ver_enlaces_descargas", item.channel))
- if ver_enlaces_descargas == 1: #a "Todos" le damos valor -1. Para "No" dejamos 0
+ if ver_enlaces_descargas == 1: #a "Todos" le damos valor -1. Para "No" dejamos 0
ver_enlaces_descargas = -1
- if ver_enlaces_descargas > 1: #para los demás valores, tomamos los de la lista
+ if ver_enlaces_descargas > 1: #para los demás valores, tomamos los de la lista
ver_enlaces_descargas = int(ver_enlaces[ver_enlaces_descargas])
#Carga la variable de verificar
verificar_enlaces_descargas = int(config.get_setting("clonenewpct1_verificar_enlaces_descargas", item.channel))
- if verificar_enlaces_descargas == 1: #a "Todos" le damos valor -1. Para "No" dejamos 0
+ if verificar_enlaces_descargas == 1: #a "Todos" le damos valor -1. Para "No" dejamos 0
verificar_enlaces_descargas = -1
- if verificar_enlaces_descargas > 1: #para los demás valores, tomamos los de la lista
+ if verificar_enlaces_descargas > 1: #para los demás valores, tomamos los de la lista
verificar_enlaces_descargas = int(ver_enlaces[verificar_enlaces_descargas])
#Carga la variable de contar sólo los servidores verificados
@@ -1251,14 +1276,14 @@ def findvideos(item):
#Carga la variable de lista de servidores excluidos
x = 1
- for x in range(1, max_excl+1): #recorremos todas las opciones de canales exluidos
+ for x in range(1, max_excl+1): #recorremos todas las opciones de canales exluidos
valor = str(config.get_setting("clonenewpct1_excluir%s_enlaces_descargas" % x, item.channel))
valor = int(valor)
- if valor > 0: #Evitamos "No"
- excluir_enlaces_descargas += [channel_exclude[valor]] #Añadimos el nombre de servidor excluido a la lista
+ if valor > 0: #Evitamos "No"
+ excluir_enlaces_descargas += [channel_exclude[valor]] #Añadimos el nombre de servidor excluido a la lista
x += 1
- except Exception, ex: #En caso de error, lo mostramos y reseteamos todas las variables
+ except Exception, ex: #En caso de error, lo mostramos y reseteamos todas las variables
logger.error("Error en la lectura de parámentros del .json del canal: " + item.channel + " \n%s" % ex)
#Mostrar los errores
logger.error(ver_enlaces_veronline)
@@ -1270,14 +1295,14 @@ def findvideos(item):
logger.error(verificar_enlaces_descargas_validos)
logger.error(excluir_enlaces_descargas)
#Resetear las variables a sus valores por defecto
- ver_enlaces_veronline = -1 #Ver todos los enlaces Ver Online
- verificar_enlaces_veronline = -1 #Verificar todos los enlaces Ver Online
- verificar_enlaces_veronline_validos = True #"¿Contar sólo enlaces 'verificados' en Ver Online?"
- excluir_enlaces_veronline = [] #Lista vacía de servidores excluidos en Ver Online
- ver_enlaces_descargas = 0 #Ver todos los enlaces Descargar
- verificar_enlaces_descargas = -1 #Verificar todos los enlaces Descargar
- verificar_enlaces_descargas_validos = True #"¿Contar sólo enlaces 'verificados' en Descargar?"
- excluir_enlaces_descargas = [] #Lista vacía de servidores excluidos en Descargar
+ ver_enlaces_veronline = -1 #Ver todos los enlaces Ver Online
+ verificar_enlaces_veronline = -1 #Verificar todos los enlaces Ver Online
+ verificar_enlaces_veronline_validos = True #"¿Contar sólo enlaces 'verificados' en Ver Online?"
+ excluir_enlaces_veronline = [] #Lista vacía de servidores excluidos en Ver Online
+ ver_enlaces_descargas = 0 #Ver todos los enlaces Descargar
+ verificar_enlaces_descargas = -1 #Verificar todos los enlaces Descargar
+ verificar_enlaces_descargas_validos = True #"¿Contar sólo enlaces 'verificados' en Descargar?"
+ excluir_enlaces_descargas = [] #Lista vacía de servidores excluidos en Descargar
# Descarga la página
data = ''
@@ -1286,16 +1311,18 @@ def findvideos(item):
data = data.replace("$!", "#!").replace("'", "\"").replace("ñ", "ñ").replace("//pictures", "/pictures")
url_servidores = item.url
category_servidores = item.category
- data_servidores = data #salvamos data para verificar servidores, si es necesario
+ data_servidores = data #salvamos data para verificar servidores, si es necesario
except:
pass
patron = 'class="btn-torrent">.*?window.location.href = "(.*?)";' #Patron para .torrent
+ if not scrapertools.find_single_match(data, patron):
+ patron = '
- .*?Next<\/a>.*?Last<\/a>'):
+ get, post, total_pag = scrapertools.find_single_match(data, '
- .*?Next<\/a>.*?Last<\/a>')
else:
get, post, total_pag = scrapertools.find_single_match(data, '
- .*?Next<\/a>.*?onClick=".*?\(\'([^"]+)\'\);">Last<\/a>)')
except:
post = False
- cnt_next = 99 #No hay más páginas. Salir del bucle después de procesar ésta
+ cnt_next = 99 #No hay más páginas. Salir del bucle después de procesar ésta
- if post: #puntero a la siguiente página. Cada página de la web tiene 30 entradas
+ if post: #puntero a la siguiente página. Cada página de la web tiene 30 entradas
if "pg" in item.post:
item.post = re.sub(r"pg=(\d+)", "pg=%s" % post, item.post)
else:
item.post += "&pg=%s" % post
- post_num = int(post)-1 #Guardo página actual
+ post_num = int(post)-1 #Guardo página actual
# Preparamos un patron que pretence recoger todos los datos significativos del video
+ #seleccionamos el bloque que nos interesa
if item.extra == "novedades":
- pattern = '
- .*?
- (.*?)
- (.*?)