commit: 6e2626f092c63a5fa22a31df409610b5deaf3968
parent c282e5f8d723763ba88c521221e4535f46453949
Author: dirkf <fieldhouse@gmx.net>
Date: Tue, 11 Oct 2022 05:58:10 +0100
[JSInterp] Improve separation logic
Based on https://github.com/yt-dlp/yt-dlp/commit/0468a3b3253957bfbeb98b4a7c71542ff80e9e06
Diffstat:
1 file changed, 3 insertions(+), 3 deletions(-)
diff --git a/youtube_dl/jsinterp.py b/youtube_dl/jsinterp.py
@@ -214,7 +214,7 @@ class JSInterpreter(object):
def __init__(self, msg, *args, **kwargs):
expr = kwargs.pop('expr', None)
if expr is not None:
- msg = '{0} in: {1!r}'.format(msg.rstrip(), expr[:100])
+ msg = '{0} in: {1!r:.100}'.format(msg.rstrip(), expr)
super(JSInterpreter.Exception, self).__init__(msg, *args, **kwargs)
@classmethod
@@ -268,7 +268,7 @@ class JSInterpreter(object):
elif in_quote == '/' and char in '[]':
in_regex_char_group = char == '['
escaping = not escaping and in_quote and char == '\\'
- after_op = not in_quote and (char in cls.OP_CHARS or (char.isspace() and after_op))
+ after_op = not in_quote and (char in cls.OP_CHARS or char == '[' or (char.isspace() and after_op))
if char != delim[pos] or any(counters.values()) or in_quote:
pos = skipping = 0
@@ -301,7 +301,7 @@ class JSInterpreter(object):
separated = list(cls._separate(expr, delim, 1))
if len(separated) < 2:
- raise cls.Exception('No terminating paren {delim} in {expr}'.format(**locals()))
+ raise cls.Exception('No terminating paren {delim} in {expr:.100}'.format(**locals()))
return separated[0][1:].strip(), separated[1].strip()
@staticmethod