diff --git a/plugin.video.alfa/channels/ciberpeliculashd.json b/plugin.video.alfa/channels/ciberpeliculashd.json new file mode 100644 index 00000000..e6b7bfbd --- /dev/null +++ b/plugin.video.alfa/channels/ciberpeliculashd.json @@ -0,0 +1,62 @@ +{ + "id": "ciberpeliculashd", + "name": "Ciberpeliculashd", + "active": true, + "adult": false, + "language": ["lat"], + "thumbnail": "https://s17.postimg.org/78tekxeov/ciberpeliculashd1.png", + "banner": "", + "categories": [ + "movie" + ], + "settings": [ + { + "id": "modo_grafico", + "type": "bool", + "label": "Buscar información extra", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_newest_latino", + "type": "bool", + "label": "Incluir en Novedades - Latino", + "default": true, + "enabled": true, + "visible": true + }, + { + "id": "include_in_global_search", + "type": "bool", + "label": "Incluir en busqueda global", + "default": true, + "enabled": true, + "visible": true + }, + { + "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 + } + ] +} diff --git a/plugin.video.alfa/channels/ciberpeliculashd.py b/plugin.video.alfa/channels/ciberpeliculashd.py new file mode 100644 index 00000000..37c9439c --- /dev/null +++ b/plugin.video.alfa/channels/ciberpeliculashd.py @@ -0,0 +1,151 @@ +# -*- 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 platformcode import config, logger + +__channel__='ciberpeliculashd' + +host = "http://ciberpeliculashd.net" + +try: + __modo_grafico__ = config.get_setting('modo_grafico', __channel__) +except: + __modo_grafico__ = True + + +def mainlist(item): + logger.info() + itemlist = [] + itemlist.append(Item(channel = item.channel, title = "Novedades", action = "peliculas", url = host + "/?peli=1")) + itemlist.append(Item(channel = item.channel, title = "Por género", action = "filtro", url = host, extra = "categories" )) + itemlist.append(Item(channel = item.channel, title = "Por calidad", action = "filtro", url = host, extra = "qualitys")) + itemlist.append(Item(channel = item.channel, title = "Por idioma", action = "filtro", url = host, extra = "languages")) + itemlist.append(Item(channel = item.channel, title = "")) + itemlist.append(Item(channel = item.channel, title = "Buscar", action = "search", url = host + "/?s=")) + return itemlist + +def newest(categoria): + logger.info() + itemlist = [] + item = Item() + try: + if categoria in ['peliculas','latino']: + item.url = host + "/?peli=1" + elif categoria == 'infantiles': + item.url = host + '/categories/animacion/?peli=1' + elif categoria == 'terror': + item.url = host + '/categories/terror/?peli=1' + itemlist = peliculas(item) + if "Pagina" in itemlist[-1].title: + itemlist.pop() + except: + import sys + for line in sys.exc_info(): + logger.error("{0}".format(line)) + return [] + + return itemlist + + +def search(item, texto): + logger.info() + texto = texto.replace(" ", "+") + item.url = item.url + texto + "&peli=1" + item.extra = "busca" + if texto != '': + return peliculas(item) + else: + return [] + + +def filtro(item): + logger.info() + itemlist = [] + data = httptools.downloadpage(item.url).data + patron = 'uk-navbar-nav-subtitle taxonomy-menu-title">%s.*?' %item.extra + bloque = scrapertools.find_single_match(data, patron) + patron = "href='([^']+)" + patron += "'>([^<]+)" + matches = scrapertools.find_multiple_matches(bloque, patron) + for url, titulo in matches: + itemlist.append(Item(channel = item.channel, + action = "peliculas", + title = titulo, + url = url + "/?peli=1" + )) + return itemlist + + +def peliculas(item): + logger.info() + itemlist = [] + data = httptools.downloadpage(item.url).data + bloque = scrapertools.find_single_match(data, 'loop-posts".*?panel-pagination pagination-bottom') + patron = 'a href="([^"]+)".*?' + patron += 'img alt="([^"]+)".*?' + patron += '((?:http|https)://image.tmdb.org[^"]+)".*?' + patron += 'a href="([^"]+)".*?' + matches = scrapertools.find_multiple_matches(bloque, patron) + for scrapedurl, scrapedtitle, scrapedthumbnail, scrapedurl1 in matches: + scrapedtitle = scrapedtitle.replace(" Online imagen","").replace("Pelicula ","") + year = scrapertools.find_single_match(scrapedtitle, "\(([0-9]+)\)") + if year: + year = int(year) + else: + year = 0 + fulltitle = scrapertools.find_single_match(scrapedtitle, "(.*?) \(") + itemlist.append(Item(action = "findvideos", + channel = item.channel, + fulltitle = fulltitle, + thumbnail = scrapedthumbnail, + infoLabels = {'year': year}, + title = scrapedtitle, + url = scrapedurl + )) + tmdb.set_infoLabels(itemlist) + page = int(scrapertools.find_single_match(item.url,"peli=([0-9]+)")) + 1 + next_page = scrapertools.find_single_match(item.url,".*?peli=") + next_page += "%s" %page + itemlist.append(Item(action = "peliculas", + channel = item.channel, + title = "Página siguiente", + url = next_page + )) + return itemlist + + +def findvideos(item): + logger.info() + itemlist = [] + data = httptools.downloadpage(item.url).data + patron = 'src="([^&]+)' + matches = scrapertools.find_multiple_matches(data, patron) + for scrapedurl in matches: + title = "Ver en: %s" + itemlist.append(item.clone(action = "play", + title = title, + url = scrapedurl + )) + tmdb.set_infoLabels(itemlist) + itemlist = servertools.get_servers_itemlist(itemlist, lambda i: i.title % i.server.capitalize()) + 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, + fulltitle = item.fulltitle + )) + return itemlist + + +def play(item): + item.thumbnail = item.contentThumbnail + return [item] diff --git a/plugin.video.alfa/channels/cinetux.py b/plugin.video.alfa/channels/cinetux.py index 59805451..2d68dd95 100644 --- a/plugin.video.alfa/channels/cinetux.py +++ b/plugin.video.alfa/channels/cinetux.py @@ -343,12 +343,14 @@ def bloque_enlaces(data, filtro_idioma, dict_idiomas, type, item): def play(item): logger.info() itemlist = [] - if "api.cinetux" in item.url or item.server == "okru" or "drive.php" in item.url: + if "api.cinetux" in item.url or item.server == "okru" or "drive.php" in item.url or "youtube" in item.url: data = httptools.downloadpage(item.url, headers={'Referer': item.extra}).data.replace("\\", "") id = scrapertools.find_single_match(data, 'img src="[^#]+#(.*?)"') item.url = "http://docs.google.com/get_video_info?docid=" + id if item.server == "okru": item.url = "https://ok.ru/videoembed/" + id + if item.server == "youtube": + item.url = "https://www.youtube.com/embed/" + id elif "links" in item.url or "www.cinetux.me" in item.url: data = httptools.downloadpage(item.url).data scrapedurl = scrapertools.find_single_match(data, '(.*?)') item.plot = scrapertools.htmlclean(item.plot).strip() item.contentPlot = item.plot - - link = scrapertools.find_single_match(data, 'location\.href.*?=.*?"http:\/\/(?:tumejorserie|tumejorjuego).*?link=(.*?)"') - if link != "": - link = "http://www.divxatope1.com/" + link - logger.info("torrent=" + link) + al_url_fa = scrapertools.find_single_match(data, 'location\.href.*?=.*?"http:\/\/(?:tumejorserie|tumejorjuego).*?link=(.*?)"') + if al_url_fa == "": + al_url_fa = scrapertools.find_single_match(data, + 'location\.href.*?=.*?"http:\/\/divxatope1.com/(.*?)"') + if al_url_fa != "": + al_url_fa = "http://www.divxatope1.com/" + al_url_fa + logger.info("torrent=" + al_url_fa) itemlist.append( Item(channel=item.channel, action="play", server="torrent", title="Vídeo en torrent", fulltitle=item.title, - url=link, thumbnail=servertools.guess_server_thumbnail("torrent"), plot=item.plot, folder=False, + url=al_url_fa, thumbnail=servertools.guess_server_thumbnail("torrent"), plot=item.plot, folder=False, parentContent=item)) patron = '
([^<]+)<\/div[^<]+
([^<]+)' diff --git a/plugin.video.alfa/channels/javtasty.py b/plugin.video.alfa/channels/javtasty.py index 5d56edfe..c35c1a6b 100755 --- a/plugin.video.alfa/channels/javtasty.py +++ b/plugin.video.alfa/channels/javtasty.py @@ -6,21 +6,18 @@ from core import httptools from core import scrapertools from platformcode import config, logger -host = "http://www.javtasty.com" +host = "https://www.javwhores.com" def mainlist(item): logger.info() itemlist = [] - - itemlist.append(item.clone(action="lista", title="Nuevos Vídeos", url=host + "/videos")) - itemlist.append(item.clone(action="lista", title="Mejor Valorados", url=host + "/videos?o=tr")) - itemlist.append(item.clone(action="lista", title="Más Vistos", url=host + "/videos?o=mv")) - itemlist.append(item.clone(action="lista", title="Ordenados por duración", url=host + "/videos?o=lg")) - itemlist.append(item.clone(action="categorias", title="Categorías", url=host + "/categories")) + itemlist.append(item.clone(action="lista", title="Nuevos Vídeos", url=host + "/latest-updates/")) + itemlist.append(item.clone(action="lista", title="Mejor Valorados", url=host + "/top-rated/")) + itemlist.append(item.clone(action="lista", title="Más Vistos", url=host + "/most-popular/")) + itemlist.append(item.clone(action="categorias", title="Categorías", url=host + "/categories/")) itemlist.append(item.clone(title="Buscar...", action="search")) itemlist.append(item.clone(action="configuracion", title="Configurar canal...", text_color="gold", folder=False)) - return itemlist @@ -33,7 +30,7 @@ def configuracion(item): def search(item, texto): logger.info() - item.url = "%s/search?search_query=%s&search_type=videos" % (host, texto) + item.url = "%s/search/%s/" % (host, texto) item.extra = texto try: return lista(item) @@ -48,83 +45,66 @@ def search(item, texto): def lista(item): logger.info() itemlist = [] - - # Descarga la pagina data = httptools.downloadpage(item.url).data - action = "play" if config.get_setting("menu_info", "javtasty"): action = "menu_info" - - # Extrae las entradas - patron = '
(?:.*?|)\s*([^<]+)<' + patron = 'div class="video-item.*?href="([^"]+)".*?' + patron += 'data-original="([^"]+)" ' + patron += 'alt="([^"]+)"(.*?)fa fa-clock-o">([^<]+)<' matches = scrapertools.find_multiple_matches(data, patron) for scrapedurl, scrapedthumbnail, scrapedtitle, quality, duration in matches: scrapedurl = urlparse.urljoin(host, scrapedurl) scrapedtitle = scrapedtitle.strip() if duration: scrapedtitle = "%s - %s" % (duration.strip(), scrapedtitle) - if '>HD<' in quality: scrapedtitle += " [COLOR red][HD][/COLOR]" - itemlist.append(item.clone(action=action, title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, fanart=scrapedthumbnail)) - # Extrae la marca de siguiente página - next_page = scrapertools.find_single_match(data, 'href="([^"]+)" class="prevnext">') + next_page = scrapertools.find_single_match(data, 'next">') matches = scrapertools.find_multiple_matches(bloque, 'src="([^"]+)"') for i, img in enumerate(matches): @@ -132,5 +112,4 @@ def menu_info(item): continue title = "Imagen %s" % (str(i)) itemlist.append(item.clone(action="", title=title, thumbnail=img, fanart=img)) - return itemlist diff --git a/plugin.video.alfa/channels/serviporno.py b/plugin.video.alfa/channels/serviporno.py index bd9f0189..46523670 100755 --- a/plugin.video.alfa/channels/serviporno.py +++ b/plugin.video.alfa/channels/serviporno.py @@ -3,16 +3,18 @@ import re import urlparse +from core import httptools from core import scrapertools from core.item import Item from platformcode import logger +host = "https://www.serviporno.com" def mainlist(item): logger.info() itemlist = [] itemlist.append( - Item(channel=item.channel, action="videos", title="Útimos videos", url="http://www.serviporno.com/")) + Item(channel=item.channel, action="videos", title="Útimos videos", url= host)) itemlist.append( Item(channel=item.channel, action="videos", title="Más vistos", url="http://www.serviporno.com/mas-vistos/")) itemlist.append( @@ -43,15 +45,14 @@ def search(item, texto): def videos(item): logger.info() itemlist = [] - data = scrapertools.downloadpage(item.url) + data = httptools.downloadpage(item.url).data - patron = '
.*?' + patron = '(?s)
.*?' patron += '') - itemlist.append( - Item(channel=item.channel, action="play", title=scrapedtitle, url=scrapedurl, thumbnail=scrapedthumbnail, - plot=scrapedplot, fanart=scrapedthumbnail)) - - # Extrae la marca de siguiente pagina - try: - next_page = scrapertools.get_match(data, '
Transformers: Dark of the Moon 2011 - #
- - patron = '