diff --git a/cuevana3.json b/cuevana3.json new file mode 100644 index 00000000..97c0d751 --- /dev/null +++ b/cuevana3.json @@ -0,0 +1,69 @@ +{ + "id": "cuevana3", + "name": "Cuevana 3", + "active": true, + "adult": false, + "language": ["lat", "cast"], + "thumbnail": "https://www.cuevana3.co/wp-content/themes/cuevana3/public/img/cnt/cuevana3.png", + "banner": "", + "version": 1, + "categories": [ + "movie" + ], + "settings": [ + { + "id": "include_in_global_search", + "type": "bool", + "label": "Incluir en busqueda global", + "default": false, + "enabled": false, + "visible": false + }, + { + "id": "filter_languages", + "type": "list", + "label": "Mostrar enlaces en idioma...", + "default": 0, + "enabled": true, + "visible": true, + "lvalues": [ + "No filtrar", + "LAT", + "CAST", + "VOSE" + ] + }, + { + "id": "include_in_newest_peliculas", + "type": "bool", + "label": "Incluir en Novedades - Peliculas", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_infantiles", + "type": "bool", + "label": "Incluir en Novedades - Infantiles", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_terror", + "type": "bool", + "label": "Incluir en Novedades - Terror", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_documentales", + "type": "bool", + "label": "Incluir en Novedades - Documentales", + "default": true, + "enabled": true, + "visible": true + } + ] +} diff --git a/plugin.video.alfa/addon.xml b/plugin.video.alfa/addon.xml index e8bda9ea..9f4ebb95 100755 --- a/plugin.video.alfa/addon.xml +++ b/plugin.video.alfa/addon.xml @@ -1,5 +1,5 @@ - + @@ -18,13 +18,15 @@ resources/media/themes/ss/4.jpg [B]Estos son los cambios para esta versión:[/B] - [COLOR green][B]Arreglos[/B][/COLOR] - ¤ Grantorrent ¤ Zonatorrent ¤ pack +18 - ¤ erotik ¤ pelis24 ¤ cineasiaenlinea - ¤ pelisgratis ¤ repelis ¤ descargacineclasico - ¤ Goovie ¤ PelisFox ¤ PelisPlus - ¤ TvSeriesDk ¤ UqLoad ¤ Vi2 - ¤ gnula.biz + [COLOR green][B]Arreglos[/B][/COLOR] + ¤ maxipelis24 ¤ cuevana3 ¤ pelisplusco + ¤ mejortorrent ¤ newpct1 + + [COLOR green][B]Novedades[/B][/COLOR] + ¤ Mundopelis ¤ thevideobee ¤ tusfiles + ¤ vup + + ¤ Agradecimientos a @mac12m99 y @chivmalev por colaborar con ésta versión Navega con Kodi por páginas web para ver sus videos de manera fácil. diff --git a/plugin.video.alfa/channels/LIKUOO.py b/plugin.video.alfa/channels/LIKUOO.py index 20925e3c..2ca05d84 100644 --- a/plugin.video.alfa/channels/LIKUOO.py +++ b/plugin.video.alfa/channels/LIKUOO.py @@ -7,8 +7,6 @@ from core import scrapertools from core.item import Item from core import servertools from core import httptools -from core import tmdb -from core import jsontools host = 'http://www.likuoo.video' @@ -16,7 +14,8 @@ host = 'http://www.likuoo.video' def mainlist(item): logger.info() itemlist = [] - itemlist.append( Item(channel=item.channel, title="Ultimos" , action="peliculas", url=host)) + itemlist.append( Item(channel=item.channel, title="Ultimos" , action="lista", url=host)) + itemlist.append( Item(channel=item.channel, title="Pornstar" , action="categorias", url=host + "/pornstars/")) itemlist.append( Item(channel=item.channel, title="Categorias" , action="categorias", url=host + "/all-channels/")) itemlist.append( Item(channel=item.channel, title="Buscar", action="search")) return itemlist @@ -27,7 +26,7 @@ def search(item, texto): texto = texto.replace(" ", "+") item.url = host + "/search/?s=%s" % texto try: - return peliculas(item) + return lista(item) except: import sys for line in sys.exc_info(): @@ -46,16 +45,24 @@ def categorias(item): scrapedplot = "" scrapedthumbnail = "https:" + scrapedthumbnail scrapedurl = urlparse.urljoin(item.url,scrapedurl) - itemlist.append( Item(channel=item.channel, action="peliculas", title=scrapedtitle , url=scrapedurl , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) ) + itemlist.append( Item(channel=item.channel, action="lista", title=scrapedtitle, url=scrapedurl, + thumbnail=scrapedthumbnail, plot=scrapedplot) ) + next_page = scrapertools.find_single_match(data,'...') + if next_page!="": + next_page = urlparse.urljoin(item.url,next_page) + itemlist.append(item.clone(action="categorias", title="Página Siguiente >>", text_color="blue", url=next_page) ) return itemlist -def peliculas(item): +def lista(item): logger.info() itemlist = [] data = scrapertools.cachePage(item.url) data = re.sub(r"\n|\r|\t| |
", "", data) - patron = '
.*?.*?src="(.*?)".*?
(.*?)
' + patron = '
.*?' + patron += '.*?' + patron += 'src="(.*?)".*?' + patron += '
(.*?)
' matches = re.compile(patron,re.DOTALL).findall(data) for scrapedurl,scrapedtitle,scrapedthumbnail,scrapedtime in matches: url = urlparse.urljoin(item.url,scrapedurl) @@ -64,12 +71,12 @@ def peliculas(item): contentTitle = title thumbnail = "https:" + scrapedthumbnail plot = "" - year = "" - itemlist.append( Item(channel=item.channel, action="play" , title=title , url=url, thumbnail=thumbnail, plot=plot, contentTitle = contentTitle, infoLabels={'year':year} )) - next_page_url = scrapertools.find_single_match(data,'...
') - if next_page_url!="": - next_page_url = urlparse.urljoin(item.url,next_page_url) - itemlist.append( Item(channel=item.channel , action="peliculas" , title="Página Siguiente >>" , text_color="blue", url=next_page_url , folder=True) ) + itemlist.append( Item(channel=item.channel, action="play", title=title, url=url, thumbnail=thumbnail, + plot=plot, contentTitle = contentTitle)) + next_page = scrapertools.find_single_match(data,'...') + if next_page!="": + next_page = urlparse.urljoin(item.url,next_page) + itemlist.append(item.clone(action="lista", title="Página Siguiente >>", text_color="blue", url=next_page) ) return itemlist diff --git a/plugin.video.alfa/channels/TXXX.py b/plugin.video.alfa/channels/TXXX.py index 3ade3fb3..5755703b 100644 --- a/plugin.video.alfa/channels/TXXX.py +++ b/plugin.video.alfa/channels/TXXX.py @@ -2,14 +2,11 @@ #------------------------------------------------------------ import urlparse,urllib2,urllib,re import os, sys - -from core import jsontools as json from core import scrapertools from core import servertools from core.item import Item from platformcode import config, logger from core import httptools -from core import tmdb host = 'http://www.txxx.com' @@ -17,10 +14,10 @@ host = 'http://www.txxx.com' def mainlist(item): logger.info() itemlist = [] - itemlist.append( Item(channel=item.channel, title="Ultimas" , action="peliculas", url=host + "/latest-updates/")) - itemlist.append( Item(channel=item.channel, title="Mejor valoradas" , action="peliculas", url=host + "/top-rated/")) - itemlist.append( Item(channel=item.channel, title="Mas popular" , action="peliculas", url=host + "/most-popular/")) - itemlist.append( Item(channel=item.channel, title="Canal" , action="catalogo", url=host + "/channels-list/")) + itemlist.append( Item(channel=item.channel, title="Ultimas" , action="lista", url=host + "/latest-updates/")) + itemlist.append( Item(channel=item.channel, title="Mejor valoradas" , action="lista", url=host + "/top-rated/")) + itemlist.append( Item(channel=item.channel, title="Mas popular" , action="lista", url=host + "/most-popular/")) + itemlist.append( Item(channel=item.channel, title="Canal" , action="catalogo", url=host + "/channels-list/most-popular/")) itemlist.append( Item(channel=item.channel, title="Categorias" , action="categorias", url=host + "/categories/")) itemlist.append( Item(channel=item.channel, title="Buscar", action="search")) return itemlist @@ -31,7 +28,7 @@ def search(item, texto): texto = texto.replace(" ", "+") item.url = host + "/search/s=%s" % texto try: - return peliculas(item) + return lista(item) except: import sys for line in sys.exc_info(): @@ -44,19 +41,22 @@ def catalogo(item): itemlist = [] data = httptools.downloadpage(item.url).data data = re.sub(r"\n|\r|\t| |
", "", data) - patron = '
.*?(.*?)' + patron = '
.*?' + patron += '", "", data) patron = 'data-video-id="\d+">.*?(.*?)') + duration = scrapertools.find_single_match(scrapedtime, '(.*?)') + if scrapedhd != '': + title = "[COLOR yellow]" +duration+ "[/COLOR] " + "[COLOR red]" +scrapedhd+ "[/COLOR] "+scrapedtitle + else: + title = "[COLOR yellow]" + duration + "[/COLOR] " + scrapedtitle thumbnail = scrapedthumbnail plot = "" - year = "" itemlist.append( Item(channel=item.channel, action="play" , title=title , url=scrapedurl, thumbnail=thumbnail, - plot=plot, contentTitle=contentTitle, infoLabels={'year':year} )) - next_page_url = scrapertools.find_single_match(data,'\d+ 10: + itemlist.append( + Item(channel=item.channel, contentSerieName=item.contentSerieName, title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=url, action="lista", page=0)) + else: + itemlist.append( + Item(channel=item.channel, contentSerieName=item.contentSerieName, title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=item.url, action="lista", page=item.page + 1)) + + tmdb.set_infoLabels(itemlist) + return itemlist + +def peliculas(item): + logger.info() + + itemlist = [] + + data = httptools.downloadpage(item.url).data + data = re.sub(r"\n|\r|\t|\s{2}| ", "", data) + patron = '
(.+?)<\/span>' + matches = scrapertools.find_multiple_matches(data, patron) + # Paginacion + num_items_x_pagina = 30 + min = item.page * num_items_x_pagina + min=min-item.page + max = min + num_items_x_pagina - 1 + b=0 + for scrapedplot,scrapedthumbnail, scrapedtitle, scrapedyear, scrapedurl in matches[min:max]: + b=b+1 + url = host + scrapedurl + thumbnail = host +scrapedthumbnail + context = renumbertools.context(item) + context2 = autoplay.context + context.extend(context2) + itemlist.append(item.clone(title=scrapedtitle+"-"+scrapedyear, url=url, action="findvideos", thumbnail=thumbnail, plot=scrapedplot, + show=scrapedtitle,contentSerieName=scrapedtitle,context=context)) + if b<29: + pass + else: + itemlist.append( + Item(channel=item.channel, contentSerieName=item.contentSerieName, title="[COLOR cyan]Página Siguiente >>[/COLOR]", url=item.url, action="peliculas", page=item.page + 1)) + + tmdb.set_infoLabels(itemlist) + return itemlist + +def episodios(item): + logger.info() + + itemlist = [] + data = httptools.downloadpage(item.url).data + # obtener el numero total de episodios + total_episode = 0 + + patron_caps = '
  • (.*?) - (.*?)<\/a><\/li>' + matches = scrapertools.find_multiple_matches(data, patron_caps) + patron_info = '.+?

    ([^"]+)<\/h1>

    (.+?)<\/p>' + scrapedthumbnail, show, scrapedplot = scrapertools.find_single_match(data, patron_info) + scrapedthumbnail = host + scrapedthumbnail + + for link, cap, name in matches: + + title = "" + pat = "$%&" + # varios episodios en un enlace + if len(name.split(pat)) > 1: + i = 0 + for pos in name.split(pat): + i = i + 1 + total_episode += 1 + season, episode = renumbertools.numbered_for_tratk(item.channel, item.contentSerieName, 1, total_episode) + if len(name.split(pat)) == i: + title += "%sx%s " % (season, str(episode).zfill(2)) + else: + title += "%sx%s_" % (season, str(episode).zfill(2)) + else: + total_episode += 1 + season, episode = renumbertools.numbered_for_tratk(item.channel,item.contentSerieName, 1, total_episode) + + title += "%sx%s " % (season, str(episode).zfill(2)) + + url = host + "/" + link + if "DISPONIBLE" in name: + title += "No Disponible aún" + else: + title += name + itemlist.append( + Item(channel=item.channel, action="findvideos", title=title, url=url, show=show, plot=scrapedplot, + thumbnail=scrapedthumbnail)) + + if config.get_videolibrary_support() and len(itemlist) > 0: + itemlist.append(Item(channel=item.channel, title="[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]", url=item.url, + action="add_serie_to_library", extra="episodios", show=show)) + + return itemlist + +def findvideos(item): + import base64 + logger.info() + itemlist = [] + data = httptools.downloadpage(item.url).data + _sl = scrapertools.find_single_match(data, 'var abi = ([^;]+);') + sl = eval(_sl) + buttons = scrapertools.find_multiple_matches(data,'class="bsel" sl="(.+?)"')#[0,1,2,3,4] + for ids in buttons: + id = int(ids) + url_end = golink(id,sl) + new_url = "https://abtoon.net/" + "embed/" + sl[0] + "/" + sl[1] + "/" + str(id) + "/" + sl[2] + url_end + data_new = httptools.downloadpage(new_url).data + data_new = re.sub(r"\n|\r|\t|\s{2}| ", "", data_new) + logger.info("asdasdasdcc"+data_new) + valor1, valor2 = scrapertools.find_single_match(data_new, 'var x0x = \["[^"]*", "([^"]+)", "[^"]*", "[^"]*", "([^"]+)"\];') + try: + url = base64.b64decode(gktools.transforma_gsv(valor2, base64.b64decode(valor1))) + if 'download' in url: + url = url.replace('download', 'preview') + title = '%s' + itemlist.append(Item(channel=item.channel, title=title, url=url, action='play', language='latino', + infoLabels=item.infoLabels)) + except Exception as e: + logger.info(e) + itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize()) + # Requerido para FilterTools + itemlist = filtertools.get_links(itemlist, item, list_language) + # Requerido para AutoPlay + autoplay.start(itemlist, item) + + return itemlist + +def golink(ida,sl): + a=ida + b=[3,10,5,22,31] + c=1 + d="" + e=sl[2] + for i in range(len(b)): + d=d+substr(e,b[i]+a,c) + return d + +def substr(st,a,b): + return st[a:a+b] \ No newline at end of file diff --git a/plugin.video.alfa/channels/allcalidad.py b/plugin.video.alfa/channels/allcalidad.py index d297d964..3cd981d8 100755 --- a/plugin.video.alfa/channels/allcalidad.py +++ b/plugin.video.alfa/channels/allcalidad.py @@ -19,7 +19,7 @@ list_servers = ['rapidvideo', 'streamango', 'fastplay', 'flashx', 'openload', 'v __channel__='allcalidad' -host = "http://allcalidad.net/" +host = "https://allcalidad.net/" try: __modo_grafico__ = config.get_setting('modo_grafico', __channel__) @@ -198,17 +198,16 @@ def findvideos(item): autoplay.start(itemlist, item) - if itemlist: + if itemlist and item.contentChannel != "videolibrary": itemlist.append(Item(channel = item.channel)) itemlist.append(item.clone(channel="trailertools", title="Buscar Tráiler", action="buscartrailer", context="", text_color="magenta")) # Opción "Añadir esta película a la biblioteca de KODI" - if item.extra != "library": - if config.get_videolibrary_support(): - itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green", - action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail, - contentTitle = item.contentTitle - )) + if config.get_videolibrary_support(): + itemlist.append(Item(channel=item.channel, title="Añadir a la videoteca", text_color="green", + action="add_pelicula_to_library", url=item.url, thumbnail = item.thumbnail, + contentTitle = item.contentTitle + )) return itemlist diff --git a/plugin.video.alfa/channels/alsoporn.py b/plugin.video.alfa/channels/alsoporn.py index f1e7e5fb..5bd8e5a4 100644 --- a/plugin.video.alfa/channels/alsoporn.py +++ b/plugin.video.alfa/channels/alsoporn.py @@ -7,15 +7,14 @@ from core import scrapertools from core.item import Item from core import servertools from core import httptools -from core import tmdb -from core import jsontools host = 'http://www.alsoporn.com' + def mainlist(item): logger.info() itemlist = [] - itemlist.append( Item(channel=item.channel, title="Top" , action="peliculas", url=host + "/g/All/top/1")) + itemlist.append( Item(channel=item.channel, title="Top" , action="lista", url=host + "/g/All/top/1")) itemlist.append( Item(channel=item.channel, title="Categorias" , action="categorias", url=host)) itemlist.append( Item(channel=item.channel, title="Buscar", action="search")) return itemlist @@ -26,7 +25,7 @@ def search(item, texto): texto = texto.replace(" ", "+") item.url = host + "/search/=%s/" % texto try: - return peliculas(item) + return lista(item) except: import sys for line in sys.exc_info(): @@ -46,8 +45,8 @@ def catalogo(item): for scrapedurl,cantidad,scrapedtitle in matches: scrapedplot = "" scrapedthumbnail = "" - itemlist.append( Item(channel=item.channel, action="peliculas", title=scrapedtitle, url=scrapedurl, - thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) ) + itemlist.append( Item(channel=item.channel, action="lista", title=scrapedtitle, url=scrapedurl, + thumbnail=scrapedthumbnail, plot=scrapedplot) ) return itemlist @@ -62,12 +61,12 @@ def categorias(item): for scrapedurl,scrapedthumbnail,scrapedtitle in matches: scrapedplot = "" scrapedurl = urlparse.urljoin(item.url,scrapedurl) - itemlist.append( Item(channel=item.channel, action="peliculas", title=scrapedtitle, url=scrapedurl, - thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) ) + itemlist.append( Item(channel=item.channel, action="lista", title=scrapedtitle, url=scrapedurl, + thumbnail=scrapedthumbnail, plot=scrapedplot) ) return itemlist -def peliculas(item): +def lista(item): logger.info() itemlist = [] data = scrapertools.cachePage(item.url) @@ -82,14 +81,12 @@ def peliculas(item): title = "[COLOR yellow]" + scrapedtime + "[/COLOR] " + scrapedtitle thumbnail = scrapedthumbnail plot = "" - year = "" itemlist.append( Item(channel=item.channel, action="play", title=title, url=url, thumbnail=thumbnail, - plot=plot, contentTitle = title, infoLabels={'year':year} )) - next_page_url = scrapertools.find_single_match(data,'

  • NEXT') - if next_page_url!="": - next_page_url = urlparse.urljoin(item.url,next_page_url) - itemlist.append( Item(channel=item.channel , action="peliculas", title="Página Siguiente >>", text_color="blue", - url=next_page_url , folder=True) ) + plot=plot, contentTitle = scrapedtitle)) + next_page = scrapertools.find_single_match(data,'
  • NEXT') + if next_page!="": + next_page = urlparse.urljoin(item.url,next_page) + itemlist.append(item.clone(action="lista", title="Página Siguiente >>", text_color="blue", url=next_page) ) return itemlist diff --git a/plugin.video.alfa/channels/analdin.py b/plugin.video.alfa/channels/analdin.py index 29bf3c73..051cc8f3 100644 --- a/plugin.video.alfa/channels/analdin.py +++ b/plugin.video.alfa/channels/analdin.py @@ -7,17 +7,17 @@ from core import scrapertools from core.item import Item from core import servertools from core import httptools -from core import tmdb -from core import jsontools + host = 'https://www.analdin.com/es' + def mainlist(item): logger.info() itemlist = [] - itemlist.append( Item(channel=item.channel, title="Nuevas" , action="peliculas", url=host + "/más-reciente/")) - itemlist.append( Item(channel=item.channel, title="Mas Vistas" , action="peliculas", url=host + "/más-visto/")) - itemlist.append( Item(channel=item.channel, title="Mejor valorada" , action="peliculas", url=host + "/mejor-valorado/")) + itemlist.append( Item(channel=item.channel, title="Nuevas" , action="lista", url=host + "/más-reciente/")) + itemlist.append( Item(channel=item.channel, title="Mas Vistas" , action="lista", url=host + "/más-visto/")) + itemlist.append( Item(channel=item.channel, title="Mejor valorada" , action="lista", url=host + "/mejor-valorado/")) itemlist.append( Item(channel=item.channel, title="Canal" , action="catalogo", url=host)) itemlist.append( Item(channel=item.channel, title="Categorias" , action="categorias", url=host + "/categorías/")) itemlist.append( Item(channel=item.channel, title="Buscar", action="search")) @@ -29,7 +29,7 @@ def search(item, texto): texto = texto.replace(" ", "+") item.url = host + "/?s=%s" % texto try: - return peliculas(item) + return lista(item) except: import sys for line in sys.exc_info(): @@ -48,13 +48,12 @@ def catalogo(item): for scrapedurl,scrapedtitle in matches: scrapedplot = "" scrapedthumbnail = "" - itemlist.append( Item(channel=item.channel, action="peliculas", title=scrapedtitle, url=scrapedurl, - thumbnail=scrapedthumbnail , plot=scrapedplot) ) - next_page_url = scrapertools.find_single_match(data,'
  • ') - if next_page_url!="": - next_page_url = urlparse.urljoin(item.url,next_page_url) - itemlist.append( Item(channel=item.channel, action="catalogo", title="Página Siguiente >>", text_color="blue", - url=next_page_url) ) + itemlist.append( Item(channel=item.channel, action="lista", title=scrapedtitle, url=scrapedurl, + thumbnail=scrapedthumbnail, plot=scrapedplot) ) + next_page = scrapertools.find_single_match(data,'
  • ') + if next_page!="": + next_page = urlparse.urljoin(item.url,next_page) + itemlist.append(item.clone(action="catalogo", title="Página Siguiente >>", text_color="blue", url=next_page) ) return itemlist @@ -71,12 +70,12 @@ def categorias(item): scrapedplot = "" scrapedtitle = scrapedtitle + " (" + cantidad + ")" scrapedurl = urlparse.urljoin(item.url,scrapedurl) - itemlist.append( Item(channel=item.channel, action="peliculas", title=scrapedtitle, url=scrapedurl, + itemlist.append( Item(channel=item.channel, action="lista", title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, plot=scrapedplot) ) return itemlist -def peliculas(item): +def lista(item): logger.info() itemlist = [] data = httptools.downloadpage(item.url).data @@ -91,14 +90,13 @@ def peliculas(item): title = "[COLOR yellow]" + scrapedtime + "[/COLOR] " + scrapedtitle thumbnail = scrapedthumbnail plot = "" - year = "" itemlist.append( Item(channel=item.channel, action="play", title=title, url=url, thumbnail=thumbnail, plot=plot, - contentTitle = title, infoLabels={'year':year} )) - next_page_url = scrapertools.find_single_match(data,'
  • (.*?)
    (.*?).+?' '
    (.*?)
    .+?class="full">(.*?)

    ', re.DOTALL).findall(data) itemlist = [] for thumbnail, url, title, genres, plot in matches: - title = clean_title(title) url = urlparse.urljoin(HOST, url) thumbnail = urlparse.urljoin(HOST, thumbnail) new_item = Item(channel=item.channel, action="episodios", title=title, url=url, thumbnail=thumbnail, fulltitle=title, plot=plot) - if "Pelicula Anime" in genres: new_item.contentType = "movie" new_item.contentTitle = title @@ -189,7 +168,6 @@ def listado(item): if url_pagination: url = urlparse.urljoin(HOST, url_pagination) title = ">> Pagina Siguiente" - itemlist.append(Item(channel=item.channel, action="listado", title=title, url=url)) return itemlist @@ -203,7 +181,6 @@ def episodios(item): item.plot = scrapertools.find_single_match(data, 'Description[^>]+>

    (.*?)

    ') data = scrapertools.find_single_match(data, '
    (.*?)
    ') matches = re.compile(']+>(.+?)(.*?)') - patronvideos = '(?s)[^<]+
    ([^<]+).*?src="([^"]+)"[\s\S]+?

    (.+?)

    ' + patronvideos = '(?s)
    [^<]+
    ([^<]+).*?src="([^"]+)"[\s\S]+?

    (.+?)

    ' matches = re.compile(patronvideos, re.DOTALL).findall(data) itemlist = [] for url, title, thumbnail, plot in matches: @@ -165,13 +182,16 @@ def series(item): scrapedurl = urlparse.urljoin(item.url, url) scrapedthumbnail = thumbnail scrapedplot = plot + context = renumbertools.context(item) + context2 = autoplay.context + context.extend(context2) itemlist.append(Item(channel=item.channel, action="episodios", title=scrapedtitle, url=scrapedurl, - thumbnail=scrapedthumbnail, plot=scrapedplot, show=scrapedtitle, + thumbnail=scrapedthumbnail, plot=scrapedplot, show=scrapedtitle, context=context, viewmode="movie_with_plot")) itemlist = sorted(itemlist, key=lambda it: it.title) try: page_url = scrapertools.find_single_match(data, '
  • >
  • ') - itemlist.append(Item(channel=item.channel, action="series", title=">> Página siguiente", + itemlist.append(Item(channel=item.channel, action="series", title="[COLOR cyan]>> Página siguiente[/COLOR]", url=urlparse.urljoin(item.url, page_url), viewmode="movie_with_plot", thumbnail="", plot="")) except: @@ -185,33 +205,39 @@ def episodios(item, final=True): data = httptools.downloadpage(item.url).data data_id = scrapertools.find_single_match(data, 'data-id="([^"]+)') CHANNEL_HEADERS = [ - ["Host", "m.animeid.tv"], - ["X-Requested-With", "XMLHttpRequest"] + ["Host", "m.animeid.tv"], + ["X-Requested-With", "XMLHttpRequest"] ] page = 0 while True: page += 1 - u = "https://m.animeid.tv/ajax/caps?id=%s&ord=DESC&pag=%s" %(data_id, page) + u = "https://m.animeid.tv/ajax/caps?id=%s&ord=DESC&pag=%s" % (data_id, page) data = httptools.downloadpage(u, headers=CHANNEL_HEADERS).data # Cuando ya no hay datos devuelve: "list":[] if '"list":[]' in data: break dict_data = jsontools.load(data) - list = dict_data['list'] + list = dict_data['list'][::-1] for dict in list: - itemlist.append(Item(action = "findvideos", - channel = item.channel, - title = "1x" + dict["numero"] + " - " + dict["date"], - url = CHANNEL_HOST + dict['href'], - thumbnail = item.thumbnail, - show = item.show, - viewmode = "movie_with_plot" - )) + season, episode = renumbertools.numbered_for_tratk(item.channel, item.contentSerieName, 1, + int(dict["numero"])) + title = "%sx%s - %s" % (season, str(episode).zfill(2), dict["date"]) + itemlist.append(Item(action="findvideos", + channel=item.channel, + title=title, + url=CHANNEL_HOST + dict['href'], + thumbnail=item.thumbnail, + show=item.show, + viewmode="movie_with_plot" + )) if config.get_videolibrary_support(): - itemlist.append(Item(channel=item.channel, title="Añadir esta serie a la videoteca", url=item.url, - action="add_serie_to_library", extra="episodios", show=item.show)) - itemlist.append(Item(channel=item.channel, title="Descargar todos los episodios de la serie", url=item.url, - action="download_all_episodes", extra="episodios", show=item.show)) + itemlist.append( + Item(channel=item.channel, title="[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]", url=item.url, + action="add_serie_to_library", extra="episodios", show=item.show)) + itemlist.append( + Item(channel=item.channel, title="[COLOR white]Descargar todos los episodios de la serie[/COLOR]", + url=item.url, + action="download_all_episodes", extra="episodios", show=item.show)) return itemlist @@ -249,4 +275,8 @@ def findvideos(item): itemlist.append(Item(channel=item.channel, action="findvideos", title="Siguiente: " + title_siguiente, url=CHANNEL_HOST + url_siguiente, thumbnail=item.thumbnail, plot=item.plot, show=item.show, fanart=item.thumbnail, folder=True)) + + # Requerido para AutoPlay + autoplay.start(itemlist, item) + return itemlist diff --git a/plugin.video.alfa/channels/animemovil.py b/plugin.video.alfa/channels/animemovil.py deleted file mode 100644 index 0cd3153a..00000000 --- a/plugin.video.alfa/channels/animemovil.py +++ /dev/null @@ -1,338 +0,0 @@ -# -*- coding: utf-8 -*- - -import re - -from channels import renumbertools -from core import httptools -from core import servertools -from core import jsontools -from core import scrapertools -from core.item import Item -from platformcode import platformtools, config, logger - - - -__modo_grafico__ = config.get_setting('modo_grafico', 'animemovil') -__perfil__ = '' - -# Fijar perfil de color -perfil = [['0xFFFFE6CC', '0xFFFFCE9C', '0xFF994D00', '0xFFFE2E2E', '0xFFFFD700'], - ['0xFFA5F6AF', '0xFF5FDA6D', '0xFF11811E', '0xFFFE2E2E', '0xFFFFD700'], - ['0xFF58D3F7', '0xFF2E9AFE', '0xFF2E64FE', '0xFFFE2E2E', '0xFFFFD700']] -if __perfil__ < 3: - color1, color2, color3, color4, color5 = perfil[__perfil__] -else: - color1 = color2 = color3 = color4 = color5 = "" - -host = "http://animemovil.com" - - -def mainlist(item): - logger.info() - - itemlist = [] - - itemlist.append(Item(channel=item.channel, action="recientes", title="Episodios Recientes", thumbnail=item.thumbnail, - url=host, text_color=color1, contentType="tvshow", extra="recientes")) - - itemlist.append(Item(channel=item.channel, action="listado", title="Anime", thumbnail=item.thumbnail, - url=host+'/api/buscador?q=&letra=ALL&genero=ALL&estado=2&offset=0&limit=20', text_color=color1, contentType="tvshow", extra="recientes")) - - itemlist.append(Item(channel=item.channel, action="list_by_json", title="En emisión", thumbnail=item.thumbnail, - text_color=color2, contentType="tvshow")) - itemlist.append(Item(channel=item.channel, action="indices", title="Índices", thumbnail=item.thumbnail, - text_color=color2)) - - - itemlist.append(Item(channel=item.channel, action="search", title="Buscar...", - thumbnail=item.thumbnail, text_color=color3)) - - itemlist.append(item.clone(title="Configurar canal", action="openconfig", text_color=color5, folder=False)) - if renumbertools.context: - itemlist = renumbertools.show_option(item.channel, itemlist) - - - return itemlist - - -def openconfig(item): - ret = platformtools.show_channel_settings() - platformtools.itemlist_refresh() - return ret - - -def search(item, texto): - item.url = "%s/api/buscador?q=%s&letra=ALL&genero=ALL&estado=2&offset=0&limit=30" % (host, texto.replace(" ", "+")) - return list_by_json(item) - - -def recientes(item): - logger.info() - item.contentType = "tvshow" - itemlist = [] - - data = httptools.downloadpage(item.url).data - data = re.sub(r'\n|\s{2,}','', data) - - bloque = scrapertools.find_single_match(data, '
      (.*?)
    ') - patron = '
  • ') - patron = '') + + patron = '([^<]+)' + matches = re.compile(patron, re.DOTALL).findall(data) + + for scrapedurl, scrapedtitle in matches: + itemlist.append(Item(channel=item.channel, url=scrapedurl, title=scrapedtitle, action='list_all', + type=item.type, page=0)) + + return itemlist + + +def list_all(item): + logger.info() + import urllib + itemlist = [] + if item.page == 0: + data = get_source(item.url+item.path) + else: + post = {'page': str(item.page)} + post = urllib.urlencode(post) + data = httptools.downloadpage(host+'home/%sAjax/%s' % ('newest', str(item.page)), post=post).data + data = re.sub(r'\n|\r|\t| |
    |\s{2,}', "", data) + + patron = '
    .*?.*? 0: + itemlist.append( + Item(channel=item.channel, title='[COLOR yellow]Añadir esta serie a la videoteca[/COLOR]', url=item.url, + action="add_serie_to_library", extra="episodios", contentSerieName=item.contentSerieName)) + + return itemlist + +def episodios(item): + logger.info() + itemlist = [] + templist = seasons(item) + for tempitem in templist: + itemlist += episodesxseasons(tempitem) + + return itemlist + +def episodesxseasons(item): + logger.info() + + itemlist = [] + duplicados = [] + data=get_source(item.url) + patron='data-id="(\d+)" season="%s" id_lang="(\d+)" id_movies_types="\d".*?' \ + 'block;">([^<]+)' % item.infoLabels['season'] + matches = re.compile(patron, re.DOTALL).findall(data) + + infoLabels = item.infoLabels + + for scrapedepisode, lang, scrapedtitle in matches: + + infoLabels['episode'] = scrapedepisode + url = item.url + title = '%sx%s - %s' % (infoLabels['season'], infoLabels['episode'], scrapedtitle) + + if scrapedepisode not in duplicados: + itemlist.append(Item(channel=item.channel, title= title, url=url, action='findvideos', infoLabels=infoLabels)) + duplicados.append(scrapedepisode) + + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + + return itemlist + + +def findvideos(item): + logger.info() + + itemlist = [] + + data = get_source(item.url) + if 'episode="0" season="0"' not in data and item.contentType != 'episode': + item.contentSerieName = item.contentTitle + item.contentTitle = None + item.contentType = None + item.infoLabels = None + tmdb.set_infoLabels_item(item, seekTmdb=True) + return seasons(item) + + if 'episode="0" season="0"' not in data: + season = item.infoLabels['season'] + episode = item.infoLabels['episode'] + else: + season = '0' + episode = '0' + + patron = ' 0 and item.extra != 'findvideos': + itemlist.append( + Item(channel=item.channel, title='[COLOR yellow]Añadir esta pelicula a la videoteca[/COLOR]', url=item.url, + action="add_pelicula_to_library", extra="findvideos", contentTitle=item.contentTitle)) + + return itemlist + +def search(item, texto): + logger.info() + texto = texto.replace(" ", "+") + post = 'search=%s' % texto + item.post = post + item.url = item.url + + if texto != '': + return search_results(item) + else: + return [] + +def search_results(item): + logger.info() + + itemlist=[] + + headers = {'Referer': host, 'X-Requested-With': 'XMLHttpRequest'} + data = httptools.downloadpage(item.url, headers=headers, post=item.post).data + data = re.sub(r'\n|\r|\t| |
    |\s{2,}', "", data) + patron = 'class="results\d+".*?([^<]+)<' + matches = re.compile(patron, re.DOTALL).findall(data) + + for scrapedurl, scrapedthumb, scrapedtitle in matches: + + if '(' in scrapedtitle: + title = scrapertools.find_single_match(scrapedtitle, '(.*?)\(').strip() + year = scrapertools.find_single_match(scrapedtitle, '\((\d+)\)') + else: + title = scrapedtitle + year = '-' + url = scrapedurl + thumbnail = scrapedthumb + + new_item=Item(channel=item.channel, title=title, url=url, thumbnail=thumbnail, + action='findvideos', infoLabels={'year':year}) + + itemlist.append(new_item) + + return itemlist + +def newest(categoria): + logger.info() + itemlist = [] + item = Item() + try: + item.type = 'movies' + item.page = 0 + if categoria in ['peliculas']: + item.url = host + 'home/newest?show=' + elif categoria == 'infantiles': + item.url = host + 'home/genero/54' + elif categoria == 'terror': + item.url = host + 'home/genero/49' + itemlist = list_all(item) + if itemlist[-1].title == 'Siguiente >>': + itemlist.pop() + except: + import sys + for line in sys.exc_info(): + logger.error("{0}".format(line)) + return [] + + return itemlist diff --git a/plugin.video.alfa/channels/perfectgirls.py b/plugin.video.alfa/channels/perfectgirls.py index 22b127a6..0a7a19d9 100644 --- a/plugin.video.alfa/channels/perfectgirls.py +++ b/plugin.video.alfa/channels/perfectgirls.py @@ -7,7 +7,6 @@ from core import scrapertools from core.item import Item from core import servertools from core import httptools -from core import tmdb host = 'http://www.perfectgirls.net' @@ -17,7 +16,6 @@ def mainlist(item): itemlist = [] itemlist.append( Item(channel=item.channel, title="Ultimos" , action="peliculas", url=host)) itemlist.append( Item(channel=item.channel, title="Top" , action="peliculas", url=host + "/top/3days/")) - itemlist.append( Item(channel=item.channel, title="Categorias" , action="categorias", url=host)) itemlist.append( Item(channel=item.channel, title="Buscar", action="search")) return itemlist @@ -47,7 +45,8 @@ def categorias(item): scrapedplot = "" scrapedthumbnail = "" url = urlparse.urljoin(item.url,scrapedurl) + "/1" - itemlist.append( Item(channel=item.channel, action="peliculas", title=scrapedtitle , url=url , thumbnail=scrapedthumbnail , plot=scrapedplot , folder=True) ) + itemlist.append( Item(channel=item.channel, action="peliculas", title=scrapedtitle, url=url, + thumbnail=scrapedthumbnail, plot=scrapedplot) ) return itemlist @@ -61,24 +60,21 @@ def peliculas(item): patron += '' matches = re.compile(patron,re.DOTALL).findall(data) scrapertools.printMatches(matches) - for scrapedurl,scrapedtitle,scrapedthumbnail,time in matches: + for scrapedurl,scrapedtitle,scrapedthumbnail,duracion in matches: plot = "" - contentTitle = scrapedtitle - scrapedhd = scrapertools.find_single_match(time, '
    ([^"]+)
    ') - if scrapedhd == 'HD': - time = scrapertools.find_single_match(time, '([^"]+)') - title = "[COLOR yellow]" + time + "[/COLOR] " + "[COLOR red]" + scrapedhd + "[/COLOR] " + scrapedtitle - else: - time = scrapertools.find_single_match(time, '([^"]+)') + time = scrapertools.find_single_match(duracion, '([^"]+)') + if not 'HD' in duracion : title = "[COLOR yellow]" + time + "[/COLOR] " + scrapedtitle + else: + title = "[COLOR yellow]" + time + "[/COLOR] " + "[COLOR red]" + "HD" + "[/COLOR] " + scrapedtitle scrapedthumbnail = "http:" + scrapedthumbnail url = urlparse.urljoin(item.url,scrapedurl) - year = "" - itemlist.append( Item(channel=item.channel, action="play" , title=title , url=url, thumbnail=scrapedthumbnail, plot=plot, contentTitle = contentTitle, infoLabels={'year':year} )) + itemlist.append( Item(channel=item.channel, action="play", title=title, url=url, thumbnail=scrapedthumbnail, + plot=plot, contentTitle = title)) next_page = scrapertools.find_single_match(data, 'Next
  • ') if next_page: next_page = urlparse.urljoin(item.url, next_page) - itemlist.append( Item(channel=item.channel, action="peliculas", title="Página Siguiente >>" , text_color="blue", url=next_page )) + itemlist.append(item.clone(action="peliculas", title="Página Siguiente >>", text_color="blue", url=next_page )) return itemlist @@ -89,6 +85,6 @@ def play(item): patron = '' matches = re.compile(patron,re.DOTALL).findall(data) for scrapedurl,scrapedtitle in matches: - itemlist.append(item.clone(action="play", title=scrapedtitle, fulltitle = item.title, url=scrapedurl)) + itemlist.append(item.clone(action="play", title=scrapedtitle, url=scrapedurl)) return itemlist diff --git a/plugin.video.alfa/channels/pordede.json b/plugin.video.alfa/channels/pordede.json deleted file mode 100644 index 65c0cde2..00000000 --- a/plugin.video.alfa/channels/pordede.json +++ /dev/null @@ -1,85 +0,0 @@ -{ - "id": "pordede", - "name": "Pordede", - "active": true, - "adult": false, - "language": ["cast"], - "thumbnail": "pordede.png", - "banner": "pordede.png", - "categories": [ - "movie", - "tvshow" - ], - "settings": [ - { - "id": "pordedeuser", - "type": "text", - "label": "@30014", - "enabled": true, - "visible": true - }, - { - "id": "pordedepassword", - "type": "text", - "hidden": true, - "label": "@30015", - "enabled": "!eq(-1,'')", - "visible": true - }, - { - "id": "include_in_global_search", - "type": "bool", - "label": "Incluir en busqueda global", - "default": false, - "enabled": "!eq(-1,'') + !eq(-2,'')", - "visible": true - }, - { - "id": "pordedesortlinks", - "type": "list", - "label": "Ordenar enlaces", - "default": 0, - "enabled": true, - "visible": "!eq(-2,'') + !eq(-3,'')", - "lvalues": [ - "No", - "Por no Reportes", - "Por Idioma", - "Por Calidad", - "Por Idioma y Calidad", - "Por Idioma y no Reportes", - "Por Idioma, Calidad y no Reportes" - ] - }, - { - "id": "pordedeshowlinks", - "type": "list", - "label": "Mostrar enlaces", - "default": 0, - "enabled": true, - "visible": "!eq(-3,'') + !eq(-4,'')", - "lvalues": [ - "Todos", - "Ver online", - "Descargar" - ] - }, - { - "id": "pordedenumberlinks", - "type": "list", - "label": "Limitar número de enlaces", - "default": 0, - "enabled": true, - "visible": "!eq(-4,'') + !eq(-5,'')", - "lvalues": [ - "No", - "5", - "10", - "15", - "20", - "25", - "30" - ] - } - ] -} diff --git a/plugin.video.alfa/channels/pordede.py b/plugin.video.alfa/channels/pordede.py deleted file mode 100644 index 29347d39..00000000 --- a/plugin.video.alfa/channels/pordede.py +++ /dev/null @@ -1,665 +0,0 @@ -# -*- coding: utf-8 -*- - -import os -import re -import sys -import urlparse - -from core import channeltools -from core import httptools -from core import jsontools -from core import scrapertools -from core import servertools -from core.item import Item -from platformcode import config, logger -from platformcode import platformtools - -def login(): - url_origen = "http://www.pordede.com" - data = httptools.downloadpage(url_origen).data - if config.get_setting("pordedeuser", "pordede") in data: - return True - - url = "http://www.pordede.com/api/login/auth?response_type=code&client_id=appclient&redirect_uri=http%3A%2F%2Fwww.pordede.com%2Fapi%2Flogin%2Freturn&state=none" - post = "username=%s&password=%s&authorized=autorizar" % (config.get_setting("pordedeuser", "pordede"), config.get_setting("pordedepassword", "pordede")) - data = httptools.downloadpage(url, post).data - if '"ok":true' in data: - return True - else: - return False - -def mainlist(item): - logger.info() - - itemlist = [] - - if not config.get_setting("pordedeuser", "pordede"): - itemlist.append( Item( channel=item.channel , title="Habilita tu cuenta en la configuración..." , action="settingCanal" , url="") ) - else: - result = login() - if not result: - itemlist.append(Item(channel=item.channel, action="mainlist", title="Login fallido. Volver a intentar...")) - return itemlist - itemlist.append( Item(channel=item.channel, action="menuseries" , title="Series" , url="" )) - itemlist.append( Item(channel=item.channel, action="menupeliculas" , title="Películas y documentales" , url="" )) - itemlist.append( Item(channel=item.channel, action="listas_sigues" , title="Listas que sigues" , url="http://www.pordede.com/lists/following" )) - itemlist.append( Item(channel=item.channel, action="tus_listas" , title="Tus listas" , url="http://www.pordede.com/lists/yours" )) - itemlist.append( Item(channel=item.channel, action="listas_sigues" , title="Top listas" , url="http://www.pordede.com/lists" )) - itemlist.append( Item(channel=item.channel, action="settingCanal" , title="Configuración..." , url="" )) - - return itemlist - -def settingCanal(item): - return platformtools.show_channel_settings() - -def menuseries(item): - logger.info() - - itemlist = [] - itemlist.append( Item(channel=item.channel, action="peliculas" , title="Novedades" , url="http://www.pordede.com/series/loadmedia/offset/0/showlist/hot" )) - itemlist.append( Item(channel=item.channel, action="generos" , title="Por géneros" , url="http://www.pordede.com/series" )) - itemlist.append( Item(channel=item.channel, action="peliculas" , title="Siguiendo" , url="http://www.pordede.com/series/following" )) - itemlist.append( Item(channel=item.channel, action="siguientes" , title="Siguientes Capítulos" , url="http://www.pordede.com/main/index" , viewmode="movie")) - itemlist.append( Item(channel=item.channel, action="peliculas" , title="Favoritas" , url="http://www.pordede.com/series/favorite" )) - itemlist.append( Item(channel=item.channel, action="peliculas" , title="Pendientes" , url="http://www.pordede.com/series/pending" )) - itemlist.append( Item(channel=item.channel, action="peliculas" , title="Terminadas" , url="http://www.pordede.com/series/seen" )) - itemlist.append( Item(channel=item.channel, action="peliculas" , title="Recomendadas" , url="http://www.pordede.com/series/recommended" )) - itemlist.append( Item(channel=item.channel, action="search" , title="Buscar..." , url="http://www.pordede.com/series" )) - - return itemlist - -def menupeliculas(item): - logger.info() - - itemlist = [] - itemlist.append( Item(channel=item.channel, action="peliculas" , title="Novedades" , url="http://www.pordede.com/pelis/loadmedia/offset/0/showlist/hot" )) - itemlist.append( Item(channel=item.channel, action="generos" , title="Por géneros" , url="http://www.pordede.com/pelis" )) - itemlist.append( Item(channel=item.channel, action="peliculas" , title="Favoritas" , url="http://www.pordede.com/pelis/favorite" )) - itemlist.append( Item(channel=item.channel, action="peliculas" , title="Pendientes" , url="http://www.pordede.com/pelis/pending" )) - itemlist.append( Item(channel=item.channel, action="peliculas" , title="Vistas" , url="http://www.pordede.com/pelis/seen" )) - itemlist.append( Item(channel=item.channel, action="peliculas" , title="Recomendadas" , url="http://www.pordede.com/pelis/recommended" )) - itemlist.append( Item(channel=item.channel, action="search" , title="Buscar..." , url="http://www.pordede.com/pelis" )) - - return itemlist - -def generos(item): - logger.info() - - # Descarga la pagina - data = httptools.downloadpage(item.url).data - - # Extrae las entradas (carpetas) - data = scrapertools.find_single_match(data,'
    (.*?)
    ') - patron = '([^<]+)\((\d+)\)' - matches = re.compile(patron,re.DOTALL).findall(data) - itemlist = [] - - for textid,scrapedurl,scrapedtitle,cuantos in matches: - title = scrapedtitle.strip()+" ("+cuantos+")" - thumbnail = "" - plot = "" - - if "/pelis" in item.url: - url = "http://www.pordede.com/pelis/loadmedia/offset/0/genre/"+textid.replace(" ","%20")+"/showlist/all" - else: - url = "http://www.pordede.com/series/loadmedia/offset/0/genre/"+textid.replace(" ","%20")+"/showlist/all" - - itemlist.append( Item(channel=item.channel, action="peliculas" , title=title , url=url, thumbnail=thumbnail, plot=plot, fulltitle=title)) - - return itemlist - -def search(item,texto): - logger.info() - - if item.url=="": - item.url="http://www.pordede.com/pelis" - - texto = texto.replace(" ","-") - - item.extra = item.url - item.url = item.url+"/loadmedia/offset/0/query/"+texto+"/years/1950/on/undefined/showlist/all" - - try: - return buscar(item) - except: - import sys - for line in sys.exc_info(): - logger.error("%s" % line) - return [] - -def buscar(item): - logger.info() - - # Descarga la pagina - headers = {"X-Requested-With": "XMLHttpRequest"} - data = httptools.downloadpage(item.url, headers=headers).data - - # Extrae las entradas (carpetas) - json_object = jsontools.load(data) - data = json_object["html"] - - return parse_mixed_results(item,data) - -def parse_mixed_results(item,data): - patron = 'Siguiendo(.*?)
    ') - patron = '
    [^<]+' - patron += ''+episode+' ([^<]+)(\s*
    \s*]*>]*>[^<]*]*>[^<]*]*>]*>]*>[^<]*]*>[^<]*
    )?' - matches = re.compile(patron,re.DOTALL).findall(bloque_episodios) - - for scrapedurl,scrapedtitle,info,visto in matches: - if visto.strip()=="active": - visto_string = "[visto] " - else: - visto_string = "" - numero=episode - title = visto_string+session+"x"+numero+" "+scrapertools.htmlclean(scrapedtitle) - thumbnail = "" - plot = "" - - epid = scrapertools.find_single_match(scrapedurl,"id/(\d+)") - url = "http://www.pordede.com/links/viewepisode/id/"+epid - itemlist.append( Item(channel=item.channel, action="findvideos" , title=title , url=url, thumbnail=thumbnail, plot=plot, fulltitle=title, fanart=item.fanart, show=item.show)) - - itemlist2 = [] - for capitulo in itemlist: - itemlist2 = findvideos(capitulo) - - return itemlist2 - -def peliculas(item): - logger.info() - - # Descarga la pagina - headers = {"X-Requested-With": "XMLHttpRequest"} - data = httptools.downloadpage(item.url, headers=headers).data - - # Extrae las entradas (carpetas) - json_object = jsontools.load(data) - data = json_object["html"] - - return parse_mixed_results(item,data) - -def episodios(item): - logger.info() - - itemlist = [] - - # Descarga la pagina - idserie = '' - data = httptools.downloadpage(item.url).data - - patrontemporada = '
    ]+>([^<]+)