From 56798fb0ccc364dba5280ba3790e624d1c7e1718 Mon Sep 17 00:00:00 2001 From: benne238 Date: Wed, 30 Jun 2021 10:23:07 -0400 Subject: [PATCH] added a condition that checks for an ending reply from user delimiter to indicate malformed header information in the reply from user section --- src/webqueue2api/parser/parser.py | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/webqueue2api/parser/parser.py b/src/webqueue2api/parser/parser.py index 3010939..7afb665 100644 --- a/src/webqueue2api/parser/parser.py +++ b/src/webqueue2api/parser/parser.py @@ -148,7 +148,19 @@ def error_handler(original_string, match_start_index, tokens): 'datetime': format_date_string(str(datetime.datetime.now())), } - if token_string == reply_from_user_start_delimiter: + if token_string == reply_from_user_start_delimiter and \ + reply_from_user_end_delimiter in original_string[match_start_index:]: + + expected_token = "\n\n" + line_number = original_string[:original_string[match_start_index:].find(reply_from_user_end_delimiter) + match_start_index].count("\n") + 1 + + parse_error["expected"] = expected_token + parse_error["got"] = reply_from_user_end_delimiter + parse_error["line_num"] = line_number + parsed_item.append(parse_error) + raise ParseError(line_number, f"No reply from user end delimiter found") + + elif token_string == reply_from_user_start_delimiter: expected_token = reply_from_user_end_delimiter line_number = original_string.count('\n') + 1