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.

