1
0
mirror of https://gitee.com/sui-feng-cb/AzurLaneAutoScript1 synced 2026-03-11 23:18:22 +08:00

Opt: Return objects instead of index in Filter.apply()

This commit is contained in:
LmeSzinc
2021-08-07 14:29:34 +08:00
parent b9d3617c74
commit 59a17f59e5
5 changed files with 50 additions and 33 deletions

View File

@@ -4,13 +4,15 @@ from module.logger import logger
class Filter:
def __init__(self, regex, attr, preset):
def __init__(self, regex, attr, preset=()):
"""
Args:
regex: Regular expression.
attr: Attribute name.
preset: Build-in string preset.
"""
if isinstance(regex, str):
regex = re.compile(regex)
self.regex = regex
self.attr = attr
self.preset = preset
@@ -18,7 +20,7 @@ class Filter:
self.filter = []
def load(self, string):
self.filter_raw = [f.strip() for f in string.split('>')]
self.filter_raw = [f.strip(' \t\r\n') for f in string.split('>')]
self.filter = [self.parse_filter(f) for f in self.filter_raw]
def is_preset(self, filter):
@@ -30,7 +32,7 @@ class Filter:
objs (list[object]):
Returns:
list: A list of str and int, such as [2, 3, 0, 'reset']
list: A list of objects and preset strings, such as [object, object, object, 'reset']
"""
out = []
for raw, filter in zip(self.filter_raw, self.filter):
@@ -39,7 +41,7 @@ class Filter:
else:
for index, obj in enumerate(objs):
if self.apply_filter_to_obj(obj=obj, filter=filter) and index not in out:
out.append(index)
out.append(objs[index])
return out

View File

@@ -94,6 +94,10 @@ def ensure_time(second, n=3, precision=3):
lower, upper = second.replace(' ', '').split(',')
lower, upper = int(lower), int(upper)
return ensure_time((lower, upper), n=n, precision=precision)
if '-' in second:
lower, upper = second.replace(' ', '').split('-')
lower, upper = int(lower), int(upper)
return ensure_time((lower, upper), n=n, precision=precision)
else:
return int(second)
else: