fix bugs
This commit is contained in:
@ -41,6 +41,7 @@ class RuleParser:
|
||||
|
||||
if __name__ == '__main__':
|
||||
# 测试代码
|
||||
expression1 = "!BLU & (1080P | CN)"
|
||||
parsed_expr1 = RuleParser().parse(expression1)
|
||||
print(parsed_expr1.as_list())
|
||||
expression = "!BLU & 4K & CN > !BLU & 1080P & CN > !BLU & 4K > !BLU & 1080P"
|
||||
for exp in expression.split('>'):
|
||||
parsed_expr = RuleParser().parse(exp)
|
||||
print(parsed_expr.as_list())
|
||||
|
@ -111,15 +111,18 @@ class FilterModule(_ModuleBase):
|
||||
if not isinstance(rule_group, list):
|
||||
# 不是列表,说明是规则名称
|
||||
return self.__match_rule(torrent, rule_group)
|
||||
if rule_group[0] == "not":
|
||||
elif isinstance(rule_group, list) and len(rule_group) == 1:
|
||||
# 只有一个规则项
|
||||
return self.__match_rule(torrent, rule_group[0])
|
||||
elif rule_group[0] == "not":
|
||||
# 非操作
|
||||
return not self.__match_group(torrent, rule_group[1])
|
||||
return not self.__match_group(torrent, rule_group[1:])
|
||||
elif rule_group[1] == "and":
|
||||
# 与操作
|
||||
return self.__match_group(torrent, rule_group[0]) and self.__match_group(torrent, rule_group[2])
|
||||
return self.__match_group(torrent, rule_group[0]) and self.__match_group(torrent, rule_group[2:])
|
||||
elif rule_group[1] == "or":
|
||||
# 或操作
|
||||
return self.__match_group(torrent, rule_group[0]) or self.__match_group(torrent, rule_group[2])
|
||||
return self.__match_group(torrent, rule_group[0]) or self.__match_group(torrent, rule_group[2:])
|
||||
|
||||
def __match_rule(self, torrent: TorrentInfo, rule_name: str) -> bool:
|
||||
"""
|
||||
|
@ -18,6 +18,8 @@ class Qbittorrent(metaclass=Singleton):
|
||||
_username: str = None
|
||||
_passowrd: str = None
|
||||
|
||||
qbc: Client = None
|
||||
|
||||
def __init__(self):
|
||||
host = settings.QB_HOST
|
||||
if host and host.find(":") != -1:
|
||||
@ -44,7 +46,7 @@ class Qbittorrent(metaclass=Singleton):
|
||||
try:
|
||||
qbt.auth_log_in()
|
||||
except qbittorrentapi.LoginFailed as e:
|
||||
print(str(e))
|
||||
logger.error(f"qbittorrent 登录失败:{e}")
|
||||
return qbt
|
||||
except Exception as err:
|
||||
logger.error(f"qbittorrent 连接出错:{err}")
|
||||
|
@ -16,6 +16,8 @@ class Transmission(metaclass=Singleton):
|
||||
_username: str = None
|
||||
_passowrd: str = None
|
||||
|
||||
trc: Optional[Client] = None
|
||||
|
||||
# 参考transmission web,仅查询需要的参数,加速种子搜索
|
||||
_trarg = ["id", "name", "status", "labels", "hashString", "totalSize", "percentDone", "addedDate", "trackerStats",
|
||||
"leftUntilDone", "rateDownload", "rateUpload", "recheckProgress", "rateDownload", "rateUpload",
|
||||
@ -46,7 +48,7 @@ class Transmission(metaclass=Singleton):
|
||||
timeout=60)
|
||||
return trt
|
||||
except Exception as err:
|
||||
logger.error(f"连接出错:{err}")
|
||||
logger.error(f"transmission 连接出错:{err}")
|
||||
return None
|
||||
|
||||
def get_torrents(self, ids: Union[str, list] = None, status: Union[str, list] = None,
|
||||
|
Reference in New Issue
Block a user