js unpacker
Publicado: 25 Feb 2016, 17:03
El resultado de juguetear con jsunpack+viedomega+powvideo+flashx

EDITO: Editada la línea 'f = e[m[0]] * base if len(m) == 2 else 0' para eliminar 'base' por la variable que la recoje. Se quedo sin cambiar en el copy/paste.
Código: Seleccionar todo
# -*- coding: utf-8 -*-
# ------------------------------------------------------------
# pelisalacarta - XBMC Plugin
# Js unpack: simple library for use in pelisalacarta
# @robalo
# http://blog.tvalacarta.info/plugin-xbmc/pelisalacarta/
# ------------------------------------------------------------
import re
def unPack(packed):
pattern = "}\('(.*)', *(\d+), *\d+, *'(.*)'\.split\('\|'\)"
a = dict( (n, m) for n, m in enumerate( re.search(pattern, packed, re.DOTALL).groups() ) )
pattern = r"(\b\w+\b)"
b = re.compile(pattern, re.DOTALL).findall(a[0])
ss = re.sub(pattern, r'<#\1#>',a[0])
c = dict( (n, m) for n, m in enumerate( a[2].split('|') ) )
if int(a[1]) <= 62:
d = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ'
else:
d = ' !"#$%&\'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~'
e = dict( (m, n) for n, m in enumerate( d[:int(a[1])] ) )
for n, m in enumerate( b ):
f = e[m[0]] * int(a[1]) if len(m) == 2 else 0
g = e[m[1]] if len(m) == 2 else e[m]
kk = c[f + g] if c[f + g] != "" else m
ss = ss.replace("<#" + m + "#>", kk)
return ss




EDITO: Editada la línea 'f = e[m[0]] * base if len(m) == 2 else 0' para eliminar 'base' por la variable que la recoje. Se quedo sin cambiar en el copy/paste.