From 73efed17d0cb53e7f309fad8dd68a34a203172d9 Mon Sep 17 00:00:00 2001 From: William Lopez Date: Sat, 15 Sep 2018 15:38:07 -0400 Subject: [PATCH 01/18] yts.am working --- plugin.video.alfa/channels/yts.json | 23 ++++ plugin.video.alfa/channels/yts.py | 123 ++++++++++++++++++ .../resources/media/channels/thumb/yts.jpg | Bin 0 -> 18739 bytes 3 files changed, 146 insertions(+) create mode 100644 plugin.video.alfa/channels/yts.json create mode 100644 plugin.video.alfa/channels/yts.py create mode 100644 plugin.video.alfa/resources/media/channels/thumb/yts.jpg diff --git a/plugin.video.alfa/channels/yts.json b/plugin.video.alfa/channels/yts.json new file mode 100644 index 00000000..c3a13cb6 --- /dev/null +++ b/plugin.video.alfa/channels/yts.json @@ -0,0 +1,23 @@ +{ + "id": "yts", + "name": "Yts", + "active": true, + "adult": false, + "language": ["*"], + "thumbnail": "yts.jpg", + "categories": [ + "movie", + "torrent", + "vos" + ], + "settings":[ + { + "id": "include_in_global_search", + "type": "bool", + "label": "Incluir en busqueda global", + "default": false, + "enabled": true, + "visible": true + } + ] +} \ No newline at end of file diff --git a/plugin.video.alfa/channels/yts.py b/plugin.video.alfa/channels/yts.py new file mode 100644 index 00000000..183629ff --- /dev/null +++ b/plugin.video.alfa/channels/yts.py @@ -0,0 +1,123 @@ +# -*- coding: utf-8 -*- + +from core import httptools +from core import scrapertools +from core import servertools +from core import tmdb +from core.item import Item +from lib import generictools +from platformcode import logger + +def mainlist(item): + logger.info() + itemlist = [] + itemlist.append(Item(channel = item.channel, + title = "Browse", + action = "movies", + opt = 0, + url = "https://yts.am/browse-movies" + )) + + itemlist.append(Item(channel = item.channel, + title = "Popular", + action = "movies", + opt = 1, + url = "https://yts.am" )) + + itemlist.append(Item(channel = item.channel, + title = "Search", + action = "search", + opt = 0, + url = "https://yts.am/browse-movies" + )) + + return itemlist + +def movies(item): + logger.info() + itemlist = [] + infoLabels = {} + data = httptools.downloadpage(item.url).data + + patron = '(?s)class="browse-movie-wrap.*?a href="([^"]+).*?' #Movie link + patron += 'img class.*?src="([^"]+).*?' #Image + patron += 'movie-title">.*?([^<]+)' #Movie title + patron += '.*?year">(.*?)<' #Year + + matches = scrapertools.find_multiple_matches(data, patron) + idx = 0 + + for scrapedurl, scrapedthumbnail, scrapedtitle, year in matches: + if item.opt == 1: + scrapedthumbnail = 'https://yts.am' + scrapedthumbnail + infoLabels['plot'] = findplot(scrapedurl) + + itemlist.append(Item(action = "findvideo", + channel = item.channel, + infoLabels = infoLabels, + title = scrapedtitle + ' (' + year + ')', + thumbnail = scrapedthumbnail, + url = scrapedurl + )) + idx += 1 + if item.opt == 1 and idx == 4: + break + if itemlist != []: + actual_page = item.url + pattern = '(?s)href="([^"]+)">Next.*?' + next_page = scrapertools.find_single_match(data, pattern) + + if next_page != '': + itemlist.append(Item(channel=item.channel, + action="movies", + title='Next >>>', + url='https://yts.am' + next_page)) + + return itemlist + +def findplot(url): + data = httptools.downloadpage(url).data + + pattern = '(?s)' #Synopsis + + plot = scrapertools.find_single_match(data, pattern) + + return plot + +def findvideo(item): + itemlist = [] + data = httptools.downloadpage(item.url).data + + patron = '(?s)modal-quality.*?(.*?)' #Quality + patron += '.*?size">(.*?)

