readjust _run to contain less code & removal of redundant code

This commit is contained in:
SolitudePy
2025-06-11 19:30:29 +03:00
parent eba4e4b50c
commit 742b0634b9
+15 -28
View File
@@ -46,12 +46,21 @@ class RegExScan(plugins.PluginInterface):
),
]
def _generator(self, compiled_pattern, raw_pattern, maxsize):
vollog.debug(f"RegEx Pattern: {raw_pattern}")
layer = self.context.layers[self.config["primary"]]
def _generator(self, layer, pattern, maxsize):
vollog.debug(f"RegEx Pattern: {pattern}")
# Convert string pattern to bytes for RegExScanner
pattern_bytes = pattern.encode("utf-8")
# Compile the pattern here to ensure consistency
try:
compiled_pattern = re.compile(pattern_bytes)
except re.error as e:
vollog.error(f"Invalid regex pattern: {e}")
raise ValueError(f"Invalid regex pattern: {e}")
for offset in layer.scan(
context=self.context, scanner=scanners.RegExScanner(raw_pattern)
context=self.context, scanner=scanners.RegExScanner(pattern_bytes)
):
result_data = layer.read(offset, maxsize, pad=True)
@@ -73,30 +82,8 @@ class RegExScan(plugins.PluginInterface):
def run(self):
pattern = self.config.get("pattern")
# Handle pattern encoding robustly
if isinstance(pattern, str):
try:
raw_pattern = pattern.encode("utf-8")
except UnicodeEncodeError:
raw_pattern = pattern.encode("latin1", errors="replace")
else:
raw_pattern = pattern
try:
compiled_pattern = re.compile(raw_pattern)
except re.error as e:
vollog.error(f"Invalid regex pattern: {e}")
return renderers.TreeGrid(
[
("Offset", format_hints.Hex),
("Text", str),
("Hex", bytes),
],
[],
)
maxsize = self.config.get("maxsize", self.MAXSIZE_DEFAULT)
layer = self.context.layers[self.config["primary"]]
return renderers.TreeGrid(
[
@@ -104,5 +91,5 @@ class RegExScan(plugins.PluginInterface):
("Text", str),
("Hex", bytes),
],
self._generator(compiled_pattern, raw_pattern, maxsize),
self._generator(layer, pattern, maxsize),
)