From 5b65976f5a6ef65f4d87287c5876d7bad0f0108c Mon Sep 17 00:00:00 2001 From: Kelvin Zhao Date: Fri, 15 Dec 2023 04:16:52 -0800 Subject: [PATCH] fix: minor bug fixes --- src/config/screenshot.py | 2 +- src/services/scanner/parsers/light_cone_strategy.py | 4 ++-- src/services/scanner/parsers/relic_strategy.py | 4 +++- src/utils/ocr.py | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/config/screenshot.py b/src/config/screenshot.py index 7d8aa32..2e11097 100644 --- a/src/config/screenshot.py +++ b/src/config/screenshot.py @@ -82,7 +82,7 @@ "equipped_avatar": (0.3525, 0.9425, 0.4375, 0.99), "mainStatKey": (0.115, 0.358, 0.7, 0.4), "substat_names": (0.115, 0.41, 0.5, 0.6), - "substat_vals": (0.5, 0.41, 1, 0.6), + "substat_vals": (0.7, 0.41, 1, 0.6), }, } } diff --git a/src/services/scanner/parsers/light_cone_strategy.py b/src/services/scanner/parsers/light_cone_strategy.py index b55465b..5166451 100644 --- a/src/services/scanner/parsers/light_cone_strategy.py +++ b/src/services/scanner/parsers/light_cone_strategy.py @@ -94,11 +94,11 @@ def check_filters( stats_dict["level"] = self.extract_stats_data( "level", stats_dict["level"] ) - if not level: + if not stats_dict["level"]: self._log_signal.emit( f"Light Cone ID {lc_id}: Failed to parse level. Setting to 1." ) - level = "1/20" + stats_dict["level"] = "1/20" val = int(stats_dict["level"].split("/")[0]) if not isinstance(val, int): diff --git a/src/services/scanner/parsers/relic_strategy.py b/src/services/scanner/parsers/relic_strategy.py index fae91c4..0a8a36d 100644 --- a/src/services/scanner/parsers/relic_strategy.py +++ b/src/services/scanner/parsers/relic_strategy.py @@ -272,7 +272,7 @@ def _parse_substats( if not self._validate_substat(name, val, rarity): self._log_signal.emit( - f"WARNING: Relic ID {relic_id}: Substat {name} has illegal value {val}." + f'WARNING: Relic ID {relic_id}: Substat {name} has illegal value "{val}".' ) substats.append({"key": name, "value": val}) @@ -288,6 +288,8 @@ def _validate_substat(self, name: str, val: int | float, rarity: int) -> bool: :return: True if the substat is valid, False otherwise """ try: + if name not in SUBSTAT_ROLL_VALS[str(rarity)]: + return False if str(val) not in SUBSTAT_ROLL_VALS[str(rarity)][name]: return False except KeyError: diff --git a/src/utils/ocr.py b/src/utils/ocr.py index fb109ef..5b80fa5 100644 --- a/src/utils/ocr.py +++ b/src/utils/ocr.py @@ -112,7 +112,7 @@ def preprocess_sub_stat_img(img: Image) -> Image: :param img: The image to preprocess :return: The preprocessed image """ - img = _preprocess_img_by_colour_filter(img, (255, 255, 255), 95) + img = _preprocess_img_by_colour_filter(img, (255, 255, 255), 100) return img