diff --git a/plugin.video.alfa/channels/datoporn.py b/plugin.video.alfa/channels/datoporn.py index b70f37af..2d51cf51 100755 --- a/plugin.video.alfa/channels/datoporn.py +++ b/plugin.video.alfa/channels/datoporn.py @@ -1,73 +1,57 @@ # -*- coding: utf-8 -*- -import re - from core import httptools from core import scrapertools +from lib import jsunpack from platformcode import logger -def mainlist(item): - logger.info() - itemlist = [] +def test_video_exists(page_url): + logger.info("(page_url='%s')" % page_url) - itemlist.append(item.clone(action="categorias", title="Categorías", url="http://dato.porn/categories_all", contentType="movie", viewmode="movie")) - itemlist.append(item.clone(title="Buscar...", action="search", contentType="movie", viewmode="movie")) - return itemlist + data = httptools.downloadpage(page_url).data + + if 'File Not Found' in data or '404 Not Found' in data: + return False, "[Datoporn] El archivo no existe o ha sido borrado" + + return True, "" -def search(item, texto): - logger.info() - item.url = "http://dato.porn/?k=%s&op=search" % texto.replace(" ", "+") - return lista(item) +def get_video_url(page_url, premium=False, user="", password="", video_password=""): + logger.info("url=" + page_url) + data = httptools.downloadpage(page_url).data + logger.debug(data) + media_urls = scrapertools.find_multiple_matches(data, 'src: "([^"]+)",.*?label: "([^"]+)"') + #media_urls = scrapertools.find_multiple_matches(data, 'file\:"([^"]+\.mp4)",label:"([^"]+)"') + # if not media_urls: + # match = scrapertools.find_single_match(data, "p,a,c,k(.*?)") + # try: + # data = jsunpack.unpack(match) + # except: + # pass + # media_urls = scrapertools.find_multiple_matches(data, 'file\:"([^"]+\.mp4)",label:"([^"]+)"') -def lista(item): - logger.info() - itemlist = [] + # Extrae la URL + calidades = [] + video_urls = [] + for media_url in sorted(media_urls, key=lambda x: int(x[1][-3:])): + calidades.append(int(media_url[1][-3:])) + try: + title = ".%s %sp [datoporn]" % (media_url[0].rsplit('.', 1)[1], media_url[1][-3:]) + except: + title = ".%s %sp [datoporn]" % (media_url[-4:], media_url[1][-3:]) + video_urls.append([title, media_url[0]]) - # Descarga la pagina - data = re.sub(r"\n|\r|\t|\s{2}|()", "", httptools.downloadpage(item.url).data) + sorted(calidades) + m3u8 = scrapertools.find_single_match(data, 'file\:"([^"]+\.m3u8)"') + if not m3u8: + m3u8 = str(scrapertools.find_multiple_matches(data, 'player.updateSrc\({src:.?"([^"]+\.m3u8)"')).replace("['", "").replace("']", "") + calidades = ['720p'] + if m3u8: + video_urls.insert(0, [".m3u8 %s [datoporn]" % calidades[-1], m3u8]) - # Extrae las entradas - patron = '