Files
addon/plugin.video.alfa/lib/aadecode.py
2017-07-28 19:37:39 -04:00

68 lines
2.2 KiB
Python
Executable File

# -*- coding: utf-8 -*-
from core.scrapertools import *
def decode(text):
text = re.sub(r"\s+|/\*.*?\*/", "", text)
data = text.split("+(゚Д゚)[゚o゚]")[1]
chars = data.split("+(゚Д゚)[゚ε゚]+")[1:]
txt = ""
for char in chars:
char = char \
.replace("(o゚ー゚o)", "u") \
.replace("c", "0") \
.replace("(゚Д゚)['0']", "c") \
.replace("゚Θ゚", "1") \
.replace("!+[]", "1") \
.replace("-~", "1+") \
.replace("o", "3") \
.replace("_", "3") \
.replace("゚ー゚", "4") \
.replace("(+", "(")
char = re.sub(r'\((\d)\)', r'\1', char)
c = "";
subchar = ""
for v in char:
c += v
try:
x = c; subchar += str(eval(x)); c = ""
except:
pass
if subchar != '': txt += subchar + "|"
txt = txt[:-1].replace('+', '')
txt_result = "".join([chr(int(n, 8)) for n in txt.split('|')])
return toStringCases(txt_result)
def toStringCases(txt_result):
sum_base = ""
m3 = False
if ".toString(" in txt_result:
if "+(" in txt_result:
m3 = True
sum_base = "+" + find_single_match(txt_result, ".toString...(\d+).")
txt_pre_temp = find_multiple_matches(txt_result, "..(\d),(\d+).")
txt_temp = [(n, b) for b, n in txt_pre_temp]
else:
txt_temp = find_multiple_matches(txt_result, '(\d+)\.0.\w+.([^\)]+).')
for numero, base in txt_temp:
code = toString(int(numero), eval(base + sum_base))
if m3:
txt_result = re.sub(r'"|\+', '', txt_result.replace("(" + base + "," + numero + ")", code))
else:
txt_result = re.sub(r"'|\+", '', txt_result.replace(numero + ".0.toString(" + base + ")", code))
return txt_result
def toString(number, base):
string = "0123456789abcdefghijklmnopqrstuvwxyz"
if number < base:
return string[number]
else:
return toString(number // base, base) + string[number % base]