' #Type + patron += '.*?href="([^"]+)" rel' #Torrent link + + matches = scrapertools.find_multiple_matches(data, patron) + + for quality, videoType, link in matches: + + title = item.title + ' ' + quality + ' ' + videoType + itemlist.append(Item(channel = item.channel, + title=title, + url = link, + thumbnail = item.thumbnail, + action='play', + server='torrent' + )) + + return itemlist + +def search(item, text): + logger.info('search: ' + text) + + try: + item.url = 'https://yts.am/browse-movies/' + text + '/all/all/0/latest' + itemlist = movies(item) + + return itemlist + + except: + import sys + for line in sys.exc_info(): + logger.error("%s" % line) + return [] \ No newline at end of file diff --git a/plugin.video.alfa/resources/media/channels/thumb/yts.jpg b/plugin.video.alfa/resources/media/channels/thumb/yts.jpg new file mode 100644 index 0000000000000000000000000000000000000000..6804b34aec626afc3cf971f7465f55eb32bc966c GIT binary patch literal 18739 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 literal 0 HcmV?d00001 From f2a0d576ec19fdb1474085c3274d81612de0af48 Mon Sep 17 00:00:00 2001 From: chivmalev Date: Tue, 18 Sep 2018 11:03:38 -0300 Subject: [PATCH 02/18] fix varios --- plugin.video.alfa/channels/maxipelis24.py | 77 ++++++++++++----------- plugin.video.alfa/channels/pelisplanet.py | 20 +++--- 2 files changed, 52 insertions(+), 45 deletions(-) diff --git a/plugin.video.alfa/channels/maxipelis24.py b/plugin.video.alfa/channels/maxipelis24.py index 456cd828..525f8f84 100644 --- a/plugin.video.alfa/channels/maxipelis24.py +++ b/plugin.video.alfa/channels/maxipelis24.py @@ -4,6 +4,7 @@ import re import urlparse import urllib +from core import tmdb from core import servertools from core import httptools from core import scrapertools @@ -11,7 +12,7 @@ from core.item import Item from platformcode import config, logger from channelselector import get_thumb -host="http://maxipelis24.com" +host = "http://maxipelis24.com" def mainlist(item): @@ -19,11 +20,11 @@ def mainlist(item): itemlist = [] - itemlist.append(Item(channel=item.channel, title="peliculas", action="movies", url=host, thumbnail=get_thumb('movies', auto=True))) - itemlist.append(Item(channel=item.channel, action="category", title="Año de Estreno", url=host, cat='year', thumbnail=get_thumb('year', auto=True))) - itemlist.append(Item(channel=item.channel, action="category", title="Géneros", url=host, cat='genre', thumbnail=get_thumb('genres', auto=True))) - itemlist.append(Item(channel=item.channel, action="category", title="Calidad", url=host, cat='quality', thumbnail=get_thumb("quality", auto=True))) - itemlist.append(Item(channel=item.channel, title="Buscar", action="search", url=host+"?s=", thumbnail=get_thumb("search", auto=True))) + itemlist.append(Item(channel = item.channel, title = "peliculas", action = "movies", url = host, thumbnail = get_thumb('movies', auto = True))) + itemlist.append(Item(channel = item.channel, action = "category", title = "Año de Estreno", url = host, cat = 'year', thumbnail = get_thumb('year', auto = True))) + itemlist.append(Item(channel = item.channel, action = "category", title = "Géneros", url = host, cat = 'genre', thumbnail = get_thumb('genres', auto = True))) + itemlist.append(Item(channel = item.channel, action = "category", title = "Calidad", url = host, cat = 'quality', thumbnail = get_thumb("quality", auto = True))) + itemlist.append(Item(channel = item.channel, title = "Buscar", action = "search", url = host + "?s=", thumbnail = get_thumb("search", auto = True))) return itemlist @@ -51,8 +52,8 @@ def category(item): patron = 'li>([^<]+)<' matches = re.compile(patron, re.DOTALL).findall(data) - for scrapedurl , scrapedtitle in matches: - itemlist.append(Item(channel=item.channel, action='movies', title=scrapedtitle, url=scrapedurl, type='cat', first=0)) + for scrapedurl, scrapedtitle in matches: + itemlist.append(Item(channel = item.channel, action = 'movies', title =scrapedtitle, url = scrapedurl, type = 'cat', first = 0)) return itemlist def movies(item): @@ -70,56 +71,60 @@ def movies(item): matches = re.compile(patron, re.DOTALL).findall(data) for scrapedurl, img, scrapedtitle, ranking, resto, year, quality in matches: + scrapedtitle = re.sub(r'\d{4}|[()]','', scrapedtitle) plot = scrapertools.htmlclean(resto).strip() - title = '%s [COLOR yellow](%s)[/COLOR] [COLOR red][%s][/COLOR]'% (scrapedtitle, ranking, quality) - itemlist.append(Item(channel=item.channel, - title=title, - url=scrapedurl, - action="findvideos", - plot=plot, - thumbnail=img, + title = ' %s [COLOR yellow](%s)[/COLOR] [COLOR red][%s][/COLOR]' % (scrapedtitle, ranking, quality) + itemlist.append(Item(channel = item.channel, + title = title, + url = scrapedurl, + action = "findvideos", + plot = plot, + thumbnail = img, contentTitle = scrapedtitle, contentType = "movie", - quality=quality)) + quality = quality, + infoLabels = {'year': year})) + tmdb.set_infoLabels_itemlist(itemlist, seekTmdb = True) #Paginacion - next_page = '
Siguiente<' - matches = re.compile(next_page, re.DOTALL).findall(data) + matches = re.compile('
Siguiente<', re.DOTALL).findall(data) if matches: url = urlparse.urljoin(item.url, matches[0]) - itemlist.append(Item(channel=item.channel, action = "movies", title = "Página siguiente >>",url = url)) + itemlist.append(Item(channel = item.channel, action = "movies", title = "Página siguiente >>", url = url)) return itemlist def findvideos(item): logger.info() - itemlist=[] + itemlist = [] data = httptools.downloadpage(item.url).data - data = scrapertools.get_match(data, '
(.*?)
') - # Busca los enlaces a los videos listavideos = servertools.findvideos(data) - for video in listavideos: videotitle = scrapertools.unescape(video[0]) url = video[1] server = video[2] - - itemlist.append(Item(channel=item.channel, action="play", server=server, title=videotitle, url=url, - thumbnail=item.thumbnail, plot=item.plot, fulltitle=item.title, folder=False)) - + itemlist.append(Item(channel = item.channel, + action = "play", + server = server, + title = videotitle, + url = url, + thumbnail = item.thumbnail, + plot = item.plot, + contentTitle = item.contentTitle, + infoLabels = item.infoLabels, + folder = False)) # Opción "Añadir esta película a la biblioteca de KODI" 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, - thumbnail=item.thumbnail - )) + 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, + thumbnail = item.thumbnail + )) return itemlist diff --git a/plugin.video.alfa/channels/pelisplanet.py b/plugin.video.alfa/channels/pelisplanet.py index 0d76adc7..cb489206 100644 --- a/plugin.video.alfa/channels/pelisplanet.py +++ b/plugin.video.alfa/channels/pelisplanet.py @@ -57,15 +57,15 @@ def mainlist(item): viewcontent='movies', thumbnail=thumbnail % 'generos', viewmode="movie_with_plot", url=host + 'generos/')) - itemlist.append(Item(channel=item.channel, title="Filtrar por Idiomas", + itemlist.append(Item(channel=item.channel, title="[COLOR yellow][Filtrar por Idiomas][/COLOR]", fanart=fanart_host, folder=False, text_color=color3, text_blod=True, thumbnail=thumbnail % 'idiomas')) - itemlist.append(item.clone(title="Castellano", action="peliculas", text_blod=True, + itemlist.append(item.clone(title=" Castellano", action="peliculas", text_blod=True, viewcontent='movies', thumbnail=thumbnail % 'castellano', viewmode="movie_with_plot", url=host + 'idioma/castellano/')) - itemlist.append(item.clone(title="Latino", action="peliculas", text_blod=True, + itemlist.append(item.clone(title=" Latino", action="peliculas", text_blod=True, viewcontent='movies', thumbnail=thumbnail % 'latino', viewmode="movie_with_plot", url=host + 'idioma/latino/')) @@ -173,15 +173,16 @@ def peliculas(item): data = re.sub(r"\n|\r|\t|\(.*?\)|\s{2}| ", "", data) patron_todas = '
(.*?)