fix: enable check to all inputs

This commit is contained in:
Bingsu
2023-06-27 08:06:31 +09:00
parent b94ed1dde3
commit a2460e1821
2 changed files with 9 additions and 11 deletions

View File

@@ -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 = [

View File

@@ -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]: