From 23a26593521c869b4c7f0ea6676e32a3ce8be3e0 Mon Sep 17 00:00:00 2001 From: Alfa <30527549+alfa-addon@users.noreply.github.com> Date: Wed, 31 Oct 2018 14:41:20 -0500 Subject: [PATCH] datoporn channels fix --- plugin.video.alfa/channels/datoporn.py | 100 ++++++++++++++----------- 1 file changed, 58 insertions(+), 42 deletions(-) diff --git a/plugin.video.alfa/channels/datoporn.py b/plugin.video.alfa/channels/datoporn.py index 2d51cf51..b70f37af 100755 --- a/plugin.video.alfa/channels/datoporn.py +++ b/plugin.video.alfa/channels/datoporn.py @@ -1,57 +1,73 @@ # -*- coding: utf-8 -*- +import re + from core import httptools from core import scrapertools -from lib import jsunpack from platformcode import logger -def test_video_exists(page_url): - logger.info("(page_url='%s')" % page_url) +def mainlist(item): + logger.info() + 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, "" + 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 -def get_video_url(page_url, premium=False, user="", password="", video_password=""): - logger.info("url=" + page_url) +def search(item, texto): + logger.info() + item.url = "http://dato.porn/?k=%s&op=search" % texto.replace(" ", "+") + return lista(item) - 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:"([^"]+)"') - # 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]]) +def lista(item): + logger.info() + itemlist = [] - 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]) + # Descarga la pagina + data = re.sub(r"\n|\r|\t|\s{2}|()", "", httptools.downloadpage(item.url).data) - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) + # Extrae las entradas + patron = '