mirror of https://github.com/yt-dlp/yt-dlp.git
Update to ytdl-commit-07af47
[YouTube] Improve fix for ae8ba2c
07af47960f
This commit is contained in:
parent
1619ab3e67
commit
42f2d40b47
|
@ -35,6 +35,21 @@ class TestJSInterpreter(unittest.TestCase):
|
||||||
self._test('function f(){42}', None)
|
self._test('function f(){42}', None)
|
||||||
self._test('var f = function(){return 42;}', 42)
|
self._test('var f = function(){return 42;}', 42)
|
||||||
|
|
||||||
|
def test_add(self):
|
||||||
|
self._test('function f(){return 42 + 7;}', 49)
|
||||||
|
self._test('function f(){return 42 + undefined;}', NaN)
|
||||||
|
self._test('function f(){return 42 + null;}', 42)
|
||||||
|
|
||||||
|
def test_sub(self):
|
||||||
|
self._test('function f(){return 42 - 7;}', 35)
|
||||||
|
self._test('function f(){return 42 - undefined;}', NaN)
|
||||||
|
self._test('function f(){return 42 - null;}', 42)
|
||||||
|
|
||||||
|
def test_mul(self):
|
||||||
|
self._test('function f(){return 42 * 7;}', 294)
|
||||||
|
self._test('function f(){return 42 * undefined;}', NaN)
|
||||||
|
self._test('function f(){return 42 * null;}', 0)
|
||||||
|
|
||||||
def test_div(self):
|
def test_div(self):
|
||||||
jsi = JSInterpreter('function f(a, b){return a / b;}')
|
jsi = JSInterpreter('function f(a, b){return a / b;}')
|
||||||
self._test(jsi, NaN, args=(0, 0))
|
self._test(jsi, NaN, args=(0, 0))
|
||||||
|
@ -42,6 +57,17 @@ class TestJSInterpreter(unittest.TestCase):
|
||||||
self._test(jsi, float('inf'), args=(2, 0))
|
self._test(jsi, float('inf'), args=(2, 0))
|
||||||
self._test(jsi, 0, args=(0, 3))
|
self._test(jsi, 0, args=(0, 3))
|
||||||
|
|
||||||
|
def test_mod(self):
|
||||||
|
self._test('function f(){return 42 % 7;}', 0)
|
||||||
|
self._test('function f(){return 42 % 0;}', NaN)
|
||||||
|
self._test('function f(){return 42 % undefined;}', NaN)
|
||||||
|
|
||||||
|
def test_exp(self):
|
||||||
|
self._test('function f(){return 42 ** 2;}', 1764)
|
||||||
|
self._test('function f(){return 42 ** undefined;}', NaN)
|
||||||
|
self._test('function f(){return 42 ** null;}', 1)
|
||||||
|
self._test('function f(){return undefined ** 42;}', NaN)
|
||||||
|
|
||||||
def test_calc(self):
|
def test_calc(self):
|
||||||
self._test('function f(a){return 2*a+1;}', 7, args=[3])
|
self._test('function f(a){return 2*a+1;}', 7, args=[3])
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
import warnings
|
||||||
|
|
||||||
|
warnings.warn(DeprecationWarning(f'{__name__} is deprecated'))
|
||||||
|
|
||||||
|
casefold = str.casefold
|
|
@ -812,9 +812,9 @@ class JSInterpreter:
|
||||||
\((?P<args>[^)]*)\)\s*
|
\((?P<args>[^)]*)\)\s*
|
||||||
(?P<code>{.+})''' % {'name': re.escape(funcname)},
|
(?P<code>{.+})''' % {'name': re.escape(funcname)},
|
||||||
self.code)
|
self.code)
|
||||||
code, _ = self._separate_at_paren(func_m.group('code'))
|
|
||||||
if func_m is None:
|
if func_m is None:
|
||||||
raise self.Exception(f'Could not find JS function "{funcname}"')
|
raise self.Exception(f'Could not find JS function "{funcname}"')
|
||||||
|
code, _ = self._separate_at_paren(func_m.group('code'))
|
||||||
return [x.strip() for x in func_m.group('args').split(',')], code
|
return [x.strip() for x in func_m.group('args').split(',')], code
|
||||||
|
|
||||||
def extract_function(self, funcname):
|
def extract_function(self, funcname):
|
||||||
|
|
Loading…
Reference in New Issue