ayaka.on
注册回调[旧API]
1'''注册回调[旧API]''' 2from typing import TYPE_CHECKING 3from .state import root_state, AyakaTimer 4 5if TYPE_CHECKING: 6 from .ayaka import AyakaApp 7 8 9class AyakaOn: 10 def __init__(self, app: "AyakaApp") -> None: 11 self.app = app 12 13 def state(self, *states: str): 14 '''注册有状态回调''' 15 if "*" in str(states): 16 def decorator(func): 17 func = self.app.on_deep_all("all")(func) 18 func = self.app.on_state()(func) 19 return func 20 return decorator 21 return self.app.on_state(*states) 22 23 def idle(self, super=False): 24 '''注册无状态回调''' 25 if super: 26 def decorator(func): 27 func = self.app.on_state(root_state)(func) 28 func = self.app.on_deep_all("all")(func) 29 return func 30 return decorator 31 return self.app.on_state(root_state) 32 33 def command(self, *cmds: str): 34 return self.app.on_cmd(*cmds) 35 36 def text(self): 37 return self.app.on_no_block() 38 39 def everyday(self, h: int, m: int, s: int): 40 '''每日定时触发''' 41 return self.interval(86400, h, m, s) 42 43 def interval(self, gap: int, h=-1, m=-1, s=-1, show=True): 44 '''在指定的时间点后循环触发''' 45 return self.on_timer(gap, h, m, s, show) 46 47 def on_timer(self, gap: int, h: int, m: int, s: int, show=True): 48 '''在指定的时间点后循环触发''' 49 def decorator(func): 50 t = AyakaTimer(self.app.name, gap, h, m, s, func, show) 51 self.app.timers.append(t) 52 return func 53 return decorator
class
AyakaOn:
10class AyakaOn: 11 def __init__(self, app: "AyakaApp") -> None: 12 self.app = app 13 14 def state(self, *states: str): 15 '''注册有状态回调''' 16 if "*" in str(states): 17 def decorator(func): 18 func = self.app.on_deep_all("all")(func) 19 func = self.app.on_state()(func) 20 return func 21 return decorator 22 return self.app.on_state(*states) 23 24 def idle(self, super=False): 25 '''注册无状态回调''' 26 if super: 27 def decorator(func): 28 func = self.app.on_state(root_state)(func) 29 func = self.app.on_deep_all("all")(func) 30 return func 31 return decorator 32 return self.app.on_state(root_state) 33 34 def command(self, *cmds: str): 35 return self.app.on_cmd(*cmds) 36 37 def text(self): 38 return self.app.on_no_block() 39 40 def everyday(self, h: int, m: int, s: int): 41 '''每日定时触发''' 42 return self.interval(86400, h, m, s) 43 44 def interval(self, gap: int, h=-1, m=-1, s=-1, show=True): 45 '''在指定的时间点后循环触发''' 46 return self.on_timer(gap, h, m, s, show) 47 48 def on_timer(self, gap: int, h: int, m: int, s: int, show=True): 49 '''在指定的时间点后循环触发''' 50 def decorator(func): 51 t = AyakaTimer(self.app.name, gap, h, m, s, func, show) 52 self.app.timers.append(t) 53 return func 54 return decorator
AyakaOn(app: ayaka.ayaka.AyakaApp)
def
state(self, *states: str):
14 def state(self, *states: str): 15 '''注册有状态回调''' 16 if "*" in str(states): 17 def decorator(func): 18 func = self.app.on_deep_all("all")(func) 19 func = self.app.on_state()(func) 20 return func 21 return decorator 22 return self.app.on_state(*states)
注册有状态回调
def
idle(self, super=False):
24 def idle(self, super=False): 25 '''注册无状态回调''' 26 if super: 27 def decorator(func): 28 func = self.app.on_state(root_state)(func) 29 func = self.app.on_deep_all("all")(func) 30 return func 31 return decorator 32 return self.app.on_state(root_state)
注册无状态回调
def
everyday(self, h: int, m: int, s: int):
40 def everyday(self, h: int, m: int, s: int): 41 '''每日定时触发''' 42 return self.interval(86400, h, m, s)
每日定时触发
def
interval(self, gap: int, h=-1, m=-1, s=-1, show=True):
44 def interval(self, gap: int, h=-1, m=-1, s=-1, show=True): 45 '''在指定的时间点后循环触发''' 46 return self.on_timer(gap, h, m, s, show)
在指定的时间点后循环触发
def
on_timer(self, gap: int, h: int, m: int, s: int, show=True):
48 def on_timer(self, gap: int, h: int, m: int, s: int, show=True): 49 '''在指定的时间点后循环触发''' 50 def decorator(func): 51 t = AyakaTimer(self.app.name, gap, h, m, s, func, show) 52 self.app.timers.append(t) 53 return func 54 return decorator
在指定的时间点后循环触发