Handle $ symbol in js function name

This commit is contained in:
darren 2014-02-06 04:03:51 +00:00
parent 3681744297
commit 7b15064bd6

View File

@ -35,6 +35,7 @@ yt_codecs = [
def decipher(js, s):
def tr_js(code):
code = re.sub(r'function', r'def', code)
code = re.sub(r'\$', '_', code)
code = re.sub(r'\{', r':\n\t', code)
code = re.sub(r'\}', r'\n', code)
code = re.sub(r'var\s+', r'', code)
@ -48,9 +49,11 @@ def decipher(js, s):
f1 = match1(js, r'\w+\.sig\|\|(\w+)\(\w+\.\w+\)')
f1def = match1(js, r'(function %s\(\w+\)\{[^\{]+\})' % f1)
code = tr_js(f1def)
f2 = match1(f1def, r'(\w+)\(\w+,\d+\)')
f2 = match1(f1def, r'([$\w]+)\(\w+,\d+\)')
if f2 is not None:
f2def = match1(js, r'(function %s\(\w+,\w+\)\{[^\{]+\})' % f2)
f2e = re.escape(f2)
f2def = match1(js, r'(function %s\(\w+,\w+\)\{[^\{]+\})' % f2e)
f2 = re.sub(r'\$', r'_', f2)
code = code + 'global %s\n' % f2 + tr_js(f2def)
code = code + 'sig=%s(s)' % f1