zhenxun_bot/zhenxun/utils/enum.py

196 lines
3.4 KiB
Python
Raw Normal View History

:sparkles: 首次启动时提供使用web ui方式完全配置 (#1870) * :sparkles: 添加全局优先级hook * :sparkles: 添加基础配置api * :sparkles: 添加数据库连接测试 * :speech_balloon: 提示重启 * :adhesive_bandage: 填充过配置时友好提示 * :bug: 首次生成简易配置后自动加载 * :sparkles: 添加配置后重启接口 * :sparkles: 添加重启标志文件 * :sparkles: 添加重启脚本命令 * :sparkles: 添加重启系统限制 * :sparkles: 首次配置判断是否为win系统 * :fire: 移除bat * :sparkles: 添加关于菜单 * :sparkles: 支持整合包插件安装和添加整合包文档 * :adhesive_bandage: 检测数据库路径 * :adhesive_bandage: 修改数据库路径检测 * :adhesive_bandage: 修改数据库路径检测 * :adhesive_bandage: 修复路径注入 * :art: 显示添加优先级 * :bug: 修改PriorityLifecycle字典类名称 * :zap: 修复路径问题 * :zap: 修复路径检测 * ✨ 新增路径验证功能,确保用户输入的路径安全并在项目根目录内 * ✨ 优化路径验证功能,增加对非法字符和路径长度的检查,确保用户输入的路径更加安全 * :rotating_light: auto fix by pre-commit hooks * ✨ 优化获取文件列表的代码格式 * :memo: 修改README中webui示例图 * ✨ 更新PriorityLifecycle.on_startup装饰器 * ✨ 简化安装依赖的命令构建逻辑 * :rotating_light: auto fix by pre-commit hooks --------- Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-06-16 09:11:41 +08:00
import sys
if sys.version_info >= (3, 11):
from enum import StrEnum
else:
from strenum import StrEnum
class PriorityLifecycleType(StrEnum):
STARTUP = "STARTUP"
"""启动"""
SHUTDOWN = "SHUTDOWN"
"""关闭"""
2024-02-04 04:18:54 +08:00
class BotSentType(StrEnum):
GROUP = "GROUP"
PRIVATE = "PRIVATE"
2025-05-26 10:55:30 +08:00
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"
"""主动退群"""
:sparkles: 引入缓存机制 (#1889) * 添加全局cache * ✨ 构建缓存,hook使用缓存 * :sparkles: 新增数据库Model方法监控 * :sparkles: 数据库添加semaphore锁 * :adhesive_bandage: 优化webapi返回数据 * :sparkles: 添加增量缓存与缓存过期 * :art: 优化检测代码结构 * :zap: 优化hook权限检测性能 * :bug: 添加新异常判断跳过权限检测 * :sparkles: 添加插件limit缓存 * :art: 代码格式优化 * :bug: 修复代码导入 * :bug: 修复刷新时检查 * :alien: Rename exception for missing database URL in initialization * :wheelchair: Update default database URL to SQLite in configuration * :wrench: Update tortoise-orm and aiocache dependencies restrictions; add optional redis and asyncpg support * :bug: 修复ban检测 * :bug: 修复所有插件关闭时缓存更新 * :bug: 尝试迁移至aiocache * :bug: 完善aiocache缓存 * :zap: 代码性能优化 * :bug: 移除获取封禁缓存时的日志记录 * :bug: 修复缓存类型声明,优化封禁用户处理逻辑 * :bug: 优化LevelUser权限更新逻辑及数据库迁移 * :sparkles: cache支持redis连接 * :rotating_light: auto fix by pre-commit hooks * :zap: :增强获取群组的安全性和准确性。同时,优化了缓存管理中的相关逻辑,确保缓存操作的一致性。 * ✨ feat(auth_limit): 将插件初始化逻辑的启动装饰器更改为优先级管理器 * 🔧 修复日志记录级别 * 🔧 更新数据库连接字符串 * 🔧 更新数据库连接字符串为内存数据库,并优化权限检查逻辑 * ✨ feat(cache): 增加缓存功能配置项,并新增数据访问层以支持缓存逻辑 * :recycle: 重构cache * ✨ feat(cache): 增强缓存管理,新增缓存字典和缓存列表功能,支持过期时间管理 * 🔧 修复Notebook类中的viewport高度设置,将其从1000调整为10 * ✨ 更新插件管理逻辑,替换缓存服务为CacheRoot并优化缓存失效处理 * ✨ 更新RegisterConfig类中的type字段 * ✨ 修复清理重复记录逻辑,确保检查记录的id属性有效性 * :zap: 超级无敌大优化,解决延迟与卡死问题 * ✨ 更新封禁功能,增加封禁时长参数和描述,优化插件信息返回结构 * ✨ 更新zhenxun_help.py中的viewport高度,将其从453调整为10,以优化页面显示效果 * ✨ 优化插件分类逻辑,增加插件ID排序,并更新插件信息返回结构 --------- Co-authored-by: BalconyJH <balconyjh@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-07-14 22:35:29 +08:00
class CacheType(StrEnum):
"""
缓存类型
"""
PLUGINS = "GLOBAL_ALL_PLUGINS"
"""全局全部插件"""
GROUPS = "GLOBAL_ALL_GROUPS"
"""全局全部群组"""
GROUP_PLUGIN_SETTINGS = "GROUP_PLUGIN_SETTINGS"
"""插件分群配置"""
:sparkles: 引入缓存机制 (#1889) * 添加全局cache * ✨ 构建缓存,hook使用缓存 * :sparkles: 新增数据库Model方法监控 * :sparkles: 数据库添加semaphore锁 * :adhesive_bandage: 优化webapi返回数据 * :sparkles: 添加增量缓存与缓存过期 * :art: 优化检测代码结构 * :zap: 优化hook权限检测性能 * :bug: 添加新异常判断跳过权限检测 * :sparkles: 添加插件limit缓存 * :art: 代码格式优化 * :bug: 修复代码导入 * :bug: 修复刷新时检查 * :alien: Rename exception for missing database URL in initialization * :wheelchair: Update default database URL to SQLite in configuration * :wrench: Update tortoise-orm and aiocache dependencies restrictions; add optional redis and asyncpg support * :bug: 修复ban检测 * :bug: 修复所有插件关闭时缓存更新 * :bug: 尝试迁移至aiocache * :bug: 完善aiocache缓存 * :zap: 代码性能优化 * :bug: 移除获取封禁缓存时的日志记录 * :bug: 修复缓存类型声明,优化封禁用户处理逻辑 * :bug: 优化LevelUser权限更新逻辑及数据库迁移 * :sparkles: cache支持redis连接 * :rotating_light: auto fix by pre-commit hooks * :zap: :增强获取群组的安全性和准确性。同时,优化了缓存管理中的相关逻辑,确保缓存操作的一致性。 * ✨ feat(auth_limit): 将插件初始化逻辑的启动装饰器更改为优先级管理器 * 🔧 修复日志记录级别 * 🔧 更新数据库连接字符串 * 🔧 更新数据库连接字符串为内存数据库,并优化权限检查逻辑 * ✨ feat(cache): 增加缓存功能配置项,并新增数据访问层以支持缓存逻辑 * :recycle: 重构cache * ✨ feat(cache): 增强缓存管理,新增缓存字典和缓存列表功能,支持过期时间管理 * 🔧 修复Notebook类中的viewport高度设置,将其从1000调整为10 * ✨ 更新插件管理逻辑,替换缓存服务为CacheRoot并优化缓存失效处理 * ✨ 更新RegisterConfig类中的type字段 * ✨ 修复清理重复记录逻辑,确保检查记录的id属性有效性 * :zap: 超级无敌大优化,解决延迟与卡死问题 * ✨ 更新封禁功能,增加封禁时长参数和描述,优化插件信息返回结构 * ✨ 更新zhenxun_help.py中的viewport高度,将其从453调整为10,以优化页面显示效果 * ✨ 优化插件分类逻辑,增加插件ID排序,并更新插件信息返回结构 --------- Co-authored-by: BalconyJH <balconyjh@gmail.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com>
2025-07-14 22:35:29 +08:00
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"
"""创建或更新"""
2024-02-25 03:18:34 +08:00
class GoldHandle(StrEnum):
"""
金币处理
"""
BUY = "BUY"
"""购买"""
GET = "GET"
"""获取"""
2024-02-26 03:04:32 +08:00
PLUGIN = "PLUGIN"
"""插件花费"""
2024-02-25 03:18:34 +08:00
class PropHandle(StrEnum):
"""
道具处理
"""
BUY = "BUY"
"""购买"""
USE = "USE"
"""使用"""
2024-02-04 04:18:54 +08:00
class PluginType(StrEnum):
"""
插件类型
"""
2024-02-25 03:18:34 +08:00
SUPERUSER = "SUPERUSER"
2024-08-18 22:26:53 +08:00
"""超级用户"""
2024-02-25 03:18:34 +08:00
ADMIN = "ADMIN"
2024-08-18 22:26:53 +08:00
"""管理员"""
2024-02-25 03:18:34 +08:00
SUPER_AND_ADMIN = "ADMIN_SUPER"
2024-08-18 22:26:53 +08:00
"""管理员以及超级用户"""
2024-02-25 03:18:34 +08:00
NORMAL = "NORMAL"
2024-08-18 22:26:53 +08:00
"""普通插件"""
DEPENDANT = "DEPENDANT"
"""依赖插件,一般为没有主动触发命令的插件,受权限控制"""
2024-02-25 03:18:34 +08:00
HIDDEN = "HIDDEN"
2024-08-18 22:26:53 +08:00
"""隐藏插件,一般为没有主动触发命令的插件,不受权限控制,如消息统计"""
2024-08-30 23:50:45 +08:00
PARENT = "PARENT"
"""父插件,仅仅标记"""
2024-02-04 04:18:54 +08:00
class BlockType(StrEnum):
"""
禁用状态
"""
2024-02-26 03:04:32 +08:00
PRIVATE = "PRIVATE"
2024-02-04 04:18:54 +08:00
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"
2024-02-26 03:04:32 +08:00
ALL = "ALL"
2024-02-04 04:18:54 +08:00
class RequestType(StrEnum):
"""
请求类型
"""
FRIEND = "FRIEND"
"""好友"""
2024-02-04 04:18:54 +08:00
GROUP = "GROUP"
"""群组"""
2024-02-04 04:18:54 +08:00
class RequestHandleType(StrEnum):
"""
2024-05-04 13:48:12 +08:00
请求处理类型
2024-02-04 04:18:54 +08:00
"""
APPROVE = "APPROVE"
"""同意"""
REFUSED = "REFUSED"
"""拒绝"""
IGNORE = "IGNORE"
"""忽略"""
EXPIRE = "EXPIRE"
"""过期或失效"""