mirror of
https://github.com/morpheus65535/bazarr
synced 2024-12-29 02:55:52 +00:00
32 lines
882 B
Python
32 lines
882 B
Python
from __future__ import absolute_import
|
|
|
|
import js2py
|
|
import logging
|
|
import base64
|
|
|
|
from . import JavaScriptInterpreter
|
|
|
|
from .jsunfuck import jsunfuck
|
|
|
|
|
|
class ChallengeInterpreter(JavaScriptInterpreter):
|
|
|
|
def __init__(self):
|
|
super(ChallengeInterpreter, self).__init__('js2py')
|
|
|
|
def eval(self, jsEnv, js):
|
|
if js2py.eval_js('(+(+!+[]+[+!+[]]+(!![]+[])[!+[]+!+[]+!+[]]+[!+[]+!+[]]+[+[]])+[])[+!+[]]') == '1':
|
|
logging.warning('WARNING - Please upgrade your js2py https://github.com/PiotrDabkowski/Js2Py, applying work around for the meantime.')
|
|
js = jsunfuck(js)
|
|
|
|
def atob(s):
|
|
return base64.b64decode('{}'.format(s)).decode('utf-8')
|
|
|
|
js2py.disable_pyimport()
|
|
context = js2py.EvalJs({'atob': atob})
|
|
result = context.eval('{}{}'.format(jsEnv, js))
|
|
|
|
return result
|
|
|
|
|
|
ChallengeInterpreter()
|