mirror of
https://github.com/zhenxun-org/zhenxun_bot.git
synced 2025-12-14 21:52:56 +08:00
* 添加全局cache * ✨ 构建缓存,hook使用缓存 * ✨ 新增数据库Model方法监控 * ✨ 数据库添加semaphore锁 * 🩹 优化webapi返回数据 * ✨ 添加增量缓存与缓存过期 * 🎨 优化检测代码结构 * ⚡ 优化hook权限检测性能 * 🐛 添加新异常判断跳过权限检测 * ✨ 添加插件limit缓存 * 🎨 代码格式优化 * 🐛 修复代码导入 * 🐛 修复刷新时检查 * 👽 Rename exception for missing database URL in initialization * ♿ Update default database URL to SQLite in configuration * 🔧 Update tortoise-orm and aiocache dependencies restrictions; add optional redis and asyncpg support * 🐛 修复ban检测 * 🐛 修复所有插件关闭时缓存更新 * 🐛 尝试迁移至aiocache * 🐛 完善aiocache缓存 * ⚡ 代码性能优化 * 🐛 移除获取封禁缓存时的日志记录 * 🐛 修复缓存类型声明,优化封禁用户处理逻辑 * 🐛 优化LevelUser权限更新逻辑及数据库迁移 * ✨ cache支持redis连接 * 🚨 auto fix by pre-commit hooks * ⚡ :增强获取群组的安全性和准确性。同时,优化了缓存管理中的相关逻辑,确保缓存操作的一致性。 * ✨ feat(auth_limit): 将插件初始化逻辑的启动装饰器更改为优先级管理器 * 🔧 修复日志记录级别 * 🔧 更新数据库连接字符串 * 🔧 更新数据库连接字符串为内存数据库,并优化权限检查逻辑 * ✨ feat(cache): 增加缓存功能配置项,并新增数据访问层以支持缓存逻辑 * ♻️ 重构cache * ✨ feat(cache): 增强缓存管理,新增缓存字典和缓存列表功能,支持过期时间管理 * 🔧 修复Notebook类中的viewport高度设置,将其从1000调整为10 * ✨ 更新插件管理逻辑,替换缓存服务为CacheRoot并优化缓存失效处理 * ✨ 更新RegisterConfig类中的type字段 * ✨ 修复清理重复记录逻辑,确保检查记录的id属性有效性 * ⚡ 超级无敌大优化,解决延迟与卡死问题 * ✨ 更新封禁功能,增加封禁时长参数和描述,优化插件信息返回结构 * ✨ 更新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>
148 lines
3.7 KiB
TOML
148 lines
3.7 KiB
TOML
[tool.poetry]
|
||
name = "zhenxun_bot"
|
||
version = "0.2.4"
|
||
description = "基于 Nonebot2 和 go-cqhttp 开发,以 postgresql 作为数据库,非常可爱的绪山真寻bot"
|
||
authors = ["HibiKier <775757368@qq.com>"]
|
||
license = "AGPL"
|
||
package-mode = false
|
||
|
||
[[tool.poetry.source]]
|
||
name = "aliyun"
|
||
url = "https://mirrors.aliyun.com/pypi/simple/"
|
||
priority = "primary"
|
||
|
||
[tool.poetry.dependencies]
|
||
python = "^3.10"
|
||
playwright = "^1.41.1"
|
||
nonebot-adapter-onebot = "^2.3.1"
|
||
nonebot-plugin-apscheduler = "^0.5"
|
||
tortoise-orm = "^0.20.0"
|
||
cattrs = "^23.2.3"
|
||
ruamel-yaml = "^0.18.5"
|
||
strenum = "^0.4.15"
|
||
nonebot-plugin-session = "^0.2.3"
|
||
ujson = "^5.9.0"
|
||
nb-cli = "^1.3.0"
|
||
nonebot2 = { extras = ["fastapi"], version = "^2.3.3" }
|
||
pillow = "^10.0.0"
|
||
retrying = "^1.3.4"
|
||
aiofiles = "^23.2.1"
|
||
nonebot-plugin-htmlrender = ">=0.6.0,<1.0.0"
|
||
pypinyin = "^0.51.0"
|
||
beautifulsoup4 = "^4.12.3"
|
||
lxml = "^5.1.0"
|
||
psutil = "^5.9.8"
|
||
feedparser = "^6.0.11"
|
||
imagehash = "^4.3.1"
|
||
cn2an = "^0.5.22"
|
||
dateparser = "^1.2.0"
|
||
bilireq = "0.2.3post0"
|
||
python-jose = { extras = ["cryptography"], version = "^3.3.0" }
|
||
python-multipart = "^0.0.9"
|
||
aiocache = {extras = ["redis"], version = "^0.12.3"}
|
||
py-cpuinfo = "^9.0.0"
|
||
nonebot-plugin-alconna = "^0.54.0"
|
||
tenacity = "^9.0.0"
|
||
nonebot-plugin-uninfo = ">0.4.1"
|
||
nonebot-plugin-waiter = "^0.8.1"
|
||
multidict = ">=6.0.0,!=6.3.2"
|
||
|
||
redis = { version = ">=5", optional = true }
|
||
asyncpg = { version = ">=0.20.0", optional = true }
|
||
|
||
[tool.poetry.group.dev.dependencies]
|
||
nonebug = "^0.4"
|
||
pytest-cov = "^5.0.0"
|
||
pytest-mock = "^3.6.1"
|
||
pytest-asyncio = "^0.25"
|
||
pytest-xdist = "^3.3.1"
|
||
respx = "^0.21.1"
|
||
ruff = "^0.8.0"
|
||
pre-commit = "^4.0.0"
|
||
|
||
[tool.poetry.extras]
|
||
redis = ["redis"]
|
||
postgresql = ["asyncpg"]
|
||
|
||
[tool.nonebot]
|
||
plugins = [
|
||
"nonebot_plugin_apscheduler",
|
||
"nonebot_plugin_session",
|
||
"nonebot_plugin_htmlrender",
|
||
"nonebot_plugin_alconna",
|
||
]
|
||
plugin_dirs = ["zhenxun/services", "zhenxun/builtin_plugins", "zhenxun/plugins"]
|
||
adapters = [
|
||
{ name = "OneBot V11", module_name = "nonebot.adapters.onebot.v11" },
|
||
# { name = "DoDo", module_name = "nonebot.adapters.dodo" },
|
||
# { name = "开黑啦", module_name = "nonebot.adapters.kaiheila" },
|
||
]
|
||
|
||
[tool.ruff]
|
||
line-length = 88
|
||
target-version = "py310"
|
||
|
||
[tool.ruff.format]
|
||
line-ending = "lf"
|
||
|
||
[tool.ruff.lint]
|
||
select = [
|
||
"F", # Pyflakes
|
||
"W", # pycodestyle warnings
|
||
"E", # pycodestyle errors
|
||
"I", # isort
|
||
"UP", # pyupgrade
|
||
"ASYNC", # flake8-async
|
||
"C4", # flake8-comprehensions
|
||
"T10", # flake8-debugger
|
||
"T20", # flake8-print
|
||
"PYI", # flake8-pyi
|
||
"PT", # flake8-pytest-style
|
||
"Q", # flake8-quotes
|
||
"TID", # flake8-tidy-imports
|
||
"RUF", # Ruff-specific rules
|
||
]
|
||
ignore = [
|
||
"E402", # module-import-not-at-top-of-file
|
||
"UP037", # quoted-annotation
|
||
"RUF001", # ambiguous-unicode-character-string
|
||
"RUF002", # ambiguous-unicode-character-docstring
|
||
"RUF003", # ambiguous-unicode-character-comment
|
||
"TID252", # relative-imports
|
||
]
|
||
|
||
[tool.ruff.lint.isort]
|
||
force-sort-within-sections = true
|
||
known-first-party = ["zhenxun", "tests/*"]
|
||
extra-standard-library = ["typing_extensions"]
|
||
|
||
[tool.ruff.lint.flake8-pytest-style]
|
||
fixture-parentheses = false
|
||
mark-parentheses = false
|
||
|
||
[tool.ruff.lint.pyupgrade]
|
||
keep-runtime-typing = true
|
||
|
||
[tool.pyright]
|
||
pythonVersion = "3.10"
|
||
pythonPlatform = "All"
|
||
defineConstant = { PYDANTIC_V2 = true }
|
||
executionEnvironments = [
|
||
{ root = "./tests", extraPaths = [
|
||
"./",
|
||
] },
|
||
{ root = "./" },
|
||
]
|
||
|
||
typeCheckingMode = "standard"
|
||
reportShadowedImports = false
|
||
disableBytesTypePromotions = true
|
||
|
||
[tool.pytest.ini_options]
|
||
asyncio_mode = "auto"
|
||
asyncio_default_fixture_loop_scope = "session"
|
||
|
||
[build-system]
|
||
requires = ["poetry-core>=1.0.0"]
|
||
build-backend = "poetry.core.masonry.api"
|