From 882bee2cb16a0df8feab3410f45a0689a8e5b545 Mon Sep 17 00:00:00 2001 From: Jason Date: Sat, 6 Sep 2025 03:47:26 +0900 Subject: [PATCH] PR fixes --- renderer/src/parser/Parser.ts | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/renderer/src/parser/Parser.ts b/renderer/src/parser/Parser.ts index 6e5a758c..4957a7d1 100644 --- a/renderer/src/parser/Parser.ts +++ b/renderer/src/parser/Parser.ts @@ -64,6 +64,7 @@ const parsers: Array = [ parseVaalGemName, { virtual: findInDatabase }, // ----------- + parseFracturedText, parseItemLevel, parseRequirements, parseTalismanTier, @@ -136,6 +137,7 @@ export function parseClipboard(clipboard: string): Result { parsed.value.rawText = clipboard; // each section can be parsed at most by one parser + // and each parser can only be used to parse one section for (const parser of parsers) { if (typeof parser === "object") { const error = parser.virtual(parsed.value); @@ -146,8 +148,7 @@ export function parseClipboard(clipboard: string): Result { const result = parser(section, parsed.value); if (result === "SECTION_PARSED") { sections = sections.filter((s) => s !== section); - // we don't break here since another section may be parsed by the same parser - // this still adheres to the rule of one parser per section + break; } else if (result === "PARSER_SKIPPED") { break; } @@ -1151,6 +1152,13 @@ function parsePriceNote(section: string[], item: ParsedItem) { return isParsed; } +function parseFracturedText(section: string[], _item: ParsedItem) { + for (const line of section) { + if (line === _$.FRACTURED_ITEM) return "SECTION_PARSED"; + } + return "SECTION_SKIPPED"; +} + function parseUnneededText(section: string[], item: ParsedItem) { if ( item.category !== ItemCategory.Quiver && @@ -1168,8 +1176,7 @@ function parseUnneededText(section: string[], item: ParsedItem) { item.category !== ItemCategory.Staff && item.category !== ItemCategory.Shield && item.category !== ItemCategory.Spear && - item.category !== ItemCategory.Buckler && - item.category !== ItemCategory.Bow + item.category !== ItemCategory.Buckler ) { return "PARSER_SKIPPED"; } @@ -1184,8 +1191,7 @@ function parseUnneededText(section: string[], item: ParsedItem) { line.startsWith(_$.SANCTUM_HELP) || line.startsWith(_$.PRECURSOR_TABLET_HELP) || line.startsWith(_$.LOGBOOK_HELP) || - line.startsWith(_$.GRANTS_SKILL) || - line.startsWith(_$.FRACTURED_ITEM) + line.startsWith(_$.GRANTS_SKILL) ) { return "SECTION_PARSED"; }