From 8a154fd939c3a1679d4f773089fafcd1a48176e4 Mon Sep 17 00:00:00 2001 From: alfa_addon_10 Date: Sun, 10 Sep 2017 02:39:17 +0200 Subject: [PATCH] fix server --- plugin.video.alfa/servers/streamango.py | 46 +++++++++++++++++++++++-- 1 file changed, 43 insertions(+), 3 deletions(-) diff --git a/plugin.video.alfa/servers/streamango.py b/plugin.video.alfa/servers/streamango.py index 95bfa1cc..fdfac685 100755 --- a/plugin.video.alfa/servers/streamango.py +++ b/plugin.video.alfa/servers/streamango.py @@ -21,14 +21,54 @@ def get_video_url(page_url, premium=False, user="", password="", video_password= data = httptools.downloadpage(page_url).data video_urls = [] - matches = scrapertools.find_multiple_matches(data, 'type:"video/([^"]+)",src:"([^"]+)",height:(\d+)') - for ext, media_url, calidad in matches: + + matches = scrapertools.find_multiple_matches(data, "type:\"video/([^\"]+)\",src:d\('([^']+)',(.*?)\).+?height:(\d+)") + + for ext, encoded, code, quality in matches: + + media_url = decode(encoded, int(code)) + logger.debug("media_url %s" % media_url) if not media_url.startswith("http"): media_url = "http:" + media_url - video_urls.append([".%s %sp [streamango]" % (ext, calidad), media_url]) + video_urls.append([".%s %sp [streamango]" % (ext, quality), media_url]) video_urls.reverse() for video_url in video_urls: logger.info("%s - %s" % (video_url[0], video_url[1])) return video_urls + + +def decode(encoded, code): + logger.info("encoded '%s', code '%s'" % (encoded, code)) + + _0x59b81a = "" + k = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=' + k = k[::-1] + + count = 0 + + for index in range(0, len(encoded) - 1): + while count <= len(encoded) - 1: + _0x4a2f3a = k.index(encoded[count]) + count += 1 + _0x29d5bf = k.index(encoded[count]) + count += 1 + _0x3b6833 = k.index(encoded[count]) + count += 1 + _0x426d70 = k.index(encoded[count]) + count += 1 + + _0x2e4782 = ((_0x4a2f3a << 2) | (_0x29d5bf >> 4)) + _0x2c0540 = (((_0x29d5bf & 15) << 4) | (_0x3b6833 >> 2)) + _0x5a46ef = ((_0x3b6833 & 3) << 6) | _0x426d70 + _0x2e4782 = _0x2e4782 ^ code + + _0x59b81a = str(_0x59b81a) + chr(_0x2e4782) + + if _0x3b6833 != 64: + _0x59b81a = str(_0x59b81a) + chr(_0x2c0540) + if _0x3b6833 != 64: + _0x59b81a = str(_0x59b81a) + chr(_0x5a46ef) + + return _0x59b81a