2021-09-10 18:05:27 +00:00
|
|
|
from typing import Callable, Union
|
|
|
|
|
2021-08-30 18:53:39 +00:00
|
|
|
from apscheduler.triggers.combining import AndTrigger, OrTrigger
|
|
|
|
from apscheduler.triggers.cron import CronTrigger
|
|
|
|
from apscheduler.triggers.date import DateTrigger
|
2021-09-10 18:05:27 +00:00
|
|
|
from apscheduler.triggers.interval import IntervalTrigger
|
2021-07-06 18:00:26 +00:00
|
|
|
|
|
|
|
|
2021-08-30 18:53:39 +00:00
|
|
|
class Command:
|
2021-07-07 16:00:24 +00:00
|
|
|
def __init__(self,
|
2021-07-10 17:05:07 +00:00
|
|
|
function: Callable,
|
|
|
|
bind_prefix: str,
|
2021-09-10 18:05:27 +00:00
|
|
|
alias: Union[str, list, tuple, dict] = None,
|
|
|
|
help_doc: Union[str, list, tuple] = None,
|
|
|
|
allowed_none: bool = True,
|
2021-08-30 18:53:39 +00:00
|
|
|
desc: str = None,
|
2021-09-10 18:05:27 +00:00
|
|
|
recommend_modules: Union[str, list, tuple] = None,
|
2021-08-30 18:53:39 +00:00
|
|
|
need_admin: bool = False,
|
|
|
|
is_base_function: bool = False,
|
|
|
|
need_superuser: bool = False,
|
|
|
|
is_regex_function: bool = False,
|
|
|
|
autorun: bool = False):
|
2021-07-06 18:00:26 +00:00
|
|
|
self.function = function
|
2021-07-07 16:00:24 +00:00
|
|
|
self.bind_prefix = bind_prefix
|
|
|
|
self.alias = alias
|
|
|
|
self.help_doc = help_doc
|
2021-09-10 18:05:27 +00:00
|
|
|
self.allowed_none = allowed_none
|
2021-07-27 16:03:48 +00:00
|
|
|
self.desc = desc
|
2021-09-10 18:05:27 +00:00
|
|
|
self.recommend_modules = recommend_modules
|
2021-07-27 14:31:45 +00:00
|
|
|
self.need_admin = need_admin
|
2021-07-07 16:00:24 +00:00
|
|
|
self.is_base_function = is_base_function
|
2021-07-27 14:31:45 +00:00
|
|
|
self.need_superuser = need_superuser
|
2021-07-26 14:33:49 +00:00
|
|
|
self.is_regex_function = is_regex_function
|
2021-07-13 15:48:43 +00:00
|
|
|
self.autorun = autorun
|
2021-07-27 14:31:45 +00:00
|
|
|
|
|
|
|
|
|
|
|
class Option:
|
2021-08-30 18:53:39 +00:00
|
|
|
def __init__(self,
|
|
|
|
bind_prefix: str,
|
|
|
|
desc: str = None,
|
2021-09-10 18:05:27 +00:00
|
|
|
help_doc: Union[str, list, tuple] = None,
|
|
|
|
alias: Union[str, list, tuple, dict] = None,
|
|
|
|
recommend_modules: Union[str, list, tuple] = None,
|
2021-08-30 18:53:39 +00:00
|
|
|
need_superuser: bool = False,
|
|
|
|
need_admin: bool = False):
|
2021-07-27 14:31:45 +00:00
|
|
|
self.bind_prefix = bind_prefix
|
|
|
|
self.help_doc = help_doc
|
2021-07-27 16:03:48 +00:00
|
|
|
self.desc = desc
|
2021-07-27 14:31:45 +00:00
|
|
|
self.alias = alias
|
2021-09-10 18:05:27 +00:00
|
|
|
self.allowed_none = True
|
|
|
|
self.recommend_modules = recommend_modules
|
2021-07-27 14:31:45 +00:00
|
|
|
self.need_superuser = need_superuser
|
2021-09-03 19:19:07 +00:00
|
|
|
self.is_base_function = False
|
|
|
|
self.is_regex_function = False
|
2021-07-27 14:31:45 +00:00
|
|
|
self.need_admin = need_admin
|
2021-08-23 12:44:31 +00:00
|
|
|
|
|
|
|
|
2021-08-30 18:53:39 +00:00
|
|
|
class Schedule:
|
|
|
|
def __init__(self,
|
|
|
|
function: Callable,
|
|
|
|
trigger: [AndTrigger, OrTrigger, DateTrigger, CronTrigger, IntervalTrigger],
|
|
|
|
bind_prefix: str,
|
|
|
|
desc: str = None,
|
2021-09-10 18:05:27 +00:00
|
|
|
help_doc: Union[str, list, tuple] = None,
|
|
|
|
alias: Union[str, list, tuple, dict] = None,
|
|
|
|
recommend_modules: Union[str, list, tuple] = None,
|
2021-08-30 18:53:39 +00:00
|
|
|
need_superuser: bool = False,
|
|
|
|
need_admin: bool = False
|
|
|
|
):
|
|
|
|
self.function = function
|
|
|
|
self.trigger = trigger
|
|
|
|
self.bind_prefix = bind_prefix
|
|
|
|
self.desc = desc
|
|
|
|
self.help_doc = help_doc
|
2021-09-10 18:05:27 +00:00
|
|
|
self.allowed_none = True
|
2021-08-30 18:53:39 +00:00
|
|
|
self.alias = alias
|
2021-09-10 18:05:27 +00:00
|
|
|
self.recommend_modules = recommend_modules
|
2021-08-30 18:53:39 +00:00
|
|
|
self.need_superuser = need_superuser
|
2021-09-03 19:19:07 +00:00
|
|
|
self.is_base_function = False
|
|
|
|
self.is_regex_function = False
|
2021-08-30 18:53:39 +00:00
|
|
|
self.need_admin = need_admin
|
|
|
|
|
|
|
|
|
|
|
|
__all__ = ["Command", "Option", "Schedule", "AndTrigger", "OrTrigger", "DateTrigger", "CronTrigger", "IntervalTrigger"]
|