From 4e74641f19e6b6bff204255ab865734081a59fa4 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Sat, 26 May 2018 00:07:30 -0500 Subject: [PATCH 01/13] unshortenit: updated --- plugin.video.alfa/lib/unshortenit.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/plugin.video.alfa/lib/unshortenit.py b/plugin.video.alfa/lib/unshortenit.py index 07141af1..a3973b87 100755 --- a/plugin.video.alfa/lib/unshortenit.py +++ b/plugin.video.alfa/lib/unshortenit.py @@ -28,11 +28,11 @@ def find_in_text(regex, text, flags=re.IGNORECASE | re.DOTALL): class UnshortenIt(object): - _adfly_regex = r'adf\.ly|q\.gs|j\.gs|u\.bb|ay\.gy|threadsphere\.bid|restorecosm\.bid' + _adfly_regex = r'adf\.ly|q\.gs|j\.gs|u\.bb|ay\.gy|threadsphere\.bid|restorecosm\.bid|clearload\.bid' _linkbucks_regex = r'linkbucks\.com|any\.gs|cash4links\.co|cash4files\.co|dyo\.gs|filesonthe\.net|goneviral\.com|megaline\.co|miniurls\.co|qqc\.co|seriousdeals\.net|theseblogs\.com|theseforums\.com|tinylinks\.co|tubeviral\.com|ultrafiles\.net|urlbeat\.net|whackyvidz\.com|yyv\.co' _adfocus_regex = r'adfoc\.us' _lnxlu_regex = r'lnx\.lu' - _shst_regex = r'sh\.st' + _shst_regex = r'sh\.st|gestyy\.com' _hrefli_regex = r'href\.li' _anonymz_regex = r'anonymz\.com' _shrink_service_regex = r'shrink-service\.it' From e416089190eece7324effee5a53be0c399c2f3b1 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Sat, 26 May 2018 08:30:38 -0500 Subject: [PATCH 02/13] clipwatching: fix --- plugin.video.alfa/servers/clipwatching.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/plugin.video.alfa/servers/clipwatching.py b/plugin.video.alfa/servers/clipwatching.py index a954f252..f1858955 100644 --- a/plugin.video.alfa/servers/clipwatching.py +++ b/plugin.video.alfa/servers/clipwatching.py @@ -17,7 +17,9 @@ def get_video_url(page_url, user="", password="", video_password=""): logger.info("(page_url='%s')" % page_url) data = httptools.downloadpage(page_url).data video_urls = [] - videourl, label = scrapertools.find_single_match(data, 'file:"([^"]+).*?label:"([^"]+)') - video_urls.append([label + " [clipwatching]", videourl]) - + videos = scrapertools.find_multiple_matches(data, 'file:"([^"]+).*?label:"([^"]+)') + for video, label in videos: + video_urls.append([label + " [clipwatching]", video]) + logger.info("Url: %s" %videos) + video_urls.sort(key=lambda it: int(it[0].split("p ", 1)[0])) return video_urls From 5faba0d79fb9bcb0ee950d2cd20ea126232c4ffc Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Sat, 26 May 2018 08:31:12 -0500 Subject: [PATCH 03/13] clipwatching: fix --- plugin.video.alfa/servers/clipwatching.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.video.alfa/servers/clipwatching.json b/plugin.video.alfa/servers/clipwatching.json index a411ac8b..8fceac73 100644 --- a/plugin.video.alfa/servers/clipwatching.json +++ b/plugin.video.alfa/servers/clipwatching.json @@ -9,7 +9,7 @@ }, { "pattern": "clipwatching.com/(\\w+)", - "url": "http://clipwatching.com/\\1.html" + "url": "http://clipwatching.com/embed-\\1.html" } ] }, From 017e3ba97629a9a291d7352ffd4bfa352d9f201d Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Sat, 26 May 2018 08:55:43 -0500 Subject: [PATCH 04/13] vidup: fix --- plugin.video.alfa/servers/vidup.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/plugin.video.alfa/servers/vidup.json b/plugin.video.alfa/servers/vidup.json index aae98f24..62ec188d 100755 --- a/plugin.video.alfa/servers/vidup.json +++ b/plugin.video.alfa/servers/vidup.json @@ -4,8 +4,8 @@ "ignore_urls": [], "patterns": [ { - "pattern": "vidup.me/(?:embed-|)([A-z0-9]+)", - "url": "http://vidup.me/embed-\\1.html" + "pattern": "vidup.(?:me|tv)/(?:embed-|)([A-z0-9]+)", + "url": "http://vidup.tv/embed-\\1.html" } ] }, @@ -39,4 +39,4 @@ } ], "thumbnail": "http://i.imgur.com/sZvy8IC.png?1" -} \ No newline at end of file +} From e6025ae411732a82039939dfe8ecce07d79c24e5 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Sat, 26 May 2018 08:56:39 -0500 Subject: [PATCH 05/13] vidup: fix --- plugin.video.alfa/servers/vidup.py | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) diff --git a/plugin.video.alfa/servers/vidup.py b/plugin.video.alfa/servers/vidup.py index 59eefc60..d6ffa53d 100755 --- a/plugin.video.alfa/servers/vidup.py +++ b/plugin.video.alfa/servers/vidup.py @@ -7,32 +7,25 @@ from platformcode import logger def test_video_exists(page_url): logger.info("(page_url='%s')" % page_url) - data = httptools.downloadpage(page_url).data - if "Not Found" in data: - return False, "[Vidup.me] El fichero no existe o ha sido borrado" - + return False, "[Vidup] El fichero no existe o ha sido borrado" return True, "" def get_video_url(page_url, premium=False, user="", password="", video_password=""): logger.info("url=" + page_url) - data = httptools.downloadpage(page_url).data - key = scrapertools.find_single_match(data, "var mpri_Key\s*=\s*'([^']+)'") - data_vt = httptools.downloadpage("http://vidup.me/jwv/%s" % key).data - vt = scrapertools.find_single_match(data_vt, 'file\|(.*?)\|direct') - + key = scrapertools.find_single_match(data, "var thief\s*=\s*'([^']+)'") + data_vt = httptools.downloadpage("http://vidup.tv/jwv/%s" % key).data + vt = scrapertools.find_single_match(data_vt, 'file\|direct\|(.*?)\|') # Extrae la URL video_urls = [] media_urls = scrapertools.find_multiple_matches(data, '\{"file"\:"([^"]+)","label"\:"([^"]+)"\}') for media_url, label in media_urls: ext = scrapertools.get_filename_from_url(media_url)[-4:] media_url += "?direct=false&ua=1&vt=%s" % vt - video_urls.append(["%s (%s) [vidup.me]" % (ext, label), media_url]) - + video_urls.append(["%s (%s) [vidup]" % (ext, label), media_url]) for video_url in video_urls: logger.info("%s - %s" % (video_url[0], video_url[1])) - return video_urls From 5e11c91b80ca19c47350c89cbf543b23a6ed40ea Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Sat, 26 May 2018 09:16:49 -0500 Subject: [PATCH 06/13] descargacineclasico: agregado opcion videoteca --- .../channels/descargacineclasico.py | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/plugin.video.alfa/channels/descargacineclasico.py b/plugin.video.alfa/channels/descargacineclasico.py index 88291a9d..2d52b3e8 100755 --- a/plugin.video.alfa/channels/descargacineclasico.py +++ b/plugin.video.alfa/channels/descargacineclasico.py @@ -2,7 +2,7 @@ import re from channelselector import get_thumb -from platformcode import logger +from platformcode import logger, config from core import scrapertools, httptools from core import servertools from core import tmdb @@ -86,7 +86,6 @@ def agregadas(item): thumbnail=thumbnail, plot=plot, show=title) ) - scrapertools.printMatches(itemlist) tmdb.set_infoLabels(itemlist) # Paginación try: @@ -116,8 +115,20 @@ def findvideos(item): itemlist.append( item.clone(action="play", title=title, url=scrapedurl) ) - tmdb.set_infoLabels(itemlist) itemlist = servertools.get_servers_itemlist(itemlist) + tmdb.set_infoLabels(itemlist) + if itemlist: + 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 + )) + return itemlist return itemlist From ab6be85177d6d0957fa3fda3e07654e778cdb1e2 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Sat, 26 May 2018 11:59:32 -0500 Subject: [PATCH 07/13] =?UTF-8?q?allcalidad:=20cambio=20cosm=C3=A9tico?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- plugin.video.alfa/channels/allcalidad.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/plugin.video.alfa/channels/allcalidad.py b/plugin.video.alfa/channels/allcalidad.py index 3f1f56a7..8c607370 100755 --- a/plugin.video.alfa/channels/allcalidad.py +++ b/plugin.video.alfa/channels/allcalidad.py @@ -161,8 +161,8 @@ def findvideos(item): title = titulo, url = url )) - tmdb.set_infoLabels(itemlist, __modo_grafico__) itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize()) + tmdb.set_infoLabels(itemlist, __modo_grafico__) # Requerido para FilterTools itemlist = filtertools.get_links(itemlist, item, list_language) From 322a91a93606f478121c00b04fb0762c068aa74e Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Mon, 28 May 2018 10:58:29 -0500 Subject: [PATCH 08/13] mastorrent: nuevo canal --- plugin.video.alfa/channels/mastorrents.json | 33 ++ plugin.video.alfa/channels/mastorrents.py | 323 ++++++++++++++++++++ 2 files changed, 356 insertions(+) create mode 100644 plugin.video.alfa/channels/mastorrents.json create mode 100644 plugin.video.alfa/channels/mastorrents.py diff --git a/plugin.video.alfa/channels/mastorrents.json b/plugin.video.alfa/channels/mastorrents.json new file mode 100644 index 00000000..6ebae2fc --- /dev/null +++ b/plugin.video.alfa/channels/mastorrents.json @@ -0,0 +1,33 @@ +{ + "id": "mastorrents", + "name": "MasTorrents", + "active": true, + "adult": false, + "language": ["cast","lat"], + "thumbnail": "https://s33.postimg.cc/3y8720l9b/mastorrents.png", + "banner": "", + "version": 1, + "categories": [ + "movie", + "tvshow", + "torrent" + ], + "settings": [ + { + "id": "include_in_newest_peliculas", + "type": "bool", + "label": "Incluir en Novedades - Peliculas", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_torrent", + "type": "bool", + "label": "Incluir en Novedades - Torrent", + "default": true, + "enabled": true, + "visible": true + } + ] +} \ No newline at end of file diff --git a/plugin.video.alfa/channels/mastorrents.py b/plugin.video.alfa/channels/mastorrents.py new file mode 100644 index 00000000..df53aece --- /dev/null +++ b/plugin.video.alfa/channels/mastorrents.py @@ -0,0 +1,323 @@ +# -*- coding: utf-8 -*- +# -*- Channel MasTorrents -*- +# -*- Created for Alfa-addon -*- +# -*- By the Alfa Develop Group -*- + +import re +from channelselector import get_thumb +from platformcode import logger +from platformcode import config +from core import scrapertools +from core.item import Item +from core import servertools +from core import httptools +from core import tmdb + +host = 'http://www.mastorrents.com/' + +def mainlist(item): + logger.info() + + itemlist = [] + + itemlist.append(item.clone(title="Peliculas", + action="movie_list", + thumbnail=get_thumb("channels_movie.png") + )) + + itemlist.append(item.clone(title="Series", + action="series_list", + thumbnail=get_thumb("channels_tvshow.png") + )) + return itemlist + + +def movie_list(item): + logger.info() + + itemlist = [] + + itemlist.append(item.clone(title="Todas", + action="lista", + url=host+'peliculas', + extra='movie', + thumbnail=get_thumb('all', auto=True) + )) + + itemlist.append(item.clone(title="Generos", + action="genres", + url=host, + extra='movie', + thumbnail=get_thumb('genres', auto=True) + )) + + itemlist.append(item.clone(title="Buscar", + action="search", + url=host + '?pTit=', thumbnail=get_thumb('search', auto=True), + extra='movie' + )) + return itemlist + + +def series_list(item): + logger.info() + + itemlist = [] + + itemlist.append(item.clone(title="Todas", + action="lista", + url=host + 'series', + extra='serie', + thumbnail=get_thumb('all', auto=True) + )) + + itemlist.append(item.clone(title="Generos", + action="genres", + url=host + 'series/', + extra='serie', + thumbnail=get_thumb('genres', auto=True) + )) + + itemlist.append(item.clone(title="Buscar", + action="search", + url=host + 'series/?pTit=', + extra='serie', + thumbnail=get_thumb('search', auto=True) + )) + return itemlist + + +def get_source(url): + logger.info() + data = httptools.downloadpage(url).data + data = re.sub(r'"|\n|\r|\t| |
|\s{2,}', "", data) + return data + +def lista (item): + logger.info () + itemlist = [] + infoLabels = dict() + data = get_source(item.url) + patron = "
.*?
') + import inspect + if next_page !='': + itemlist.append(item.clone(action = "lista", + title = 'Siguiente >>>', + url = next_page + )) + return itemlist + + +def genres(item): + logger.info() + + itemlist = [] + + data = get_source(item.url) + data = scrapertools.find_single_match(data,'Géneros(.+)
') + + patron = '' + + matches = re.compile(patron,re.DOTALL).findall(data) + + for value, title in matches: + url = item.url + value + title = title.decode('latin1').encode('utf8') + itemlist.append(Item(channel=item.channel, title=title, url=url, action='lista')) + return itemlist + +def search(item, texto): + logger.info() + texto = texto.replace(" ", "+") + item.url = item.url + texto + + if texto != '': + return lista(item) + else: + return [] + + +def seasons(item): + logger.info() + itemlist=[] + infoLabels = item.infoLabels + data=get_source(item.url) + patron ='href=javascript:showSeasson\(.*?\); id=.*?>Temporada (.*?)<\/a>' + matches = re.compile(patron, re.DOTALL).findall(data) + + for season in matches: + title='Temporada %s' % season + infoLabels['season'] = season + itemlist.append(Item(channel=item.channel, + title= title, + url=item.url, + action='episodesxseasons', + contentSeasonNumber=season, + contentSerieName=item.contentSerieName, + infoLabels=infoLabels + )) + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + itemlist = itemlist[::-1] + 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="all_episodes", contentSerieName=item.contentSerieName)) + + return itemlist + +def all_episodes(item): + logger.info() + itemlist = [] + templist = seasons(item) + for tempitem in templist: + itemlist += episodesxseasons(tempitem) + + return itemlist + +def episodesxseasons(item): + logger.info() + + itemlist=[] + + data=get_source(item.url) + patron = "
%sx(.\d+)<\/div>.*?" % item.contentSeasonNumber + patron += "image:url\('(.*?)'.*?href.*?>(%s)<" % item.contentSerieName + matches = re.compile(patron, re.DOTALL).findall(data) + infoLabels=item.infoLabels + for episode, scrapedurl, scrapedthumbnail, scrapedtitle in matches: + contentEpisodeNumber=episode + season = item.contentSeasonNumber + url=scrapedurl + thumbnail=scrapedthumbnail + infoLabels['episode']=episode + title = '%sx%s - %s' % (season, episode, item.contentSerieName) + itemlist.append(Item(channel=item.channel, + action='findvideos', + title=title, + url=url, + thumbnail=thumbnail, + contentSerieName=item.contentSerieName, + contentEpisodeNumber=contentEpisodeNumber, + infoLabels=infoLabels + )) + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + + return itemlist[::-1] + + +def findvideos(item): + logger.info() + itemlist=[] + data = get_source(item.url) + patron = "showDownload\(([^\)]+)\);.*?alt=.*?torrent (.*?) " + matches = re.compile(patron, re.DOTALL).findall(data) + + for extra_info, quality in matches: + extra_info= extra_info.replace(",'",'|') + extra_info= extra_info.split('|') + title = '%s [%s]' % ('Torrent', quality.strip()) + if item.extra == 'movie': + url = extra_info[2].strip("'") + else: + url = extra_info[3].strip("'") + server = 'torrent' + + if not '.torrent' in url: + if 'tvsinpagar' in url: + url = url.replace('http://','http://www.') + try: + from_web = httptools.downloadpage(url, follow_redirects=False) + url = from_web.headers['location'] + except: + pass + + if '.torrent' in url: + itemlist.append(Item(channel=item.channel, + title=title, + contentTitle= item.title, + url=url, + action='play', + quality=quality, + server=server, + thumbnail = item.infoLabels['thumbnail'], + infoLabels=item.infoLabels + )) + + if config.get_videolibrary_support() and len(itemlist) > 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 newest(category): + logger.info() + item = Item() + try: + if category in ['peliculas', 'torrent']: + item.url = host + 'estrenos-de-cine' + item.extra='movie' + itemlist = lista(item) + if itemlist[-1].title == 'Siguiente >>>': + itemlist.pop() + if category == 'torrent': + + item.url = host+'series' + item.extra = 'serie' + itemlist.extend(lista(item)) + + if itemlist[-1].title == 'Siguiente >>>': + itemlist.pop() + except: + import sys + for line in sys.exc_info(): + logger.error("%s" % line) + return [] + + return itemlist From a620665c0f455680911274895073bd98dac3d46b Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Mon, 28 May 2018 11:02:20 -0500 Subject: [PATCH 09/13] tiotorrent: fix --- plugin.video.alfa/channels/tiotorrent.py | 86 +++++++++++++++++++----- 1 file changed, 68 insertions(+), 18 deletions(-) diff --git a/plugin.video.alfa/channels/tiotorrent.py b/plugin.video.alfa/channels/tiotorrent.py index ad77c404..827d6caf 100644 --- a/plugin.video.alfa/channels/tiotorrent.py +++ b/plugin.video.alfa/channels/tiotorrent.py @@ -226,33 +226,83 @@ def episodesxseasons(item): return itemlist[::-1] +# def findvideos(item): +# logger.info() +# itemlist=[] +# data = get_source(item.url) +# patron = ".*?<\/a>(.*?)<\/i>.*? 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 findvideos(item): logger.info() itemlist=[] data = get_source(item.url) - patron = ".*?<\/a>(.*?)<\/i>.*? 0 and item.extra != 'findvideos': itemlist.append(Item(channel=item.channel, From c305aa5d849b3c76f481913b2aebdb5cc9a9c9c6 Mon Sep 17 00:00:00 2001 From: Intel1 <25161862+Intel11@users.noreply.github.com> Date: Tue, 29 May 2018 14:50:44 -0500 Subject: [PATCH 10/13] animeshd: fix --- plugin.video.alfa/channels/animeshd.py | 106 ++++++++++++++++++++----- 1 file changed, 85 insertions(+), 21 deletions(-) diff --git a/plugin.video.alfa/channels/animeshd.py b/plugin.video.alfa/channels/animeshd.py index d1f5635a..8d343d3b 100644 --- a/plugin.video.alfa/channels/animeshd.py +++ b/plugin.video.alfa/channels/animeshd.py @@ -10,6 +10,8 @@ from channelselector import get_thumb from core import tmdb from core.item import Item from platformcode import logger, config +from channels import autoplay +from channels import filtertools tgenero = {"Comedia": "https://s7.postimg.cc/ne9g9zgwb/comedia.png", "Drama": "https://s16.postimg.cc/94sia332d/drama.png", @@ -31,42 +33,60 @@ tgenero = {"Comedia": "https://s7.postimg.cc/ne9g9zgwb/comedia.png", host = "http://www.animeshd.tv" -headers = [['User-Agent', 'Mozilla/50.0 (Windows NT 10.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0'], - ['Referer', host]] +__comprueba_enlaces__ = config.get_setting('comprueba_enlaces', 'poseidonhd') +__comprueba_enlaces_num__ = config.get_setting('comprueba_enlaces_num', 'poseidonhd') + + +IDIOMAS = {'Castellano':'CAST','Latino': 'LAT', 'Subtitulado': 'VOSE'} +list_language = IDIOMAS.values() +list_quality = [] +list_servers = ['rapidvideo', 'openload', 'gvideo', 'streamango'] def mainlist(item): logger.info() + + autoplay.init(item.channel, list_servers, list_quality) + itemlist = [] - itemlist.append(item.clone(title="Ultimas", + + itemlist.append(item.clone(title="Castellano", action="lista", - thumbnail=get_thumb('last', auto=True), - fanart='https://s22.postimg.cc/cb7nmhwv5/ultimas.png', - url=host + '/ultimos' - )) + thumbnail=get_thumb('channels_spanish.png'), + fanart='https://s18.postimg.cc/fwvaeo6qh/todas.png', + url=host + '/castellano')) + + itemlist.append(item.clone(title="Latino", + action="lista", + thumbnail=get_thumb('channels_latino.png'), + fanart='https://s18.postimg.cc/fwvaeo6qh/todas.png', + url=host + '/latino')) itemlist.append(item.clone(title="Todas", action="lista", thumbnail=get_thumb('all', auto=True), fanart='https://s18.postimg.cc/fwvaeo6qh/todas.png', - url=host + '/buscar?t=todos&q=' - )) + url=host + '/buscar?t=todo&q=')) itemlist.append(item.clone(title="Generos", action="generos", url=host, thumbnail=get_thumb('genres', auto=True), - fanart='https://s3.postimg.cc/5s9jg2wtf/generos.png' - )) + fanart='https://s3.postimg.cc/5s9jg2wtf/generos.png')) itemlist.append(item.clone(title="Buscar", action="search", - url=host + '/buscar?t=todos&q=', + url=host + '/buscar?t=todo&q=', thumbnail=get_thumb('search', auto=True), fanart='https://s30.postimg.cc/pei7txpa9/buscar.png' )) + itemlist = filtertools.show_option(itemlist, item.channel, list_language, list_quality) + + autoplay.show_option(item.channel, itemlist) + + return itemlist @@ -98,21 +118,22 @@ def lista(item): title=title, url=url, thumbnail=thumbnail, - contentSerieName=title + contentSerieName=title, + context=filtertools.context(item, list_language, list_quality) )) # Paginacion next_page = scrapertools.find_single_match(data, - '
  • .*?<\/span><\/li>
  • .*?<\/a><\/li>') + '') next_page_url = scrapertools.decodeHtmlentities(next_page) if next_page_url != "": itemlist.append(Item(channel=item.channel, action="lista", title=">> Página siguiente", - url=next_page_url, + url=host+next_page_url, thumbnail='https://s16.postimg.cc/9okdu7hhx/siguiente.png' )) - tmdb.set_infoLabels(itemlist) + tmdb.set_infoLabels(itemlist, seekTmdb=True) return itemlist @@ -137,7 +158,7 @@ def generos(item): itemlist = [] data = get_source(item.url) - patron = '
  • (.*?)<\/a><\/li>' + patron = '
  • (.*?)<\/a><\/li>' matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl, scrapedtitle in matches: @@ -159,16 +180,59 @@ def episodios(item): itemlist = [] data = get_source(item.url) - patron = '
  • <\/span>(.*?) (\d+)<\/li>' + patron = '
  • .*?<\/span>(' \ + '.*?) (\d+)<\/li>' matches = re.compile(patron, re.DOTALL).findall(data) + infoLabels = item.infoLabels for scrapedurl, scrapedlang, scrapedtitle, episode in matches: language = scrapedlang title = scrapedtitle + " " + "1x" + episode url = scrapedurl - itemlist.append(item.clone(title=title, url=url, action='findvideos', language=language)) + infoLabels['season'] ='1' + infoLabels['episode'] = episode + + itemlist.append(Item(channel=item.channel, title=title, contentSerieName=item.contentSerieName, url=url, + action='findvideos', language=IDIOMAS[language], infoLabels=infoLabels)) - if config.get_videolibrary_support(): - itemlist.append(Item(channel=item.channel, title="Añadir serie a la biblioteca", url=item.url, action="add_serie_to_library", extra="episodios", fanart=item.thumbnail, thumbnail=item.thumbnail, contentTitle=item.show, show=item.show)) + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + + 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", contentSerieName=item.contentSerieName, + extra1='library')) return itemlist + +def findvideos(item): + logger.info() + + itemlist = [] + + data = get_source(item.url) + patron = "
    .*?src='(.*?)' title='(.*?)'" + matches = re.compile(patron, re.DOTALL).findall(data) + + + for scrapedurl, scrapedthumbnail, scrapedtitle in matches: + + url = host + scrapedurl + thumbnail = scrapedthumbnail + title = scrapedtitle + + itemlist.append(Item(channel=item.channel, + action='seasons', + title=title, + url=url, + thumbnail=thumbnail, + contentTitle=scrapedtitle, + contentSerieName=contentSerieName, + context=filtertools.context(item, list_language, list_quality), + )) + + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + + # #Paginacion + + if itemlist != []: + base_page = scrapertools.find_single_match(item.url,'(.*?)?') + next_page = scrapertools.find_single_match(data, '>>') + if next_page != '': + itemlist.append(Item(channel=item.channel, + action="lista", + title='Siguiente >>>', + url=base_page+next_page, + thumbnail='https://s16.postimg.cc/9okdu7hhx/siguiente.png', + )) + return itemlist + + +def section(item): + logger.info() + + itemlist = [] + data = get_source(item.url) + if item.title == 'Generos': + patron = '
  • (.*?)
  • ' + elif item.title == 'A - Z': + patron = "(.*?)" + matches = re.compile(patron, re.DOTALL).findall(data) + + for scrapedurl, scrapedtitle in matches: + + url = host + scrapedurl + title = scrapedtitle + itemlist.append(Item(channel=item.channel, + action='list_all', + title=title, + url=url + )) + return itemlist + +def seasons(item): + logger.info() + itemlist = [] + data = get_source(item.url) + + patron = '.*?Temporada (\d+) ' + matches = re.compile(patron, re.DOTALL).findall(data) + infoLabels=item.infoLabels + for scrapedseason in matches: + url = item.url + title = 'Temporada %s' % scrapedseason + contentSeasonNumber = scrapedseason + infoLabels['season'] = contentSeasonNumber + thumbnail = item.thumbnail + itemlist.append(Item(channel=item.channel, + action="episodesxseason", + title=title, + url=url, + thumbnail=thumbnail, + contentSeasonNumber=contentSeasonNumber, + infoLabels=infoLabels + )) + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + 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="all_episodes", + contentSerieName=item.contentSerieName, + )) + + return itemlist + + +def all_episodes(item): + logger.info() + itemlist = [] + templist = seasons(item) + for tempitem in templist: + itemlist += episodesxseason(tempitem) + return itemlist + + +def episodesxseason(item): + logger.info() + itemlist = [] + data = get_source(item.url) + season = item.contentSeasonNumber + patron = "%s+x(\d+) - (.*?) .*?(/banderas.*?)" % \ + season + matches = re.compile(patron, re.DOTALL).findall(data) + infoLabels = item.infoLabels + for scrapedurl, scraped_episode, scrapedtitle, lang_data in matches: + url = host + scrapedurl + title = '%sx%s - %s' % (season, scraped_episode, scrapedtitle.strip()) + infoLabels['episode'] = scraped_episode + thumbnail = item.thumbnail + title, language = add_language(title, lang_data) + itemlist.append(Item(channel=item.channel, + action="findvideos", + title=title, + url=url, + thumbnail=thumbnail, + language=language, + infoLabels=infoLabels + )) + + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + return itemlist + + +def add_language(title, string): + logger.info() + language = [] + languages = scrapertools.find_multiple_matches(string, '/banderas/(.*?).png') + + for lang in languages: + if lang == 'japvose': + lang = 'vos' + language.append(IDIOMAS[lang]) + title = '%s [%s]' % (title, IDIOMAS[lang]) + + return title, language + + +def findvideos(item): + logger.info() + + itemlist = [] + + data = get_source(item.url) + patron = "|\s{2,}', "", data) + patron = ".*?src=(.*?) style.*?value=(.*?)>" + + matches = re.compile(patron, re.DOTALL).findall(data) + + for scrapedurl, scrapedthumb, scrapedtitle in matches: + itemlist.append(Item(channel=item.channel, + title=scrapedtitle, + url=host+scrapedurl, + action="seasons", + thumbnail=scrapedthumb, + contentSerieName=scrapedtitle, + context=filtertools.context(item, list_language, list_quality) + )) + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb=True) + + return itemlist + + +def search(item, texto): + logger.info() + import urllib + if texto != '': + post = {'query':texto} + post = urllib.urlencode(post) + item.post = post + + return search_results(item)