zhenxun_bot/zhenxun/utils/enum.py
Rumio e5b2a872d3
Some checks failed
检查bot是否运行正常 / bot check (push) Has been cancelled
CodeQL Code Security Analysis / Analyze (${{ matrix.language }}) (none, python) (push) Has been cancelled
Sequential Lint and Type Check / ruff-call (push) Has been cancelled
Release Drafter / Update Release Draft (push) Has been cancelled
Force Sync to Aliyun / sync (push) Has been cancelled
Update Version / update-version (push) Has been cancelled
Sequential Lint and Type Check / pyright-call (push) Has been cancelled
feat(group-settings): 实现群插件配置管理系统 (#2072)
*  feat(group-settings): 实现群插件配置管理系统

- 引入 GroupSettingsService 服务,提供统一的群插件配置管理接口
- 新增 GroupPluginSetting 模型,用于持久化存储插件在不同群组的配置
- 插件扩展数据 PluginExtraData 增加 group_config_model 字段,用于注册分群配置模型
- 新增 GetGroupConfig 依赖注入,允许插件轻松获取和解析当前群组的配置

【核心服务 GroupSettingsService】
- 支持按群组、插件名和键设置、获取和删除配置项
- 实现配置聚合缓存机制,提升配置读取效率,减少数据库查询
- 支持配置继承与覆盖逻辑(群配置覆盖全局默认值)
- 提供批量设置功能 set_bulk,方便为多个群组同时更新配置

【管理与缓存】
- 新增超级用户命令 pconf (plugin_config_manager),用于命令行管理插件的分群和全局配置
- 新增 CacheType.GROUP_PLUGIN_SETTINGS 缓存类型并注册
- 增加 Pydantic model_construct 兼容函数

* 🐛 fix(codeql): 移除对 JavaScript 和 TypeScript 的分析支持

---------

Co-authored-by: webjoin111 <455457521@qq.com>
2025-12-01 14:52:36 +08:00

196 lines
3.4 KiB
Python

import sys
if sys.version_info >= (3, 11):
from enum import StrEnum
else:
from strenum import StrEnum
class PriorityLifecycleType(StrEnum):
STARTUP = "STARTUP"
"""启动"""
SHUTDOWN = "SHUTDOWN"
"""关闭"""
class BotSentType(StrEnum):
GROUP = "GROUP"
PRIVATE = "PRIVATE"
class BankHandleType(StrEnum):
DEPOSIT = "DEPOSIT"
"""存款"""
WITHDRAW = "WITHDRAW"
"""取款"""
LOAN = "LOAN"
"""贷款"""
REPAYMENT = "REPAYMENT"
"""还款"""
INTEREST = "INTEREST"
"""利息"""
class EventLogType(StrEnum):
GROUP_MEMBER_INCREASE = "GROUP_MEMBER_INCREASE"
"""群成员增加"""
GROUP_MEMBER_DECREASE = "GROUP_MEMBER_DECREASE"
"""群成员减少"""
KICK_MEMBER = "KICK_MEMBER"
"""踢出群成员"""
KICK_BOT = "KICK_BOT"
"""踢出Bot"""
LEAVE_MEMBER = "LEAVE_MEMBER"
"""主动退群"""
class CacheType(StrEnum):
"""
缓存类型
"""
PLUGINS = "GLOBAL_ALL_PLUGINS"
"""全局全部插件"""
GROUPS = "GLOBAL_ALL_GROUPS"
"""全局全部群组"""
GROUP_PLUGIN_SETTINGS = "GROUP_PLUGIN_SETTINGS"
"""插件分群配置"""
USERS = "GLOBAL_ALL_USERS"
"""全部用户"""
BAN = "GLOBAL_ALL_BAN"
"""全局ban列表"""
BOT = "GLOBAL_BOT"
"""全局bot信息"""
LEVEL = "GLOBAL_USER_LEVEL"
"""用户权限"""
LIMIT = "GLOBAL_LIMIT"
"""插件限制"""
class DbLockType(StrEnum):
"""
锁类型
"""
CREATE = "CREATE"
"""创建"""
DELETE = "DELETE"
"""删除"""
UPDATE = "UPDATE"
"""更新"""
QUERY = "QUERY"
"""查询"""
UPSERT = "UPSERT"
"""创建或更新"""
class GoldHandle(StrEnum):
"""
金币处理
"""
BUY = "BUY"
"""购买"""
GET = "GET"
"""获取"""
PLUGIN = "PLUGIN"
"""插件花费"""
class PropHandle(StrEnum):
"""
道具处理
"""
BUY = "BUY"
"""购买"""
USE = "USE"
"""使用"""
class PluginType(StrEnum):
"""
插件类型
"""
SUPERUSER = "SUPERUSER"
"""超级用户"""
ADMIN = "ADMIN"
"""管理员"""
SUPER_AND_ADMIN = "ADMIN_SUPER"
"""管理员以及超级用户"""
NORMAL = "NORMAL"
"""普通插件"""
DEPENDANT = "DEPENDANT"
"""依赖插件,一般为没有主动触发命令的插件,受权限控制"""
HIDDEN = "HIDDEN"
"""隐藏插件,一般为没有主动触发命令的插件,不受权限控制,如消息统计"""
PARENT = "PARENT"
"""父插件,仅仅标记"""
class BlockType(StrEnum):
"""
禁用状态
"""
PRIVATE = "PRIVATE"
GROUP = "GROUP"
ALL = "ALL"
class PluginLimitType(StrEnum):
"""
插件限制类型
"""
CD = "CD"
COUNT = "COUNT"
BLOCK = "BLOCK"
class LimitCheckType(StrEnum):
"""
插件限制类型
"""
PRIVATE = "PRIVATE"
GROUP = "GROUP"
ALL = "ALL"
class LimitWatchType(StrEnum):
"""
插件限制监听对象
"""
USER = "USER"
GROUP = "GROUP"
ALL = "ALL"
class RequestType(StrEnum):
"""
请求类型
"""
FRIEND = "FRIEND"
"""好友"""
GROUP = "GROUP"
"""群组"""
class RequestHandleType(StrEnum):
"""
请求处理类型
"""
APPROVE = "APPROVE"
"""同意"""
REFUSED = "REFUSED"
"""拒绝"""
IGNORE = "IGNORE"
"""忽略"""
EXPIRE = "EXPIRE"
"""过期或失效"""