Canales reparados y ajustes
This commit is contained in:
@@ -355,8 +355,6 @@ def findvideos(item):
|
|||||||
except:
|
except:
|
||||||
return itemlist # Devolvemos lista vacia
|
return itemlist # Devolvemos lista vacia
|
||||||
|
|
||||||
lista_servers = servertools.get_servers_list()
|
|
||||||
|
|
||||||
for link in data_dict["link"]:
|
for link in data_dict["link"]:
|
||||||
if item.contentType == 'episode' \
|
if item.contentType == 'episode' \
|
||||||
and (item.contentSeason != link['season'] or item.contentEpisodeNumber != link['episode']):
|
and (item.contentSeason != link['season'] or item.contentEpisodeNumber != link['episode']):
|
||||||
@@ -367,17 +365,17 @@ def findvideos(item):
|
|||||||
flag = scrapertools.find_single_match(link["label"], '(\s*\<img src=.*\>)')
|
flag = scrapertools.find_single_match(link["label"], '(\s*\<img src=.*\>)')
|
||||||
idioma = link["label"].replace(flag, "")
|
idioma = link["label"].replace(flag, "")
|
||||||
if link["quality"] != "?":
|
if link["quality"] != "?":
|
||||||
calidad = (' [' + link["quality"] + ']')
|
calidad = (link["quality"])
|
||||||
else:
|
else:
|
||||||
calidad = ""
|
calidad = ""
|
||||||
video = find_videos(link["url"], lista_servers)
|
itemlist.extend(servertools.find_video_items(data=url))
|
||||||
|
|
||||||
if video["servidor"] != "":
|
for videoitem in itemlist:
|
||||||
servidor = video["servidor"]
|
videoitem.channel = item.channel
|
||||||
url = video["url"]
|
videoitem.quality = calidad
|
||||||
title = "Ver en " + servidor.capitalize() + calidad + ' (' + idioma + ')'
|
videoitem.language = idioma
|
||||||
itemlist.append(item.clone(action="play", viewmode="list", server=servidor, title=title,
|
videoitem.contentTitle = item.title
|
||||||
text_color="0xFF994D00", url=url, folder=False))
|
itemlist = servertools.get_servers_itemlist(itemlist)
|
||||||
|
|
||||||
if config.get_videolibrary_support() and itemlist and item.contentType == "movie":
|
if config.get_videolibrary_support() and itemlist and item.contentType == "movie":
|
||||||
infoLabels = {'tmdb_id': item.infoLabels['tmdb_id'],
|
infoLabels = {'tmdb_id': item.infoLabels['tmdb_id'],
|
||||||
@@ -390,40 +388,6 @@ def findvideos(item):
|
|||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def find_videos(url, lista_servers):
|
|
||||||
# logger.info()
|
|
||||||
ret = {'titulo': "",
|
|
||||||
'url': "",
|
|
||||||
'servidor': ""}
|
|
||||||
|
|
||||||
# Ejecuta el find_videos en cada servidor hasta que encuentra una coicidencia
|
|
||||||
for serverid in lista_servers:
|
|
||||||
try:
|
|
||||||
servers_module = __import__("servers." + serverid)
|
|
||||||
server_module = getattr(servers_module, serverid)
|
|
||||||
devuelve = server_module.find_videos(url)
|
|
||||||
|
|
||||||
if devuelve:
|
|
||||||
ret["titulo"] = devuelve[0][0]
|
|
||||||
ret["url"] = devuelve[0][1]
|
|
||||||
ret["servidor"] = devuelve[0][2]
|
|
||||||
# reordenar el listado, es probable q el proximo enlace sea del mismo servidor
|
|
||||||
lista_servers.remove(serverid)
|
|
||||||
lista_servers.insert(0, serverid)
|
|
||||||
break
|
|
||||||
|
|
||||||
except ImportError:
|
|
||||||
logger.error("No existe conector para #" + serverid + "#")
|
|
||||||
# import traceback
|
|
||||||
# logger.info(traceback.format_exc())
|
|
||||||
except:
|
|
||||||
logger.error("Error en el conector #" + serverid + "#")
|
|
||||||
import traceback
|
|
||||||
logger.error(traceback.format_exc())
|
|
||||||
|
|
||||||
return ret
|
|
||||||
|
|
||||||
|
|
||||||
def episodios(item):
|
def episodios(item):
|
||||||
# Necesario para las actualizaciones automaticas
|
# Necesario para las actualizaciones automaticas
|
||||||
return get_temporadas(Item(channel=__chanel__, url=item.url, show=item.show, extra="serie_add"))
|
return get_temporadas(Item(channel=__chanel__, url=item.url, show=item.show, extra="serie_add"))
|
||||||
|
|||||||
@@ -60,18 +60,15 @@ def todas(item):
|
|||||||
idioma = scrapertools.decodeHtmlentities(idioma)
|
idioma = scrapertools.decodeHtmlentities(idioma)
|
||||||
url = urlparse.urljoin(item.url, scrapedurl)
|
url = urlparse.urljoin(item.url, scrapedurl)
|
||||||
year = scrapedyear
|
year = scrapedyear
|
||||||
if idioma in audio:
|
|
||||||
idioma = audio[idioma]
|
|
||||||
else:
|
|
||||||
idioma = audio['Sub Español']
|
|
||||||
|
|
||||||
title = scrapertools.decodeHtmlentities(scrapedtitle) + ' (' + idioma + ')'
|
title = scrapertools.decodeHtmlentities(scrapedtitle)
|
||||||
thumbnail = scrapedthumbnail
|
thumbnail = scrapedthumbnail
|
||||||
plot = scrapedplot
|
plot = scrapedplot
|
||||||
fanart = 'https://s31.postimg.org/dousrbu9n/qserie.png'
|
fanart = 'https://s31.postimg.org/dousrbu9n/qserie.png'
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
Item(channel=item.channel, action="temporadas", title=title, url=url, thumbnail=thumbnail, plot=plot,
|
Item(channel=item.channel, action="temporadas", title=title, url=url, thumbnail=thumbnail, plot=plot,
|
||||||
fanart=fanart, extra=idioma, contentSerieName=scrapedtitle, infoLabels={'year': year}))
|
fanart=fanart, extra=idioma, contentSerieName=scrapedtitle, infoLabels={'year': year},
|
||||||
|
language=idioma))
|
||||||
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
|
tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True)
|
||||||
# Paginacion
|
# Paginacion
|
||||||
siguiente = ''
|
siguiente = ''
|
||||||
|
|||||||
Executable → Regular
+135
-146
@@ -5,6 +5,8 @@ import urlparse
|
|||||||
|
|
||||||
from core import scrapertools
|
from core import scrapertools
|
||||||
from core import servertools
|
from core import servertools
|
||||||
|
from core import httptools
|
||||||
|
from core import tmdb
|
||||||
from core.item import Item
|
from core.item import Item
|
||||||
from platformcode import config, logger
|
from platformcode import config, logger
|
||||||
|
|
||||||
@@ -19,130 +21,107 @@ def mainlist(item):
|
|||||||
mifan = "http://www.psicocine.com/wp-content/uploads/2013/08/Bad_Robot_Logo.jpg"
|
mifan = "http://www.psicocine.com/wp-content/uploads/2013/08/Bad_Robot_Logo.jpg"
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel, action="menupelis", title="Peliculas", url="http://www.repelis.tv/pag/1",
|
itemlist.append(Item(channel=item.channel, action="menupelis", title="Peliculas", url="http://www.repelis.tv/pag/1",
|
||||||
thumbnail="http://www.gaceta.es/sites/default/files/styles/668x300/public/metro_goldwyn_mayer_1926-web.png?itok=-lRSR9ZC",
|
thumbnail="http://www.gaceta.es/sites/default/files/styles/668x300/public"
|
||||||
|
"/metro_goldwyn_mayer_1926-web.png?itok=-lRSR9ZC",
|
||||||
fanart=mifan))
|
fanart=mifan))
|
||||||
itemlist.append(Item(channel=item.channel, action="menuestre", title="Estrenos",
|
itemlist.append(Item(channel=item.channel, action="menuestre", title="Estrenos",
|
||||||
url="http://www.repelis.tv/archivos/estrenos/pag/1",
|
url="http://www.repelis.tv/archivos/estrenos/pag/1",
|
||||||
thumbnail="http://t0.gstatic.com/images?q=tbn:ANd9GcS4g68rmeLQFuX7iCrPwd00FI_OlINZXCYXEFrJHTZ0VSHefIIbaw",
|
thumbnail="http://t0.gstatic.com/images?q=tbn"
|
||||||
|
":ANd9GcS4g68rmeLQFuX7iCrPwd00FI_OlINZXCYXEFrJHTZ0VSHefIIbaw",
|
||||||
fanart=mifan))
|
fanart=mifan))
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
Item(channel=item.channel, action="menudesta", title="Destacadas", url="http://www.repelis.tv/pag/1",
|
Item(channel=item.channel, action="menudesta", title="Destacadas", url="http://www.repelis.tv/pag/1",
|
||||||
thumbnail="http://img.irtve.es/v/1074982/", fanart=mifan))
|
thumbnail="http://img.irtve.es/v/1074982/", fanart=mifan))
|
||||||
itemlist.append(Item(channel=item.channel, action="todaspelis", title="Proximos estrenos",
|
itemlist.append(Item(channel=item.channel, action="menupelis", title="Proximos estrenos",
|
||||||
url="http://www.repelis.tv/archivos/proximos-estrenos/pag/1",
|
url="http://www.repelis.tv/archivos/proximos-estrenos/pag/1",
|
||||||
thumbnail="https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTpsRC-GTYzCqhor2gIDfAB61XeymwgXWSVBHoRAKs2c5HAn29f&reload=on",
|
thumbnail="https://encrypted-tbn3.gstatic.com/images?q=tbn:ANd9GcTpsRC"
|
||||||
|
"-GTYzCqhor2gIDfAB61XeymwgXWSVBHoRAKs2c5HAn29f&reload=on",
|
||||||
fanart=mifan))
|
fanart=mifan))
|
||||||
itemlist.append(
|
itemlist.append(Item(channel=item.channel, action="menupelis", title="Todas las Peliculas",
|
||||||
Item(channel=item.channel, action="todaspelis", title="Todas las Peliculas", url="http://www.repelis.tv/pag/1",
|
url="http://www.repelis.tv/pag/1",
|
||||||
thumbnail="https://freaksociety.files.wordpress.com/2012/02/logos-cine.jpg", fanart=mifan))
|
thumbnail="https://freaksociety.files.wordpress.com/2012/02/logos-cine.jpg", fanart=mifan))
|
||||||
|
|
||||||
if config.get_setting("adult_mode") != 0:
|
if config.get_setting("adult_mode") != 0:
|
||||||
itemlist.append(Item(channel=item.channel, action="todaspelis", title="Eroticas +18",
|
itemlist.append(Item(channel=item.channel, action="menupelis", title="Eroticas +18",
|
||||||
url="http://www.repelis.tv/genero/eroticas/pag/1",
|
url="http://www.repelis.tv/genero/eroticas/pag/1",
|
||||||
thumbnail="http://www.topkamisetas.com/catalogo/images/TB0005.gif",
|
thumbnail="http://www.topkamisetas.com/catalogo/images/TB0005.gif",
|
||||||
fanart="http://www.topkamisetas.com/catalogo/images/TB0005.gif"))
|
fanart="http://www.topkamisetas.com/catalogo/images/TB0005.gif", extra='adult'))
|
||||||
# Quito la busqueda por año si no esta enabled el adultmode, porque no hay manera de filtrar los enlaces eroticos72
|
# Quito la busqueda por año si no esta enabled el adultmode, porque no hay manera de filtrar los enlaces
|
||||||
|
# eroticos72
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
Item(channel=item.channel, action="poranyo", title="Por Año", url="http://www.repelis.tv/anio/2016",
|
Item(channel=item.channel, action="poranyo", title="Por Año", url="http://www.repelis.tv/anio/2016",
|
||||||
thumbnail="http://t3.gstatic.com/images?q=tbn:ANd9GcSkxiYXdBcI0cvBLsb_nNlz_dWXHRl2Q-ER9dPnP1gNUudhrqlR",
|
thumbnail="http://t3.gstatic.com/images?q=tbn:ANd9GcSkxiYXdBcI0cvBLsb_nNlz_dWXHRl2Q"
|
||||||
fanart=mifan))
|
"-ER9dPnP1gNUudhrqlR",
|
||||||
|
fanart=mifan))
|
||||||
|
|
||||||
# Por categoria si que filtra la categoria de eroticos
|
# Por categoria si que filtra la categoria de eroticos
|
||||||
itemlist.append(Item(channel=item.channel, action="porcateg", title="Por Categoria",
|
itemlist.append(Item(channel=item.channel, action="porcateg", title="Por Categoria",
|
||||||
url="http://www.repelis.tv/genero/accion/pag/1",
|
url="http://www.repelis.tv/genero/accion/pag/1",
|
||||||
thumbnail="http://www.logopro.it/blog/wp-content/uploads/2013/07/categoria-sigaretta-elettronica.png",
|
thumbnail="http://www.logopro.it/blog/wp-content/uploads/2013/07/categoria-sigaretta"
|
||||||
|
"-elettronica.png",
|
||||||
fanart=mifan))
|
fanart=mifan))
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
Item(channel=item.channel, action="search", title="Buscar...", url="http://www.repelis.tv/search/?s=",
|
Item(channel=item.channel, action="search", title="Buscar...", url="http://www.repelis.tv/search/?s=",
|
||||||
thumbnail="http://thumbs.dreamstime.com/x/buscar-pistas-13159747.jpg", fanart=mifan))
|
thumbnail="http://thumbs.dreamstime.com/x/buscar-pistas-13159747.jpg", fanart=mifan))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
# Peliculas recien agregadas ( quitamos las de estreno del slide-bar en el top
|
|
||||||
def menupelis(item):
|
def menupelis(item):
|
||||||
logger.info(item.url)
|
logger.info(item.url)
|
||||||
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = scrapertools.cache_page(item.url).decode('iso-8859-1').encode('utf-8')
|
data = httptools.downloadpage(item.url).data.decode('iso-8859-1').encode('utf-8')
|
||||||
|
|
||||||
|
if item.extra == '':
|
||||||
|
section = 'Recién Agregadas'
|
||||||
|
elif item.extra == 'year':
|
||||||
|
section = 'del Año \d{4}'
|
||||||
|
elif item.extra == 'adult':
|
||||||
|
section = 'de Eróticas \+18'
|
||||||
|
else:
|
||||||
|
section = 'de %s'%item.extra
|
||||||
|
|
||||||
|
patronenlaces = '<h.>Películas %s<\/h.>.*?>(.*?)<\/section>'%section
|
||||||
|
|
||||||
|
|
||||||
patronenlaces = '<h3>Películas Recién Agregadas</h3>.*?>(.*?)</section>'
|
|
||||||
matchesenlaces = re.compile(patronenlaces, re.DOTALL).findall(data)
|
matchesenlaces = re.compile(patronenlaces, re.DOTALL).findall(data)
|
||||||
|
|
||||||
logger.info("begin ----------")
|
|
||||||
scrapertools.printMatches(matchesenlaces)
|
|
||||||
logger.info("end ----------")
|
|
||||||
|
|
||||||
for bloque_enlaces in matchesenlaces:
|
for bloque_enlaces in matchesenlaces:
|
||||||
|
|
||||||
patron = '<div class="poster-media-card">.*?'
|
patron = '<div class="poster-media-card">.*?'
|
||||||
patron += '<a href="(.*?)".*?title="(.*?)".*?'
|
patron += '<a href="(.*?)".*?title="(.*?)"(.*?)'
|
||||||
patron += '<img src="(.*?)"'
|
patron += '<img src="(.*?)"'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(bloque_enlaces)
|
matches = re.compile(patron, re.DOTALL).findall(bloque_enlaces)
|
||||||
scrapertools.printMatches(matches)
|
|
||||||
|
|
||||||
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
for scrapedurl, scrapedtitle, extra_info, scrapedthumbnail in matches:
|
||||||
logger.info("He encontrado el segundo bloque")
|
logger.info("He encontrado el segundo bloque")
|
||||||
|
logger.info("extra_info: %s" % extra_info)
|
||||||
title = scrapertools.remove_show_from_title(scrapedtitle, "Ver Película")
|
title = scrapertools.remove_show_from_title(scrapedtitle, "Ver Película")
|
||||||
title = title.replace("Online", "");
|
title = title.replace("Online", "");
|
||||||
url = urlparse.urljoin(item.url, scrapedurl)
|
url = urlparse.urljoin(item.url, scrapedurl)
|
||||||
thumbnail = urlparse.urljoin(item.url, scrapedthumbnail)
|
thumbnail = urlparse.urljoin(item.url, scrapedthumbnail)
|
||||||
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, fulltitle=title, url=url,
|
quality = scrapertools.find_single_match(extra_info, 'calidad.*?>Calidad (.*?)<')
|
||||||
thumbnail=thumbnail, fanart=thumbnail))
|
year = scrapertools.find_single_match(extra_info, '"anio">(\d{4})<')
|
||||||
|
language = scrapertools.find_multiple_matches(extra_info, 'class="(latino|espanol|subtitulado)"')
|
||||||
|
# if language = 'ingles':
|
||||||
|
# language='vo'
|
||||||
|
new_item=Item(channel=item.channel, action="findvideos", title=title, fulltitle=title, url=url,
|
||||||
|
thumbnail=thumbnail, fanart=thumbnail, language=language, quality=quality,
|
||||||
|
infoLabels={'year': year})
|
||||||
|
if year:
|
||||||
|
tmdb.set_infoLabels_item(new_item)
|
||||||
|
|
||||||
## Paginación
|
itemlist.append(new_item)
|
||||||
# <span class="current">2</span><a href="http://www.repelis.tv/page/3"
|
|
||||||
|
|
||||||
# Si falla no muestra ">> Página siguiente"
|
|
||||||
try:
|
try:
|
||||||
next_page = scrapertools.get_match(data, '<span class="current">\d+</span><a href="([^"]+)"')
|
next_page = scrapertools.get_match(data, '<span class="current">\d+</span><a href="([^"]+)"')
|
||||||
title = "[COLOR red][B]Pagina siguiente »[/B][/COLOR]"
|
title = "[COLOR red][B]Pagina siguiente »[/B][/COLOR]"
|
||||||
itemlist.append(
|
itemlist.append(
|
||||||
Item(channel=item.channel, title=title, url=next_page, action="menupelis", thumbnail=item.thumbnail,
|
Item(channel=item.channel, title=title, url=next_page, action="menupelis", thumbnail=item.thumbnail,
|
||||||
fanart=item.fanart, folder=True))
|
fanart=item.fanart, folder=True, extra=item.extra))
|
||||||
except:
|
|
||||||
pass
|
|
||||||
return itemlist
|
|
||||||
|
|
||||||
|
|
||||||
# Todas las peliculas
|
|
||||||
def todaspelis(item):
|
|
||||||
logger.info(item.url)
|
|
||||||
|
|
||||||
itemlist = []
|
|
||||||
|
|
||||||
data = scrapertools.cache_page(item.url).decode('iso-8859-1').encode('utf-8')
|
|
||||||
print data
|
|
||||||
patronenlaces = '<h1>.*?</h1>.*?>(.*?)</section>'
|
|
||||||
matchesenlaces = re.compile(patronenlaces, re.DOTALL).findall(data)
|
|
||||||
|
|
||||||
for bloque_enlaces in matchesenlaces:
|
|
||||||
|
|
||||||
# patron = '<a href="([^"]+)" title="([^"]+)"> <div class="poster".*?<img src="([^"]+)"'
|
|
||||||
|
|
||||||
patron = '<div class="poster-media-card">.*?'
|
|
||||||
patron += '<a href="(.*?)".*?title="(.*?)".*?'
|
|
||||||
patron += '<img src="(.*?)"'
|
|
||||||
|
|
||||||
matches = re.compile(patron, re.DOTALL).findall(bloque_enlaces)
|
|
||||||
scrapertools.printMatches(matches)
|
|
||||||
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
|
||||||
title = scrapertools.remove_show_from_title(scrapedtitle, "Ver Película")
|
|
||||||
title = title.replace("Online", "");
|
|
||||||
url = urlparse.urljoin(item.url, scrapedurl)
|
|
||||||
thumbnail = urlparse.urljoin(item.url, scrapedthumbnail)
|
|
||||||
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, fulltitle=title, url=url,
|
|
||||||
thumbnail=thumbnail, fanart=thumbnail))
|
|
||||||
|
|
||||||
## Paginación
|
|
||||||
# <span class="current">2</span><a href="http://www.repelis.tv/page/3"
|
|
||||||
|
|
||||||
# Si falla no muestra ">> Página siguiente"
|
|
||||||
try:
|
|
||||||
next_page = scrapertools.get_match(data, '<span class="current">\d+</span><a href="([^"]+)"')
|
|
||||||
title = "[COLOR red][B]Pagina siguiente »[/B][/COLOR]"
|
|
||||||
itemlist.append(Item(channel=item.channel, title=title, url=next_page, action="todaspelis", folder=True))
|
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
return itemlist
|
return itemlist
|
||||||
@@ -154,7 +133,7 @@ def menudesta(item):
|
|||||||
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = scrapertools.cache_page(item.url).decode('iso-8859-1').encode('utf-8')
|
data = httptools.downloadpage(item.url).data.decode('iso-8859-1').encode('utf-8')
|
||||||
|
|
||||||
patronenlaces = '<h3>.*?Destacadas.*?>(.*?)<h3>'
|
patronenlaces = '<h3>.*?Destacadas.*?>(.*?)<h3>'
|
||||||
matchesenlaces = re.compile(patronenlaces, re.DOTALL).findall(data)
|
matchesenlaces = re.compile(patronenlaces, re.DOTALL).findall(data)
|
||||||
@@ -168,7 +147,6 @@ def menudesta(item):
|
|||||||
patron += '<img src="(.*?)"'
|
patron += '<img src="(.*?)"'
|
||||||
|
|
||||||
matches = re.compile(patron, re.DOTALL).findall(bloque_enlaces)
|
matches = re.compile(patron, re.DOTALL).findall(bloque_enlaces)
|
||||||
scrapertools.printMatches(matches)
|
|
||||||
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
||||||
title = scrapertools.remove_show_from_title(scrapedtitle, "Ver Película")
|
title = scrapertools.remove_show_from_title(scrapedtitle, "Ver Película")
|
||||||
title = title.replace("Online", "");
|
title = title.replace("Online", "");
|
||||||
@@ -186,7 +164,7 @@ def menuestre(item):
|
|||||||
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = scrapertools.cache_page(item.url).decode('iso-8859-1').encode('utf-8')
|
data = httptools.downloadpage(item.url).data.decode('iso-8859-1').encode('utf-8')
|
||||||
patronenlaces = '<h1>Estrenos</h1>(.*?)</section>'
|
patronenlaces = '<h1>Estrenos</h1>(.*?)</section>'
|
||||||
matchesenlaces = re.compile(patronenlaces, re.DOTALL).findall(data)
|
matchesenlaces = re.compile(patronenlaces, re.DOTALL).findall(data)
|
||||||
|
|
||||||
@@ -195,18 +173,22 @@ def menuestre(item):
|
|||||||
# patron = '<a href="([^"]+)" title="([^"]+)"> <div class="poster".*?<img src="([^"]+)"'
|
# patron = '<a href="([^"]+)" title="([^"]+)"> <div class="poster".*?<img src="([^"]+)"'
|
||||||
|
|
||||||
patron = '<div class="poster-media-card">.*?'
|
patron = '<div class="poster-media-card">.*?'
|
||||||
patron += '<a href="(.*?)".*?title="(.*?)".*?'
|
patron += '<a href="(.*?)".*?title="(.*?)"(.*?)'
|
||||||
patron += '<img src="(.*?)"'
|
patron += '<img src="(.*?)"'
|
||||||
|
|
||||||
matches = re.compile(patron, re.DOTALL).findall(bloque_enlaces)
|
matches = re.compile(patron, re.DOTALL).findall(bloque_enlaces)
|
||||||
scrapertools.printMatches(matches)
|
for scrapedurl, scrapedtitle, extra_info, scrapedthumbnail in matches:
|
||||||
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
|
||||||
title = scrapertools.remove_show_from_title(scrapedtitle, "Ver Película")
|
title = scrapertools.remove_show_from_title(scrapedtitle, "Ver Película")
|
||||||
title = title.replace("Online", "");
|
title = title.replace("Online", "");
|
||||||
url = urlparse.urljoin(item.url, scrapedurl)
|
url = urlparse.urljoin(item.url, scrapedurl)
|
||||||
thumbnail = urlparse.urljoin(item.url, scrapedthumbnail)
|
thumbnail = urlparse.urljoin(item.url, scrapedthumbnail)
|
||||||
|
quality = scrapertools.find_single_match(extra_info, 'calidad.*?>Calidad (.*?)<')
|
||||||
|
year = scrapertools.find_single_match(extra_info, '"anio">(\d{4})<')
|
||||||
|
language = scrapertools.find_single_match(extra_info, 'class="(latino|espanol|subtitulado)"')
|
||||||
|
|
||||||
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, fulltitle=title, url=url,
|
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, fulltitle=title, url=url,
|
||||||
thumbnail=thumbnail, fanart=thumbnail))
|
thumbnail=thumbnail, fanart=thumbnail, language=language, quality=quality,
|
||||||
|
infoLabels={'year': year}))
|
||||||
|
|
||||||
## Paginación
|
## Paginación
|
||||||
# <span class="current">2</span><a href="http://www.repelis.tv/page/3"
|
# <span class="current">2</span><a href="http://www.repelis.tv/page/3"
|
||||||
@@ -226,34 +208,15 @@ def findvideos(item):
|
|||||||
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = scrapertools.cache_page(item.url).decode('iso-8859-1').encode('utf-8')
|
data = httptools.downloadpage(item.url).data.decode('iso-8859-1').encode('utf-8')
|
||||||
|
|
||||||
'''<h2>Sinopsis</2><p>(.*?)</p>
|
|
||||||
<div id="informacion" class="tab-pane">
|
|
||||||
<h2>Titulo en Español</h2>
|
|
||||||
<p>Abzurdah</p>
|
|
||||||
<h2>Titulo Original</h2>
|
|
||||||
<p>Abzurdah</p>
|
|
||||||
<h2>Año de Lanzamiento</h2>
|
|
||||||
<p>2015</p>
|
|
||||||
<h2>Generos</h2>
|
|
||||||
<p>Romance</p>
|
|
||||||
<h2>Idioma</h2>
|
|
||||||
<p>Latino</p>
|
|
||||||
<h2>Calidad</h2>
|
|
||||||
<p>DVD-Rip</p>
|
|
||||||
'''
|
|
||||||
|
|
||||||
# estos son los datos para plot
|
|
||||||
patron = '<h2>Sinopsis</h2>.*?<p>(.*?)</p>.*?<div id="informacion".*?</h2>.*?<p>(.*?)</p>' # titulo
|
patron = '<h2>Sinopsis</h2>.*?<p>(.*?)</p>.*?<div id="informacion".*?</h2>.*?<p>(.*?)</p>' # titulo
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
scrapertools.printMatches(matches)
|
|
||||||
for sinopsis, title in matches:
|
for sinopsis, title in matches:
|
||||||
title = "[COLOR white][B]" + title + "[/B][/COLOR]"
|
title = "[COLOR white][B]" + title + "[/B][/COLOR]"
|
||||||
|
|
||||||
patron = '<div id="informacion".*?>(.*?)</div>'
|
patron = '<div id="informacion".*?>(.*?)</div>'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
scrapertools.printMatches(matches)
|
|
||||||
for scrapedplot in matches:
|
for scrapedplot in matches:
|
||||||
splot = title + "\n\n"
|
splot = title + "\n\n"
|
||||||
plot = scrapedplot
|
plot = scrapedplot
|
||||||
@@ -273,37 +236,45 @@ def findvideos(item):
|
|||||||
|
|
||||||
patron = '<tbody>(.*?)</tbody>'
|
patron = '<tbody>(.*?)</tbody>'
|
||||||
matchesx = re.compile(patron, re.DOTALL).findall(data)
|
matchesx = re.compile(patron, re.DOTALL).findall(data)
|
||||||
scrapertools.printMatches(matchesx)
|
|
||||||
|
|
||||||
for bloq in matchesx:
|
for bloq in matchesx:
|
||||||
patron = 'href="(.*?)".*?0 0">(.*?)</.*?<td>(.*?)</.*?<td>(.*?)<'
|
patron = 'href="(.*?)".*?0 0">(.*?)</.*?<td>(.*?)</.*?<td>(.*?)<'
|
||||||
|
|
||||||
matches = re.compile(patron, re.DOTALL).findall(bloq)
|
matches = re.compile(patron, re.DOTALL).findall(bloq)
|
||||||
# scrapertools.printMatches(matches)
|
|
||||||
|
|
||||||
for scrapedurl, scrapedserver, scrapedlang, scrapedquality in matches:
|
for scrapedurl, scrapedserver, scrapedlang, scrapedquality in matches:
|
||||||
url = urlparse.urljoin(item.url, scrapedurl)
|
url = urlparse.urljoin(item.url, scrapedurl)
|
||||||
logger.info("Lang:[" + scrapedlang + "] Quality[" + scrapedquality + "] URL[" + url + "]")
|
logger.info("Lang:[" + scrapedlang + "] Quality[" + scrapedquality + "] URL[" + url + "]")
|
||||||
patronenlaces = '.*?://(.*?)/'
|
patronenlaces = '.*?://(.*?)/'
|
||||||
matchesenlaces = re.compile(patronenlaces, re.DOTALL).findall(scrapedurl)
|
matchesenlaces = re.compile(patronenlaces, re.DOTALL).findall(scrapedurl)
|
||||||
scrapertools.printMatches(matchesenlaces)
|
|
||||||
scrapedtitle = ""
|
scrapedtitle = ""
|
||||||
|
if scrapedserver == 'Vimple':
|
||||||
|
scrapedserver = 'vimpleru'
|
||||||
|
elif scrapedserver == 'Ok.ru':
|
||||||
|
scrapedserver = 'okru'
|
||||||
|
server = servertools.get_server_name(scrapedserver)
|
||||||
for scrapedenlace in matchesenlaces:
|
for scrapedenlace in matchesenlaces:
|
||||||
scrapedtitle = title + " [COLOR white][ [/COLOR]" + "[COLOR green]" + scrapedquality + "[/COLOR]" + "[COLOR white] ][/COLOR]" + " [COLOR red] [" + scrapedlang + "][/COLOR] » " + scrapedserver
|
scrapedtitle = title + " [COLOR white][ [/COLOR]" + "[COLOR green]" + scrapedquality + "[/COLOR]" + "[COLOR white] ][/COLOR]" + " [COLOR red] [" + scrapedlang + "][/COLOR] » " + scrapedserver
|
||||||
itemlist.append(
|
|
||||||
Item(channel=item.channel, action="play", title=scrapedtitle, extra=title, url=url, fanart=item.thumbnail,
|
itemlist.append(Item(channel=item.channel, action="play", title=scrapedtitle, extra=title, url=url,
|
||||||
thumbnail=item.thumbnail, plot=splot, folder=False))
|
fanart=item.thumbnail, thumbnail=item.thumbnail, plot=splot, language=scrapedlang,
|
||||||
|
quality=scrapedquality, server=server))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
def play(item):
|
def play(item):
|
||||||
logger.info("url=" + item.url)
|
logger.info()
|
||||||
|
itemlist =[]
|
||||||
|
|
||||||
# itemlist = servertools.find_video_items(data=item.url)
|
data = httptools.downloadpage(item.url).data
|
||||||
|
|
||||||
url = scrapertools.find_single_match(scrapertools.cache_page(item.url), '<iframe src="([^"]+)"')
|
enc = scrapertools.find_multiple_matches(data, "Player\.decode\('(.*?)'\)")
|
||||||
itemlist = servertools.find_video_items(data=url)
|
dec=''
|
||||||
|
for cod in enc:
|
||||||
|
dec+=decode(cod)
|
||||||
|
url = scrapertools.find_single_match(dec,'src="(.*?)"')
|
||||||
|
itemlist.append(item.clone(url=url))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
@@ -314,17 +285,10 @@ def search(item, texto):
|
|||||||
item.url = 'http://www.repelis.tv/buscar/?s=%s' % (texto)
|
item.url = 'http://www.repelis.tv/buscar/?s=%s' % (texto)
|
||||||
logger.info(item.url)
|
logger.info(item.url)
|
||||||
|
|
||||||
data = scrapertools.cache_page(item.url).decode('iso-8859-1').encode('utf-8')
|
data = httptools.downloadpage(item.url).data.decode('iso-8859-1').encode('utf-8')
|
||||||
|
|
||||||
logger.info("data: " + data)
|
logger.info("data: " + data)
|
||||||
|
|
||||||
'''
|
|
||||||
<div class="col-xs-2">
|
|
||||||
<div class="row">
|
|
||||||
<a href="http://www.repelis.tv/8973/pelicula/contracted-phase-ii.html" title="Ver PelÃÂcula Contracted: Phase II Online">
|
|
||||||
<img src="http://1.bp.blogspot.com/-YWmw6voBipE/VcB91p-EcnI/AAAAAAAAQZs/EhUzWlInmA8/s175/contracted-phase-2.jpg" border="0">
|
|
||||||
'''
|
|
||||||
|
|
||||||
patron = '<div class="col-xs-2">.*?'
|
patron = '<div class="col-xs-2">.*?'
|
||||||
patron += '<div class="row">.*?'
|
patron += '<div class="row">.*?'
|
||||||
patron += '<a href="(.*?)" title="(.*?)">.*?'
|
patron += '<a href="(.*?)" title="(.*?)">.*?'
|
||||||
@@ -334,8 +298,6 @@ def search(item, texto):
|
|||||||
|
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
|
|
||||||
scrapertools.printMatches(matches)
|
|
||||||
print "repelis ..................................."
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
for scrapedurl, scrapedtitle, scrapedthumbnail in matches:
|
||||||
@@ -344,43 +306,38 @@ def search(item, texto):
|
|||||||
url = urlparse.urljoin(item.url, scrapedurl)
|
url = urlparse.urljoin(item.url, scrapedurl)
|
||||||
thumbnail = urlparse.urljoin(item.url, scrapedthumbnail)
|
thumbnail = urlparse.urljoin(item.url, scrapedthumbnail)
|
||||||
logger.info(url)
|
logger.info(url)
|
||||||
itemlist.append(
|
itemlist.append(Item(channel=item.channel, action="findvideos", title=title, fulltitle=title, url=url,
|
||||||
Item(channel=item.channel, action="findvideos", title=title, fulltitle=title, url=url, thumbnail=thumbnail,
|
thumbnail=thumbnail, fanart=thumbnail))
|
||||||
fanart=thumbnail))
|
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
# Por año, aquà está difÃcil filtrar las "eroticas" asà que quito la opcion si no esta el adultmode enabled
|
|
||||||
def poranyo(item):
|
def poranyo(item):
|
||||||
logger.info(item.url)
|
logger.info(item.url)
|
||||||
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = scrapertools.cache_page(item.url).decode('iso-8859-1').encode('utf-8')
|
data = httptools.downloadpage(item.url).data.decode('iso-8859-1').encode('utf-8')
|
||||||
|
|
||||||
patron = '<option value="([^"]+)">(.*?)</option>'
|
patron = '<option value="([^"]+)">(.*?)</option>'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
scrapertools.printMatches(matches)
|
|
||||||
for scrapedurl, scrapedtitle in matches:
|
for scrapedurl, scrapedtitle in matches:
|
||||||
title = scrapertools.remove_show_from_title(scrapedtitle, "Ver Película")
|
title = scrapertools.remove_show_from_title(scrapedtitle, "Ver Película")
|
||||||
title = title.replace("Online", "")
|
title = title.replace("Online", "")
|
||||||
url = urlparse.urljoin(item.url, scrapedurl)
|
url = urlparse.urljoin(item.url, scrapedurl)
|
||||||
itemlist.append(
|
itemlist.append(Item(channel=item.channel, action="menupelis", title=title, fulltitle=title, url=url,
|
||||||
Item(channel=item.channel, action="todaspelis", title=title, fulltitle=title, url=url, fanart=item.fanart))
|
fanart=item.fanart, extra='year'))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
# Aqui si que se filtran las eroticas
|
|
||||||
def porcateg(item):
|
def porcateg(item):
|
||||||
logger.info(item.url)
|
logger.info(item.url)
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
data = scrapertools.cache_page(item.url).decode('iso-8859-1').encode('utf-8')
|
data = httptools.downloadpage(item.url).data.decode('iso-8859-1').encode('utf-8')
|
||||||
patron = '<li class="cat-item cat-item-3">.*?<a href="([^"]+)" title="([^"]+)">'
|
patron = '<li class="cat-item cat-item-3">.*?<a href="([^"]+)" title="([^"]+)">'
|
||||||
matches = re.compile(patron, re.DOTALL).findall(data)
|
matches = re.compile(patron, re.DOTALL).findall(data)
|
||||||
scrapertools.printMatches(matches)
|
|
||||||
itemlist = []
|
itemlist = []
|
||||||
|
|
||||||
for scrapedurl, scrapedtitle in matches:
|
for scrapedurl, scrapedtitle in matches:
|
||||||
@@ -389,17 +346,49 @@ def porcateg(item):
|
|||||||
url = urlparse.urljoin(item.url, scrapedurl)
|
url = urlparse.urljoin(item.url, scrapedurl)
|
||||||
logger.info(url)
|
logger.info(url)
|
||||||
# si no esta permitidas categoria adultos, la filtramos
|
# si no esta permitidas categoria adultos, la filtramos
|
||||||
erotica = ""
|
extra = title
|
||||||
if config.get_setting("adult_mode") == 0:
|
adult_mode = config.get_setting("adult_mode")
|
||||||
patron = '.*?/erotic.*?'
|
if adult_mode != 0:
|
||||||
try:
|
if 'erotic' in scrapedurl:
|
||||||
erotica = scrapertools.get_match(scrapedurl, patron)
|
extra = 'adult'
|
||||||
except:
|
|
||||||
itemlist.append(
|
|
||||||
Item(channel=item.channel, action="todaspelis", fanart=item.fanart, title=title, fulltitle=title,
|
|
||||||
url=url))
|
|
||||||
else:
|
else:
|
||||||
itemlist.append(Item(channel=item.channel, action="todaspelis", title=title, fulltitle=title, url=url,
|
extra=title
|
||||||
fanart=item.fanart))
|
|
||||||
|
if (extra=='adult' and adult_mode != 0) or extra != 'adult':
|
||||||
|
itemlist.append(Item(channel=item.channel, action="menupelis", title=title, fulltitle=title, url=url,
|
||||||
|
fanart=item.fanart, extra = extra))
|
||||||
|
|
||||||
return itemlist
|
return itemlist
|
||||||
|
|
||||||
|
|
||||||
|
def decode(string):
|
||||||
|
|
||||||
|
keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/="
|
||||||
|
output = ''
|
||||||
|
input = string.encode('utf8')
|
||||||
|
i = 0
|
||||||
|
while i < len(input):
|
||||||
|
|
||||||
|
enc1 = keyStr.index(input[i])
|
||||||
|
i += 1
|
||||||
|
enc2 = keyStr.index(input[i])
|
||||||
|
i += 1
|
||||||
|
enc3 = keyStr.index(input[i])
|
||||||
|
i += 1
|
||||||
|
enc4 = keyStr.index(input[i])
|
||||||
|
i += 1
|
||||||
|
|
||||||
|
chr1 = (enc1 << 2) | (enc2 >> 4)
|
||||||
|
chr2 = ((enc2 & 15) << 4) | (enc3 >> 2)
|
||||||
|
chr3 = ((enc3 & 3) << 6) | enc4
|
||||||
|
|
||||||
|
output = output + unichr(chr1)
|
||||||
|
if enc3 != 64:
|
||||||
|
output = output + unichr(chr2)
|
||||||
|
|
||||||
|
if enc4 != 64:
|
||||||
|
output = output + unichr(chr3)
|
||||||
|
|
||||||
|
output = output.decode('utf8')
|
||||||
|
|
||||||
|
return output
|
||||||
@@ -28,7 +28,12 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"free": true,
|
"free": true,
|
||||||
"id": "okru",
|
"id": {
|
||||||
|
"value": [
|
||||||
|
"okru",
|
||||||
|
"ok.ru"
|
||||||
|
]
|
||||||
|
},
|
||||||
"name": "okru",
|
"name": "okru",
|
||||||
"settings": [
|
"settings": [
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -20,7 +20,12 @@
|
|||||||
]
|
]
|
||||||
},
|
},
|
||||||
"free": true,
|
"free": true,
|
||||||
"id": "vimpleru",
|
"id": {
|
||||||
|
"value": [
|
||||||
|
"vimpleru",
|
||||||
|
"vimple"
|
||||||
|
]
|
||||||
|
},
|
||||||
"name": "vimpleru",
|
"name": "vimpleru",
|
||||||
"settings": [
|
"settings": [
|
||||||
{
|
{
|
||||||
|
|||||||
Reference in New Issue
Block a user