diff options
| author | 2023-08-13 12:24:45 +0800 | |
|---|---|---|
| committer | 2023-08-13 12:24:45 +0800 | |
| commit | 4bf6db5200affc2f623aa02301020092c0789d19 (patch) | |
| tree | 9f32d49fb967b16a4f4c79bb39bf3ccff6773b9b /hydroroll/config.py | |
| parent | c30ca50aab37a86534b3dcd27c253cc79d0c8101 (diff) | |
| download | HydroRoll-4bf6db5200affc2f623aa02301020092c0789d19.tar.gz HydroRoll-4bf6db5200affc2f623aa02301020092c0789d19.zip | |
refactor: 根据tests重构
Diffstat (limited to 'hydroroll/config.py')
| -rw-r--r-- | hydroroll/config.py | 75 |
1 files changed, 60 insertions, 15 deletions
diff --git a/hydroroll/config.py b/hydroroll/config.py index 4258606..7cd7520 100644 --- a/hydroroll/config.py +++ b/hydroroll/config.py @@ -2,34 +2,79 @@ import argparse import sys import platform from importlib.metadata import version -from iamai import Plugin import os +from typing import Set, Optional +from iamai import ConfigModel # 创建全局 ArgumentParser 对象 -global_parser = argparse.ArgumentParser(description='hydroroll[水系] 全局命令参数') +global_parser = argparse.ArgumentParser(description="HydroRoll[水系] 全局命令参数") + +class BasePluginConfig(ConfigModel): + __config_name__ = "" + handle_all_message: bool = True + """是否处理所有类型的消息,此配置为 True 时会覆盖 handle_friend_message 和 handle_group_message。""" + handle_friend_message: bool = True + """是否处理好友消息。""" + handle_group_message: bool = True + """是否处理群消息。""" + accept_group: Optional[Set[int]] = None + """处理消息的群号,仅当 handle_group_message 为 True 时生效,留空表示处理所有群。""" + message_str: str = "*{user_name} {message}" + """最终发送消息的格式。""" + + +class RegexPluginConfig(BasePluginConfig): + pass + + +class CommandPluginConfig(RegexPluginConfig): + command_prefix: Set[str] = {":", "你妈", "👅", "约瑟夫妥斯妥耶夫斯基戴安那只鸡🐔"} + """命令前缀。""" + command: Set[str] = {} + """命令文本。""" + ignore_case: bool = True + """忽略大小写。""" + # 定义全局配置类 -class GlobalConfig: - _name = "hydroroll" +class GlobalConfig(CommandPluginConfig): + _name = "HydroRoll[水系]" _version = "0.1.0" _svn = "2" _author = "简律纯" - _iamai_version = version('iamai') + _iamai_version = version("iamai") _python_ver = sys.version - _python_ver_raw= '.'.join(map(str, platform.python_version_tuple()[:3])) - _current_path = os.path.dirname(os.path.abspath('__file__')) - _folders = {'config':{},'data':{},'logs':{},'models':{},'rules':{'rules_default'},'users':{},'web':{'frontend':{'static','js','css','public'},'backend':{'app','template'}}} - + _python_ver_raw = ".".join(map(str, platform.python_version_tuple()[:3])) + current_path = os.path.dirname(os.path.abspath("__file__")) + # 定义系统组件 class HydroSystem: def __init__(self): - self.parser = argparse.ArgumentParser(description='hydroroll[水系].system 系统命令参数') + self.parser = argparse.ArgumentParser( + description="HydroRoll[水系].system 系统命令参数" + ) self.subparsers = self.parser.add_subparsers() - self.status_parser = self.subparsers.add_parser('status', aliases=['s'], help='系统状态') - self.reload_parser = self.subparsers.add_parser('reload', aliases=['rld'], help='重新加载系统') - self.restart_parser = self.subparsers.add_parser('restart', aliases=['rst'], help='重启系统') - self.help = '\n'.join(self.parser.format_help().replace('\r\n', '\n').replace('\r', '').split('\n')[2:-3]) + self.status_parser = self.subparsers.add_parser( + "status", aliases=["stat", "state"], help="系统状态" + ) + self.reload_parser = self.subparsers.add_parser( + "reload", aliases=["rld"], help="重新加载系统" + ) + self.restart_parser = self.subparsers.add_parser( + "restart", aliases=["rst"], help="重启系统" + ) + self.collect_parser = self.subparsers.add_parser( + "collect", aliases=["gc"], help="释放 python 内存" + ) + self.help = "\n".join( + self.parser.format_help() + .replace("\r\n", "\n") + .replace("\r", "") + .split("\n")[2:-3] + ) + class HydroBot: def __init__(self) -> None: self.parser = argparse.ArgumentParser(description="Bot命令") -
\ No newline at end of file + + |
