From 006cfd1ffad3b6a3e665d0cd321fbfabf7ab426f Mon Sep 17 00:00:00 2001 From: JonnyWong16 <9099342+JonnyWong16@users.noreply.github.com> Date: Mon, 24 May 2021 13:22:19 -0700 Subject: [PATCH] Allow < and > in string eval --- plexpy/notification_handler.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/plexpy/notification_handler.py b/plexpy/notification_handler.py index a22b5d2c..b849b738 100644 --- a/plexpy/notification_handler.py +++ b/plexpy/notification_handler.py @@ -1896,18 +1896,21 @@ class CustomFormatter(Formatter): suffix = None if real_format_string != format_string[1:-1]: - prefix_split = real_format_string.split('<') + matches = re.findall(r"`.*?`", real_format_string) + temp_format_string = re.sub(r"`.*`", "{}", real_format_string) + + prefix_split = temp_format_string.split('<') if len(prefix_split) == 2: prefix = prefix_split[0].replace('\\n', '\n') - real_format_string = prefix_split[1] + temp_format_string = prefix_split[1] - suffix_split = real_format_string.split('>') + suffix_split = temp_format_string.split('>') if len(suffix_split) == 2: suffix = suffix_split[1].replace('\\n', '\n') - real_format_string = suffix_split[0] + temp_format_string = suffix_split[0] if prefix or suffix: - real_format_string = '{' + real_format_string + '}' + real_format_string = '{' + temp_format_string.format(*matches) + '}' _, field_name, format_spec, conversion, _, _ = next(self.parse(real_format_string)) yield literal_text, field_name, format_spec, conversion, prefix, suffix