From a2460e1821b836a218109e8a96e7c7630ba4b942 Mon Sep 17 00:00:00 2001 From: Bingsu Date: Tue, 27 Jun 2023 08:06:31 +0900 Subject: [PATCH] fix: enable check to all inputs --- adetailer/args.py | 10 ++++------ scripts/!adetailer.py | 10 +++++----- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/adetailer/args.py b/adetailer/args.py index 86f6d4e..a6385da 100644 --- a/adetailer/args.py +++ b/adetailer/args.py @@ -151,16 +151,14 @@ class ADetailerArgs(BaseModel, extra=Extra.forbid): class EnableChecker(BaseModel): - a0: Union[bool, dict] - a1: Any + enable: bool + arg_list: list[dict[str, Any]] def is_enabled(self) -> bool: ad_model = ALL_ARGS[0].attr - if isinstance(self.a0, dict): - return self.a0.get(ad_model, "None") != "None" - if not isinstance(self.a1, dict): + if not self.enable: return False - return self.a0 and self.a1.get(ad_model, "None") != "None" + return any(arg.get(ad_model, "None") != "None" for arg in self.arg_list) _all_args = [ diff --git a/scripts/!adetailer.py b/scripts/!adetailer.py index 2502f65..753f632 100644 --- a/scripts/!adetailer.py +++ b/scripts/!adetailer.py @@ -148,15 +148,15 @@ class AfterDetailerScript(scripts.Script): ) def is_ad_enabled(self, *args_) -> bool: - if len(args_) == 0 or (len(args_) == 1 and not isinstance(args_[0], dict)): + arg_list = [arg for arg in args_ if isinstance(arg, dict)] + if not args_ or not arg_list or not isinstance(args_[0], (bool, dict)): message = f""" - [-] ADetailer: Not enough arguments passed to ADetailer. + [-] ADetailer: Invalid arguments passed to ADetailer. input: {args_!r} """ raise ValueError(dedent(message)) - a0 = args_[0] - a1 = args_[1] if len(args_) > 1 else None - checker = EnableChecker(a0=a0, a1=a1) + enable = args_[0] if isinstance(args_[0], bool) else True + checker = EnableChecker(enable=enable, arg_list=arg_list) return checker.is_enabled() def get_args(self, p, *args_) -> list[ADetailerArgs]: