From d2bfe08cff08c464f928bf5badb06f02a704f100 Mon Sep 17 00:00:00 2001 From: l1231669 Date: Sun, 27 Aug 2017 22:42:06 +0200 Subject: [PATCH] Add YesPornPlease --- plugin.video.alfa/channels/yespornplease.py | 103 ++++++++++++++++++ .../media/channels/banner/yespornplease.png | Bin 0 -> 6495 bytes .../media/channels/thumb/yespornplease.png | Bin 0 -> 5535 bytes .../resources/media/servers/server_vshare.png | Bin 0 -> 19855 bytes plugin.video.alfa/servers/vshare.json | 54 +++++++++ plugin.video.alfa/servers/vshare.py | 53 +++++++++ 6 files changed, 210 insertions(+) create mode 100644 plugin.video.alfa/channels/yespornplease.py create mode 100644 plugin.video.alfa/resources/media/channels/banner/yespornplease.png create mode 100644 plugin.video.alfa/resources/media/channels/thumb/yespornplease.png create mode 100644 plugin.video.alfa/resources/media/servers/server_vshare.png create mode 100644 plugin.video.alfa/servers/vshare.json create mode 100644 plugin.video.alfa/servers/vshare.py diff --git a/plugin.video.alfa/channels/yespornplease.py b/plugin.video.alfa/channels/yespornplease.py new file mode 100644 index 00000000..10b2312e --- /dev/null +++ b/plugin.video.alfa/channels/yespornplease.py @@ -0,0 +1,103 @@ +# -*- coding: utf-8 -*- + +import re + +from core import httptools +from core.item import Item +from platformcode import logger +from urlparse import urljoin +from core import servertools + + +HOST="http://yespornplease.com" + +def mainlist(item): + logger.info() + itemlist = [] + itemlist.append(item.clone(action="links", title="Novedades", url=HOST)) + itemlist.append(item.clone(action="categories", title="Categorías", url=urljoin(HOST, "categories"))) + itemlist.append(item.clone(action="search", title="Buscar", url=urljoin(HOST, "search"))) + return itemlist + + +def search(item, texto): + logger.info("texto = %s" %(texto)) + + item.url = urljoin(HOST, "search&q=" + texto) + try: + return links(item) + # Se captura la excepción, para no interrumpir al buscador global si un canal falla + except: + import sys + for line in sys.exc_info(): + logger.error("%s" % line) + return [] + +def categories(item): + logger.info() + data = httptools.downloadpage(item.url).data + + result = [] + logger.info(data) + + categories = re.findall("href=[\"'](?P/search[^\"']+).*?>(?P[^<>]+).*?badge[^>]+>(?P\d+)", data, re.DOTALL | re.MULTILINE) + for url, name, counter in categories: + result.append(item.clone(action = "links", title = "%s (%s videos)" % (name, counter), url = urljoin(item.url, url))) + + return result + +def get_page(url): + page = re.search("p=(\d+)", url) + if page: + return int(page.group(1)) + return 1 + +def get_page_url(url, page): + logger.debug("URL: %s to page %d" % (url, page)) + resultURL = re.sub("([&\?]p=)(?:\d+)", "\g<1>%d" % page, url) + if resultURL == url: + resultURL += ("&" if "?" in url else "?") + "p=%d" % (page) + + logger.debug("Result: %s" % (resultURL)) + return resultURL + + +def links(item): + logger.info() + data = httptools.downloadpage(item.url).data + + logger.info(data) + + reExpr = "[^'\"]+)[^>]+title[^'\"]*['\"](?P[^\"]+)[^>]+id[^'\"]*['\"](?P<id>[^'\"]+)[^>]*>(?:[^<]*<[^>]+>(?P<quality>[^<]+)<)?[^<]*<[^>]*duration[^>]*>(?P<duration>[^<]+)" + reResults = re.findall(reExpr, data, re.MULTILINE | re.DOTALL) + result = [] + + for img, title, vID, quality, duration in reResults: + logger.info("[link] %(title)s [%(quality)s] [%(duration)s]: %(vid)s (%(img)s" % ({"title": title, "duration": duration, "vid": vID, "img": img, "quality": quality if quality else "--"})) + + formattedQuality = "" + if quality: + formattedQuality += " [%s]" % (quality) + + titleFormatted = "%(title)s%(quality)s [%(duration)s]" % ({"title": title, "quality": formattedQuality, "duration": duration}) + result.append(item.clone(action = "play", title = titleFormatted, url = urljoin(item.url, "/view/%s" % (vID)), thumbnail = urljoin(item.url, img), vID = vID)) + + # Has pagination + paginationOccurences = data.count('class="prevnext"') + if paginationOccurences: + page = get_page(item.url) + logger.info("Page " + str(page) + " Ocurrences: " + str(paginationOccurences)) + if page > 1: + result.append(item.clone(action = "links", title = "<< Anterior", url = get_page_url(item.url, page - 1))) + + if paginationOccurences > 1 or page == 1: + result.append(item.clone(action = "links", title = "Siguiente >>", url = get_page_url(item.url, page + 1))) + + + return result + +def play(item): + logger.info(item) + embededURL = urljoin(item.url, "/e/%s/width-650/height-400/autoplay-0/" % (item.vID)) + itemlist = servertools.find_video_items(item.clone(url = embededURL)) + return itemlist \ No newline at end of file diff --git a/plugin.video.alfa/resources/media/channels/banner/yespornplease.png b/plugin.video.alfa/resources/media/channels/banner/yespornplease.png new file mode 100644 index 0000000000000000000000000000000000000000..07084bd719c42fcdc8f258def5d216b18af21496 GIT binary patch literal 6495 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 AE&u=k literal 0 HcmV?d00001 diff --git a/plugin.video.alfa/resources/media/channels/thumb/yespornplease.png b/plugin.video.alfa/resources/media/channels/thumb/yespornplease.png new file mode 100644 index 0000000000000000000000000000000000000000..20c30eeca55c2ea45f7e2084ae038e17385a07fb GIT binary patch literal 5535 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 aH2A8B0<1dh=P631gXo*+mHlP^^1lF`)c~IW literal 0 HcmV?d00001 diff --git a/plugin.video.alfa/resources/media/servers/server_vshare.png b/plugin.video.alfa/resources/media/servers/server_vshare.png new file mode 100644 index 0000000000000000000000000000000000000000..769a9a11c57910531019240ebadb945e5a1298b0 GIT binary patch literal 19855 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 D58Tb! literal 0 HcmV?d00001 diff --git a/plugin.video.alfa/servers/vshare.json b/plugin.video.alfa/servers/vshare.json new file mode 100644 index 00000000..1ca028a7 --- /dev/null +++ b/plugin.video.alfa/servers/vshare.json @@ -0,0 +1,54 @@ +{ + "active": true, + "changes": [ + { + "date": "27/08/2017", + "description": "Versión incial" + } + ], + "find_videos": { + "ignore_urls": [ + "http://streamin.to/embed-theme.html", + "http://streamin.to/embed-jquery.html" + ], + "patterns": [ + { + "pattern": "(http://vshare.io/v/[\\w]+[^\"']*)[\"']", + "url": "\\1" + } + ] + }, + "free": true, + "id": [ + "vshare" + ], + "name": "vshare", + "settings": [ + { + "default": false, + "enabled": true, + "id": "black_list", + "label": "Incluir en lista negra", + "type": "bool", + "visible": true + }, + { + "default": 0, + "enabled": true, + "id": "favorites_servers_list", + "label": "Incluir en lista de favoritos", + "lvalues": [ + "No", + "1", + "2", + "3", + "4", + "5" + ], + "type": "list", + "visible": false + } + ], + "thumbnail": "server_vshare.png", + "version": 1 +} diff --git a/plugin.video.alfa/servers/vshare.py b/plugin.video.alfa/servers/vshare.py new file mode 100644 index 00000000..59592120 --- /dev/null +++ b/plugin.video.alfa/servers/vshare.py @@ -0,0 +1,53 @@ +# -*- coding: utf-8 -*- + +import re + +from core import httptools +from core import scrapertools +from platformcode import logger +from lib import jsunpack + + +def test_video_exists(page_url): + logger.info("(page_url='%s')" % page_url) + + data = httptools.downloadpage(page_url).data + if "File was deleted" in data: + return False, "El archivo no existe<br/>en streaminto o ha sido borrado." + elif "Video is processing now" in data: + return False, "El archivo está siendo procesado<br/>Prueba dentro de un rato." + else: + 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 + + flowplayer = re.search("url: [\"']([^\"']+)", data) + if flowplayer: + return [["FLV", flowplayer.group(1)]] + + jsUnpack = jsunpack.unpack(data) + logger.debug(jsUnpack) + + video_urls = [] + + fields = re.search("\[([^\]]+).*?parseInt\(value\)-(\d+)", jsUnpack) + if fields: + logger.debug("Values: " + fields.group(1)) + logger.debug("Substract: " + fields.group(2)) + substract = int(fields.group(2)) + + arrayResult = [chr(int(value) - substract) for value in fields.group(1).split(",")] + strResult = "".join(arrayResult) + logger.debug(strResult) + + videoSources = re.findall("<source[\s]+src=[\"'](?P<url>[^\"']+)[^>]+label=[\"'](?P<label>[^\"']+)", strResult) + + for url, label in videoSources: + logger.debug("[" + label + "] " + url) + video_urls.append([label, url]) + + return video_urls