diff --git a/plugin.video.alfa/core/httptools.py b/plugin.video.alfa/core/httptools.py index ee9195dc..ba6ddde2 100755 --- a/plugin.video.alfa/core/httptools.py +++ b/plugin.video.alfa/core/httptools.py @@ -28,7 +28,7 @@ ficherocookies = os.path.join(config.get_data_path(), "cookies.dat") # Headers por defecto, si no se especifica nada default_headers = dict() -default_headers["User-Agent"] = "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3163.100 Safari/537.36" +default_headers["User-Agent"] = "Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko) Chrome/70.0.3163.100 Safari/537.36" default_headers["Accept"] = "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8" default_headers["Accept-Language"] = "es-ES,es;q=0.8,en-US;q=0.5,en;q=0.3" default_headers["Accept-Charset"] = "UTF-8" diff --git a/plugin.video.alfa/platformcode/platformtools.py b/plugin.video.alfa/platformcode/platformtools.py index 506a6676..54459dba 100644 --- a/plugin.video.alfa/platformcode/platformtools.py +++ b/plugin.video.alfa/platformcode/platformtools.py @@ -127,13 +127,12 @@ def render_items(itemlist, parent_item): if 'anime' in channeltools.get_channel_parameters(parent_item.channel)['categories']: anime = True - # Recorremos el itemlist + unify_enabled = config.get_setting('unify') + #logger.debug('unify_enabled: %s' % unify_enabled) + + # Recorremos el itemlist for item in itemlist: - try: - channel_parameters = channeltools.get_channel_parameters(item.channel) - except: - pass #logger.debug(item) # Si el item no contiene categoria, le ponemos la del item padre if item.category == "": @@ -143,9 +142,7 @@ def render_items(itemlist, parent_item): if item.fanart == "": item.fanart = parent_item.fanart - if genre: - valid_genre = True thumb = get_thumb(item.title, auto=True) if thumb != '': @@ -155,12 +152,7 @@ def render_items(itemlist, parent_item): valid_genre = True - unify_enabled = config.get_setting('unify') - - #logger.debug('unify_enabled: %s' % unify_enabled) - - - if unify_enabled and not channel_parameters['adult'] and 'skip_unify' not in channel_parameters: + if unify_enabled: # Formatear titulo con unify item = unify.title_format(item) else: diff --git a/plugin.video.alfa/servers/gamovideo.py b/plugin.video.alfa/servers/gamovideo.py index cbb32783..b67149ff 100755 --- a/plugin.video.alfa/servers/gamovideo.py +++ b/plugin.video.alfa/servers/gamovideo.py @@ -7,8 +7,6 @@ from core import scrapertools from lib import jsunpack from platformcode import logger -headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:58.0) Gecko/20100101 Firefox/58.0'} - def test_video_exists(page_url): logger.info("(page_url='%s')" % page_url) diff --git a/plugin.video.alfa/servers/powvideo.py b/plugin.video.alfa/servers/powvideo.py index 2696c972..74336d7c 100755 --- a/plugin.video.alfa/servers/powvideo.py +++ b/plugin.video.alfa/servers/powvideo.py @@ -30,14 +30,24 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= packed = scrapertools.find_single_match(data, "") unpacked = jsunpack.unpack(packed) - + url = scrapertools.find_single_match(unpacked, "(?:src):\\\\'([^\\\\]+.mp4)\\\\'") - itemlist.append([".mp4" + " [powvideo]", decode_powvideo_url(url)]) + + a, b = scrapertools.find_single_match(data, "\['splice'\]\(0x([0-9a-fA-F]*),0x([0-9a-fA-F]*)\);") + if a and b: + url = decode_powvideo_url(url, int(a, 16), int(b, 16)) + else: + logger.debug('No detectado splice! Revisar sistema de decode...') + + itemlist.append([".mp4" + " [powvideo]", url]) itemlist.sort(key=lambda x: x[0], reverse=True) return itemlist -def decode_powvideo_url(url): +def decode_powvideo_url(url, desde, num): tria = re.compile('[0-9a-z]{40,}', re.IGNORECASE).findall(url)[0] gira = tria[::-1] - x = gira[:1] + gira[2:] + if desde == 0: + x = gira[num:] + else: + x = gira[:desde] + gira[(desde+num):] return re.sub(tria, x, url) diff --git a/plugin.video.alfa/servers/vidoza.py b/plugin.video.alfa/servers/vidoza.py index a7b55f11..934b902d 100755 --- a/plugin.video.alfa/servers/vidoza.py +++ b/plugin.video.alfa/servers/vidoza.py @@ -3,6 +3,7 @@ from core import httptools from core import scrapertools from platformcode import logger +from core import jsontools def test_video_exists(page_url): @@ -20,13 +21,25 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= logger.info("(page_url='%s')" % page_url) data = httptools.downloadpage(page_url).data video_urls = [] - matches = scrapertools.find_multiple_matches(data, 'src\s*:\s*"([^"]+)".*?label:\'([^\']+)\'') - for media_url, calidad in matches: - ext = media_url[-4:] - video_urls.append(["%s %s [vidoza]" % (ext, calidad), media_url]) + + s = scrapertools.find_single_match(data, 'sourcesCode\s*:\s*(\[\{.*?\}\])') + s = s.replace('src:', '"src":').replace('file:', '"file":').replace('type:', '"type":').replace('label:', '"label":').replace('res:', '"res":') + try: + data = jsontools.load(s) + for enlace in data: + if 'src' in enlace or 'file' in enlace: + url = enlace['src'] if 'src' in enlace else enlace['file'] + tit = '' + if 'label' in enlace: tit += '[%s]' % enlace['label'] + if 'res' in enlace: tit += '[%s]' % enlace['res'] + if tit == '' and 'type' in enlace: tit = enlace['type'] + if tit == '': tit = '.mp4' + + video_urls.append(["%s [vidoza]" % tit, url]) + except: + logger.debug('No se detecta json %s' % s) + pass video_urls.reverse() - for video_url in video_urls: - logger.info("%s - %s" % (video_url[0], video_url[1])) return video_urls