X-Git-Url: http://git.bitcoin.ninja/index.cgi?a=blobdiff_plain;f=youtube_dl%2Fjsinterp.py;h=b4617fbad0fc40323a129ce1218f9f97590c89bb;hb=c24dfef63c55ef1a5424d11b485c3b76245448a4;hp=34e5307faeda30f7f7fb560c8d84027777e17a7b;hpb=825abb81759d76e53127644a45e1d6cb7ff4f654;p=youtube-dl diff --git a/youtube_dl/jsinterp.py b/youtube_dl/jsinterp.py index 34e5307fa..b4617fbad 100644 --- a/youtube_dl/jsinterp.py +++ b/youtube_dl/jsinterp.py @@ -61,7 +61,7 @@ class JSInterpreter(object): pass m = re.match( - r'^(?P[a-z]+)\.(?P[^(]+)(?:\(+(?P[^()]*)\))?$', + r'^(?P[$a-zA-Z0-9_]+)\.(?P[^(]+)(?:\(+(?P[^()]*)\))?$', expr) if m: variable = m.group('var') @@ -98,7 +98,8 @@ class JSInterpreter(object): return argvals[0].join(obj) if member == 'reverse': assert len(argvals) == 0 - return obj[::-1] + obj.reverse() + return obj if member == 'slice': assert len(argvals) == 1 return obj[argvals[0]:] @@ -107,7 +108,7 @@ class JSInterpreter(object): index, howMany = argvals res = [] for i in range(index, min(index + howMany, len(obj))): - res.append(obj.pop(i)) + res.append(obj.pop(index)) return res return obj[member](argvals) @@ -129,7 +130,7 @@ class JSInterpreter(object): return a % b m = re.match( - r'^(?P[.a-zA-Z$]+)\((?P[a-z0-9,]+)\)$', expr) + r'^(?P[a-zA-Z$]+)\((?P[a-z0-9,]+)\)$', expr) if m: fname = m.group('func') argvals = tuple([