Sergey M․
2 years ago
No known key found for this signature in database
GPG Key ID: 2C393E0F18A9236D
2 changed files with
25 additions and
2 deletions
-
test/test_utils.py
-
youtube_dl/utils.py
|
|
@ -937,6 +937,28 @@ class TestUtil(unittest.TestCase): |
|
|
|
self.assertEqual(d['x'], 1) |
|
|
|
self.assertEqual(d['y'], 'a') |
|
|
|
|
|
|
|
# Just drop ! prefix for now though this results in a wrong value |
|
|
|
on = js_to_json('''{ |
|
|
|
a: !0, |
|
|
|
b: !1, |
|
|
|
c: !!0, |
|
|
|
d: !!42.42, |
|
|
|
e: !!![], |
|
|
|
f: !"abc", |
|
|
|
g: !"", |
|
|
|
!42: 42 |
|
|
|
}''') |
|
|
|
self.assertEqual(json.loads(on), { |
|
|
|
'a': 0, |
|
|
|
'b': 1, |
|
|
|
'c': 0, |
|
|
|
'd': 42.42, |
|
|
|
'e': [], |
|
|
|
'f': "abc", |
|
|
|
'g': "", |
|
|
|
'42': 42 |
|
|
|
}) |
|
|
|
|
|
|
|
on = js_to_json('["abc", "def",]') |
|
|
|
self.assertEqual(json.loads(on), ['abc', 'def']) |
|
|
|
|
|
|
|
|
|
@ -4078,7 +4078,7 @@ def js_to_json(code): |
|
|
|
v = m.group(0) |
|
|
|
if v in ('true', 'false', 'null'): |
|
|
|
return v |
|
|
|
elif v.startswith('/*') or v.startswith('//') or v == ',': |
|
|
|
elif v.startswith('/*') or v.startswith('//') or v.startswith('!') or v == ',': |
|
|
|
return "" |
|
|
|
|
|
|
|
if v[0] in ("'", '"'): |
|
|
@ -4103,7 +4103,8 @@ def js_to_json(code): |
|
|
|
{comment}|,(?={skip}[\]}}])| |
|
|
|
(?:(?<![0-9])[eE]|[a-df-zA-DF-Z_])[.a-zA-Z_0-9]*| |
|
|
|
\b(?:0[xX][0-9a-fA-F]+|0+[0-7]+)(?:{skip}:)?| |
|
|
|
[0-9]+(?={skip}:) |
|
|
|
[0-9]+(?={skip}:)| |
|
|
|
!+ |
|
|
|
'''.format(comment=COMMENT_RE, skip=SKIP_RE), fix_kv, code) |
|
|
|
|
|
|
|
|
|
|
|