From bc5a9c4fcca5d5acacd5c7ce77b7657432907645 Mon Sep 17 00:00:00 2001
From: BalconyJH <73932916+BalconyJH@users.noreply.github.com>
Date: Tue, 10 Dec 2024 19:49:11 +0800
Subject: [PATCH] =?UTF-8?q?Develop:=20=E5=AE=8C=E5=85=A8=E4=BD=BF=E7=94=A8?=
=?UTF-8?q?=20ruff=20=E6=9B=BF=E4=BB=A3=20isort=20=E4=B8=8E=20black=20(#17?=
=?UTF-8?q?57)?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
* :rotating_light: 完全使用 ruff 替代 isort 与 black
* :rotating_light: ruff lint&format
---
.pre-commit-config.yaml | 33 +++-------
pyproject.toml | 33 +++++-----
scripts/bot_check.py | 6 +-
.../auto_update/test_check_update.py | 38 ++++++------
tests/builtin_plugins/check/test_check.py | 16 ++---
.../plugin_store/test_add_plugin.py | 18 +++---
.../plugin_store/test_plugin_store.py | 14 ++---
.../plugin_store/test_remove_plugin.py | 16 ++---
.../plugin_store/test_search_plugin.py | 16 ++---
.../plugin_store/test_update_all_plugin.py | 18 +++---
.../plugin_store/test_update_plugin.py | 16 ++---
tests/conftest.py | 18 +++---
tests/utils.py | 2 +-
zhenxun/builtin_plugins/__init__.py | 20 +++---
zhenxun/builtin_plugins/about.py | 8 +--
.../admin/admin_help/__init__.py | 8 +--
.../admin/admin_help/config.py | 4 +-
.../admin/admin_help/html_help.py | 4 +-
.../admin/admin_help/normal_help.py | 10 +--
.../builtin_plugins/admin/admin_help/utils.py | 2 +-
zhenxun/builtin_plugins/admin/admin_watch.py | 8 +--
zhenxun/builtin_plugins/admin/ban/__init__.py | 18 +++---
.../builtin_plugins/admin/ban/_data_source.py | 2 +-
.../admin/group_member_update/__init__.py | 14 ++---
.../admin/group_member_update/_data_source.py | 6 +-
zhenxun/builtin_plugins/admin/group_update.py | 2 +-
.../admin/plugin_switch/__init__.py | 12 ++--
.../admin/plugin_switch/_data_source.py | 20 +++---
.../builtin_plugins/admin/welcome_message.py | 12 ++--
.../builtin_plugins/auto_update/__init__.py | 6 +-
.../auto_update/_data_source.py | 26 ++++----
zhenxun/builtin_plugins/catchphrase.py | 2 +-
.../builtin_plugins/chat_history/__init__.py | 3 +-
.../chat_history/chat_message.py | 2 +-
.../chat_history/chat_message_handle.py | 7 ++-
zhenxun/builtin_plugins/check/data_source.py | 10 +--
zhenxun/builtin_plugins/help/__init__.py | 16 ++---
zhenxun/builtin_plugins/help/_data_source.py | 6 +-
zhenxun/builtin_plugins/help/_utils.py | 4 +-
zhenxun/builtin_plugins/help/html_help.py | 6 +-
zhenxun/builtin_plugins/help/normal_help.py | 6 +-
zhenxun/builtin_plugins/help/zhenxun_help.py | 10 +--
zhenxun/builtin_plugins/help_help.py | 12 ++--
.../builtin_plugins/hooks/_auth_checker.py | 26 ++++----
zhenxun/builtin_plugins/hooks/auth_hook.py | 4 +-
zhenxun/builtin_plugins/hooks/ban_hook.py | 16 ++---
zhenxun/builtin_plugins/hooks/chkdsk_hook.py | 14 ++---
zhenxun/builtin_plugins/info/__init__.py | 8 +--
zhenxun/builtin_plugins/info/my_info.py | 20 +++---
zhenxun/builtin_plugins/init/__init__.py | 2 +-
zhenxun/builtin_plugins/init/init_config.py | 10 +--
zhenxun/builtin_plugins/init/init_plugin.py | 18 +++---
zhenxun/builtin_plugins/init/manager.py | 4 +-
zhenxun/builtin_plugins/nickname.py | 20 +++---
.../platform/qq/group_handle/__init__.py | 20 +++---
.../platform/qq/group_handle/data_source.py | 31 +++++-----
.../platform/qq_api/ug_watch.py | 6 +-
.../builtin_plugins/plugin_store/__init__.py | 11 ++--
.../plugin_store/data_source.py | 19 +++---
zhenxun/builtin_plugins/record_request.py | 24 ++++----
zhenxun/builtin_plugins/restart/__init__.py | 12 ++--
.../builtin_plugins/scheduler/auto_backup.py | 4 +-
.../builtin_plugins/scheduler/chat_check.py | 8 +--
zhenxun/builtin_plugins/scheduler/morning.py | 8 +--
zhenxun/builtin_plugins/scripts.py | 8 +--
zhenxun/builtin_plugins/shop/__init__.py | 28 ++++-----
zhenxun/builtin_plugins/shop/_data_source.py | 24 ++++----
zhenxun/builtin_plugins/sign_in/__init__.py | 17 +++---
.../builtin_plugins/sign_in/_data_source.py | 18 +++---
zhenxun/builtin_plugins/sign_in/utils.py | 20 +++---
.../builtin_plugins/statistics/__init__.py | 2 +-
.../statistics/_data_source.py | 12 ++--
.../statistics/statistics_hook.py | 16 ++---
.../superuser/bot_manage/__init__.py | 15 +----
.../superuser/broadcast/_data_source.py | 4 +-
.../builtin_plugins/superuser/clear_data.py | 10 ++-
zhenxun/builtin_plugins/superuser/exec_sql.py | 13 ++--
.../builtin_plugins/superuser/fg_manage.py | 5 +-
.../builtin_plugins/superuser/group_manage.py | 4 +-
.../builtin_plugins/superuser/set_admin.py | 12 ++--
.../superuser/super_help/__init__.py | 8 +--
.../superuser/super_help/config.py | 4 +-
.../superuser/super_help/normal_help.py | 10 +--
.../superuser/super_help/utils.py | 2 +-
.../superuser/super_help/zhenxun_help.py | 4 +-
zhenxun/builtin_plugins/web_ui/__init__.py | 24 ++++----
.../web_ui/api/logs/log_manager.py | 2 +-
.../builtin_plugins/web_ui/api/logs/logs.py | 4 +-
.../web_ui/api/tabs/__init__.py | 10 +--
.../web_ui/api/tabs/dashboard/__init__.py | 16 ++---
.../web_ui/api/tabs/dashboard/data_source.py | 6 +-
.../web_ui/api/tabs/database/__init__.py | 16 ++---
.../web_ui/api/tabs/main/__init__.py | 34 +++++------
.../web_ui/api/tabs/main/data_source.py | 2 +-
.../web_ui/api/tabs/main/model.py | 2 +-
.../web_ui/api/tabs/manage/__init__.py | 50 +++++++--------
.../web_ui/api/tabs/manage/chat.py | 12 ++--
.../web_ui/api/tabs/plugin_manage/__init__.py | 14 ++---
.../web_ui/api/tabs/plugin_manage/store.py | 6 +-
.../web_ui/api/tabs/system/__init__.py | 8 +--
.../web_ui/api/tabs/system/model.py | 9 +--
.../builtin_plugins/web_ui/auth/__init__.py | 16 ++---
zhenxun/builtin_plugins/web_ui/config.py | 2 +-
.../builtin_plugins/web_ui/public/__init__.py | 4 +-
.../web_ui/public/data_source.py | 7 +--
zhenxun/builtin_plugins/web_ui/utils.py | 14 ++---
zhenxun/builtin_plugins/withdraw.py | 10 +--
zhenxun/configs/path_config.py | 6 --
zhenxun/configs/utils/__init__.py | 12 ++--
zhenxun/models/bag_user.py | 13 ++--
zhenxun/models/ban_console.py | 2 +-
zhenxun/models/chat_history.py | 26 +++++---
zhenxun/models/fg_request.py | 8 +--
zhenxun/models/friend_user.py | 8 +--
zhenxun/models/goods_info.py | 8 +--
zhenxun/models/group_member_info.py | 23 ++++---
zhenxun/models/level_user.py | 12 ++--
zhenxun/models/plugin_info.py | 2 +-
zhenxun/models/sign_group_user.py | 15 ++---
zhenxun/models/sign_log.py | 4 --
zhenxun/models/sign_user.py | 4 +-
zhenxun/models/user_console.py | 5 +-
zhenxun/models/user_gold_log.py | 1 -
zhenxun/models/user_props.py | 7 +--
zhenxun/models/user_props_log.py | 5 --
zhenxun/services/db_context.py | 2 +-
zhenxun/services/log.py | 4 +-
zhenxun/services/plugin_init.py | 2 +-
zhenxun/utils/_build_image.py | 10 +--
zhenxun/utils/_build_mat.py | 9 +--
zhenxun/utils/_image_template.py | 6 +-
zhenxun/utils/common_utils.py | 6 +-
zhenxun/utils/decorator/shop.py | 6 +-
zhenxun/utils/depends/__init__.py | 6 +-
zhenxun/utils/echart_utils/__init__.py | 2 +-
zhenxun/utils/github_utils/__init__.py | 8 +--
zhenxun/utils/github_utils/func.py | 3 +-
zhenxun/utils/github_utils/models.py | 7 ++-
zhenxun/utils/http_utils.py | 20 +++---
zhenxun/utils/image_utils.py | 21 +++----
zhenxun/utils/message.py | 12 ++--
zhenxun/utils/platform.py | 20 +++---
zhenxun/utils/rules.py | 4 +-
zhenxun/utils/typing.py | 2 -
zhenxun/utils/user_agent.py | 61 +++++++++++++------
zhenxun/utils/utils.py | 10 +--
zhenxun/utils/withdraw_manage.py | 5 +-
147 files changed, 823 insertions(+), 863 deletions(-)
diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml
index c5280f74..7cdafdb1 100644
--- a/.pre-commit-config.yaml
+++ b/.pre-commit-config.yaml
@@ -1,33 +1,16 @@
-default_install_hook_types: [pre-commit, prepare-commit-msg]
+default_install_hook_types: [pre-commit]
ci:
autofix_commit_msg: ":rotating_light: auto fix by pre-commit hooks"
autofix_prs: true
- autoupdate_branch: dev
- autoupdate_schedule: weekly
+ autoupdate_branch: master
+ autoupdate_schedule: monthly
autoupdate_commit_msg: ":arrow_up: auto update by pre-commit hooks"
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
- rev: v0.5.6
+ rev: v0.8.1
hooks:
- id: ruff
- args: [--fix, --exit-non-zero-on-fix]
- stages: [commit]
-
- - repo: https://github.com/pycqa/isort
- rev: 5.13.2
- hooks:
- - id: isort
- stages: [commit]
-
- - repo: https://github.com/psf/black
- rev: 24.8.0
- hooks:
- - id: black
- stages: [commit]
-
- - repo: https://github.com/pre-commit/mirrors-prettier
- rev: v4.0.0-alpha.8
- hooks:
- - id: prettier
- types_or: [javascript, jsx, ts, tsx, markdown, yaml, json]
- stages: [commit]
\ No newline at end of file
+ args: [--fix]
+ stages: [pre-commit]
+ - id: ruff-format
+ stages: [pre-commit]
\ No newline at end of file
diff --git a/pyproject.toml b/pyproject.toml
index 96905137..39096e48 100644
--- a/pyproject.toml
+++ b/pyproject.toml
@@ -40,7 +40,6 @@ psutil = "^5.9.8"
feedparser = "^6.0.11"
opencv-python = "^4.9.0.80"
imagehash = "^4.3.1"
-black = "^24.4.2"
cn2an = "^0.5.22"
aiohttp = "^3.9.5"
dateparser = "^1.2.0"
@@ -59,6 +58,9 @@ pytest-mock = "^3.6.1"
pytest-asyncio = "^0.23.5"
pytest-xdist = "^3.3.1"
respx = "^0.21.1"
+ruff = "^0.8.0"
+pre-commit = "^4.0.0"
+
[tool.nonebot]
plugins = [
@@ -75,31 +77,19 @@ adapters = [
{ name = "开黑啦", module_name = "nonebot.adapters.kaiheila" },
]
-[tool.black]
-line-length = 88
-target-version = ["py39", "py310", "py311", "py312"]
-include = '\.pyi?$'
-extend-exclude = '''
-'''
-
-[tool.isort]
-profile = "black"
-line_length = 88
-length_sort = true
-skip_gitignore = true
-force_sort_within_sections = true
-src_paths = ["zhenxun", "tests"]
-extra_standard_library = ["typing_extensions"]
-
[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
@@ -108,6 +98,7 @@ select = [
"PYI", # flake8-pyi
"PT", # flake8-pytest-style
"Q", # flake8-quotes
+ "TID", # flake8-tidy-imports
"RUF", # Ruff-specific rules
]
ignore = [
@@ -118,10 +109,18 @@ ignore = [
"RUF003", # ambiguous-unicode-character-comment
]
+[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"
diff --git a/scripts/bot_check.py b/scripts/bot_check.py
index 7da685b9..3e6c2d2a 100644
--- a/scripts/bot_check.py
+++ b/scripts/bot_check.py
@@ -1,18 +1,18 @@
+import asyncio
import os
import re
-import asyncio
import nonebot
-from nonebot.log import logger
# from nonebot.adapters.discord import Adapter as DiscordAdapter
from nonebot.adapters.dodo import Adapter as DoDoAdapter
from nonebot.adapters.kaiheila import Adapter as KaiheilaAdapter
from nonebot.adapters.onebot.v11 import Adapter as OneBotV11Adapter
+from nonebot.log import logger
nonebot.init()
-from zhenxun.services.db_context import init, disconnect
+from zhenxun.services.db_context import disconnect, init
driver = nonebot.get_driver()
diff --git a/tests/builtin_plugins/auto_update/test_check_update.py b/tests/builtin_plugins/auto_update/test_check_update.py
index 4ef910b7..bc2b06ce 100644
--- a/tests/builtin_plugins/auto_update/test_check_update.py
+++ b/tests/builtin_plugins/auto_update/test_check_update.py
@@ -1,20 +1,20 @@
+from collections.abc import Callable
import io
import os
-import tarfile
-import zipfile
-from typing import cast
from pathlib import Path
-from collections.abc import Callable
+import tarfile
+from typing import cast
+import zipfile
-from nonebug import App
-from respx import MockRouter
-from pytest_mock import MockerFixture
from nonebot.adapters.onebot.v11 import Bot
from nonebot.adapters.onebot.v11.message import Message
+from nonebug import App
+from pytest_mock import MockerFixture
+from respx import MockRouter
-from tests.config import BotId, UserId, GroupId, MessageId
-from tests.utils import get_response_json as _get_response_json
+from tests.config import BotId, GroupId, MessageId, UserId
from tests.utils import _v11_group_message_event, _v11_private_message_send
+from tests.utils import get_response_json as _get_response_json
def get_response_json(file: str) -> dict:
@@ -62,10 +62,10 @@ def init_mocked_api(mocked_api: MockRouter) -> None:
zip_bytes = io.BytesIO()
from zhenxun.builtin_plugins.auto_update.config import (
- REPLACE_FOLDERS,
- REQ_TXT_FILE_STRING,
PYPROJECT_FILE_STRING,
PYPROJECT_LOCK_FILE_STRING,
+ REPLACE_FOLDERS,
+ REQ_TXT_FILE_STRING,
)
# 指定要添加到压缩文件中的文件路径列表
@@ -196,10 +196,10 @@ def add_directory_to_tar(tarinfo, tar):
def init_mocker_path(mocker: MockerFixture, tmp_path: Path):
from zhenxun.builtin_plugins.auto_update.config import (
- REQ_TXT_FILE_STRING,
- VERSION_FILE_STRING,
PYPROJECT_FILE_STRING,
PYPROJECT_LOCK_FILE_STRING,
+ REQ_TXT_FILE_STRING,
+ VERSION_FILE_STRING,
)
mocker.patch(
@@ -268,10 +268,10 @@ async def test_check_update_release(
"""
from zhenxun.builtin_plugins.auto_update import _matcher
from zhenxun.builtin_plugins.auto_update.config import (
- REPLACE_FOLDERS,
- REQ_TXT_FILE_STRING,
PYPROJECT_FILE_STRING,
PYPROJECT_LOCK_FILE_STRING,
+ REPLACE_FOLDERS,
+ REQ_TXT_FILE_STRING,
)
init_mocked_api(mocked_api=mocked_api)
@@ -359,10 +359,10 @@ async def test_check_update_dev(
"""
from zhenxun.builtin_plugins.auto_update import _matcher
from zhenxun.builtin_plugins.auto_update.config import (
- REPLACE_FOLDERS,
- REQ_TXT_FILE_STRING,
PYPROJECT_FILE_STRING,
PYPROJECT_LOCK_FILE_STRING,
+ REPLACE_FOLDERS,
+ REQ_TXT_FILE_STRING,
)
init_mocked_api(mocked_api=mocked_api)
@@ -450,10 +450,10 @@ async def test_check_update_main(
"""
from zhenxun.builtin_plugins.auto_update import _matcher
from zhenxun.builtin_plugins.auto_update.config import (
- REPLACE_FOLDERS,
- REQ_TXT_FILE_STRING,
PYPROJECT_FILE_STRING,
PYPROJECT_LOCK_FILE_STRING,
+ REPLACE_FOLDERS,
+ REQ_TXT_FILE_STRING,
)
init_mocked_api(mocked_api=mocked_api)
diff --git a/tests/builtin_plugins/check/test_check.py b/tests/builtin_plugins/check/test_check.py
index 5dbd3f6c..41180b68 100644
--- a/tests/builtin_plugins/check/test_check.py
+++ b/tests/builtin_plugins/check/test_check.py
@@ -1,17 +1,17 @@
+from collections.abc import Callable
+from pathlib import Path
import platform
from typing import cast
-from pathlib import Path
-from collections.abc import Callable
import nonebot
-from nonebug import App
-from respx import MockRouter
-from pytest_mock import MockerFixture
from nonebot.adapters.onebot.v11 import Bot
from nonebot.adapters.onebot.v11.event import GroupMessageEvent
+from nonebug import App
+from pytest_mock import MockerFixture
+from respx import MockRouter
+from tests.config import BotId, GroupId, MessageId, UserId
from tests.utils import _v11_group_message_event
-from tests.config import BotId, UserId, GroupId, MessageId
platform_uname = platform.uname_result(
system="Linux",
@@ -67,9 +67,9 @@ async def test_check(
"""
测试自检
"""
- from zhenxun.configs.config import BotConfig
from zhenxun.builtin_plugins.check import _matcher
from zhenxun.builtin_plugins.check.data_source import __get_version
+ from zhenxun.configs.config import BotConfig
(
mock_psutil,
@@ -137,9 +137,9 @@ async def test_check_arm(
"""
测试自检(arm)
"""
- from zhenxun.configs.config import BotConfig
from zhenxun.builtin_plugins.check import _matcher
from zhenxun.builtin_plugins.check.data_source import __get_version
+ from zhenxun.configs.config import BotConfig
platform_uname_arm = platform.uname_result(
system="Linux",
diff --git a/tests/builtin_plugins/plugin_store/test_add_plugin.py b/tests/builtin_plugins/plugin_store/test_add_plugin.py
index f2d99bd3..9f2d6144 100644
--- a/tests/builtin_plugins/plugin_store/test_add_plugin.py
+++ b/tests/builtin_plugins/plugin_store/test_add_plugin.py
@@ -1,18 +1,18 @@
-from typing import cast
-from pathlib import Path
from collections.abc import Callable
+from pathlib import Path
+from typing import cast
-import pytest
-from nonebug import App
-from respx import MockRouter
-from pytest_mock import MockerFixture
from nonebot.adapters.onebot.v11 import Bot
-from nonebot.adapters.onebot.v11.message import Message
from nonebot.adapters.onebot.v11.event import GroupMessageEvent
+from nonebot.adapters.onebot.v11.message import Message
+from nonebug import App
+import pytest
+from pytest_mock import MockerFixture
+from respx import MockRouter
-from tests.utils import _v11_group_message_event
-from tests.config import BotId, UserId, GroupId, MessageId
from tests.builtin_plugins.plugin_store.utils import init_mocked_api
+from tests.config import BotId, GroupId, MessageId, UserId
+from tests.utils import _v11_group_message_event
@pytest.mark.parametrize("package_api", ["jsd", "gh"])
diff --git a/tests/builtin_plugins/plugin_store/test_plugin_store.py b/tests/builtin_plugins/plugin_store/test_plugin_store.py
index 7a308354..90ce3f60 100644
--- a/tests/builtin_plugins/plugin_store/test_plugin_store.py
+++ b/tests/builtin_plugins/plugin_store/test_plugin_store.py
@@ -1,16 +1,16 @@
-from typing import cast
-from pathlib import Path
from collections.abc import Callable
+from pathlib import Path
+from typing import cast
-from nonebug import App
-from respx import MockRouter
-from pytest_mock import MockerFixture
from nonebot.adapters.onebot.v11 import Bot, Message
from nonebot.adapters.onebot.v11.event import GroupMessageEvent
+from nonebug import App
+from pytest_mock import MockerFixture
+from respx import MockRouter
-from tests.utils import _v11_group_message_event
-from tests.config import BotId, UserId, GroupId, MessageId
from tests.builtin_plugins.plugin_store.utils import init_mocked_api
+from tests.config import BotId, GroupId, MessageId, UserId
+from tests.utils import _v11_group_message_event
async def test_plugin_store(
diff --git a/tests/builtin_plugins/plugin_store/test_remove_plugin.py b/tests/builtin_plugins/plugin_store/test_remove_plugin.py
index 5ebd4584..4d5e3ab1 100644
--- a/tests/builtin_plugins/plugin_store/test_remove_plugin.py
+++ b/tests/builtin_plugins/plugin_store/test_remove_plugin.py
@@ -1,19 +1,19 @@
# ruff: noqa: ASYNC230
-from typing import cast
-from pathlib import Path
from collections.abc import Callable
+from pathlib import Path
+from typing import cast
-from nonebug import App
-from respx import MockRouter
-from pytest_mock import MockerFixture
from nonebot.adapters.onebot.v11 import Bot
-from nonebot.adapters.onebot.v11.message import Message
from nonebot.adapters.onebot.v11.event import GroupMessageEvent
+from nonebot.adapters.onebot.v11.message import Message
+from nonebug import App
+from pytest_mock import MockerFixture
+from respx import MockRouter
+from tests.builtin_plugins.plugin_store.utils import get_content_bytes, init_mocked_api
+from tests.config import BotId, GroupId, MessageId, UserId
from tests.utils import _v11_group_message_event
-from tests.config import BotId, UserId, GroupId, MessageId
-from tests.builtin_plugins.plugin_store.utils import init_mocked_api, get_content_bytes
async def test_remove_plugin(
diff --git a/tests/builtin_plugins/plugin_store/test_search_plugin.py b/tests/builtin_plugins/plugin_store/test_search_plugin.py
index c97f71c0..8bc6876e 100644
--- a/tests/builtin_plugins/plugin_store/test_search_plugin.py
+++ b/tests/builtin_plugins/plugin_store/test_search_plugin.py
@@ -1,17 +1,17 @@
-from typing import cast
-from pathlib import Path
from collections.abc import Callable
+from pathlib import Path
+from typing import cast
-from nonebug import App
-from respx import MockRouter
-from pytest_mock import MockerFixture
from nonebot.adapters.onebot.v11 import Bot
-from nonebot.adapters.onebot.v11.message import Message
from nonebot.adapters.onebot.v11.event import GroupMessageEvent
+from nonebot.adapters.onebot.v11.message import Message
+from nonebug import App
+from pytest_mock import MockerFixture
+from respx import MockRouter
-from tests.utils import _v11_group_message_event
-from tests.config import BotId, UserId, GroupId, MessageId
from tests.builtin_plugins.plugin_store.utils import init_mocked_api
+from tests.config import BotId, GroupId, MessageId, UserId
+from tests.utils import _v11_group_message_event
async def test_search_plugin_name(
diff --git a/tests/builtin_plugins/plugin_store/test_update_all_plugin.py b/tests/builtin_plugins/plugin_store/test_update_all_plugin.py
index d9205765..640391c8 100644
--- a/tests/builtin_plugins/plugin_store/test_update_all_plugin.py
+++ b/tests/builtin_plugins/plugin_store/test_update_all_plugin.py
@@ -1,17 +1,17 @@
-from typing import cast
-from pathlib import Path
from collections.abc import Callable
+from pathlib import Path
+from typing import cast
-from nonebug import App
-from respx import MockRouter
-from pytest_mock import MockerFixture
from nonebot.adapters.onebot.v11 import Bot
-from nonebot.adapters.onebot.v11.message import Message
from nonebot.adapters.onebot.v11.event import GroupMessageEvent
+from nonebot.adapters.onebot.v11.message import Message
+from nonebug import App
+from pytest_mock import MockerFixture
+from respx import MockRouter
-from tests.utils import _v11_group_message_event
-from tests.config import BotId, UserId, GroupId, MessageId
from tests.builtin_plugins.plugin_store.utils import init_mocked_api
+from tests.config import BotId, GroupId, MessageId, UserId
+from tests.utils import _v11_group_message_event
async def test_update_all_plugin_basic_need_update(
@@ -36,7 +36,6 @@ async def test_update_all_plugin_basic_need_update(
return_value=[("search_image", "0.0")],
)
-
async with app.test_matcher(_matcher) as ctx:
bot = create_bot(ctx)
bot: Bot = cast(Bot, bot)
@@ -90,7 +89,6 @@ async def test_update_all_plugin_basic_is_new(
return_value=[("search_image", "0.1")],
)
-
async with app.test_matcher(_matcher) as ctx:
bot = create_bot(ctx)
bot: Bot = cast(Bot, bot)
diff --git a/tests/builtin_plugins/plugin_store/test_update_plugin.py b/tests/builtin_plugins/plugin_store/test_update_plugin.py
index 7a73bb16..59fb0bc3 100644
--- a/tests/builtin_plugins/plugin_store/test_update_plugin.py
+++ b/tests/builtin_plugins/plugin_store/test_update_plugin.py
@@ -1,17 +1,17 @@
-from typing import cast
-from pathlib import Path
from collections.abc import Callable
+from pathlib import Path
+from typing import cast
-from nonebug import App
-from respx import MockRouter
-from pytest_mock import MockerFixture
from nonebot.adapters.onebot.v11 import Bot
-from nonebot.adapters.onebot.v11.message import Message
from nonebot.adapters.onebot.v11.event import GroupMessageEvent
+from nonebot.adapters.onebot.v11.message import Message
+from nonebug import App
+from pytest_mock import MockerFixture
+from respx import MockRouter
-from tests.utils import _v11_group_message_event
-from tests.config import BotId, UserId, GroupId, MessageId
from tests.builtin_plugins.plugin_store.utils import init_mocked_api
+from tests.config import BotId, GroupId, MessageId, UserId
+from tests.utils import _v11_group_message_event
async def test_update_plugin_basic_need_update(
diff --git a/tests/conftest.py b/tests/conftest.py
index 038f51d3..a1b7bf2f 100644
--- a/tests/conftest.py
+++ b/tests/conftest.py
@@ -1,15 +1,15 @@
-import os
-import json
-from pathlib import Path
from collections.abc import Callable
+import json
+import os
+from pathlib import Path
-import pytest
import nonebot
-from nonebug.app import App
-from respx import MockRouter
-from pytest_mock import MockerFixture
from nonebug import NONEBOT_INIT_KWARGS
+from nonebug.app import App
from nonebug.mixin.process import MatcherContext
+import pytest
+from pytest_mock import MockerFixture
+from respx import MockRouter
from tests.config import BotId, UserId
@@ -61,7 +61,7 @@ def _init_bot(nonebug_init: None):
@pytest.fixture
async def app(app: App, tmp_path: Path, mocker: MockerFixture):
- from zhenxun.services.db_context import init, disconnect
+ from zhenxun.services.db_context import disconnect, init
driver = nonebot.get_driver()
# 清除连接钩子,现在 NoneBug 会自动触发 on_bot_connect
@@ -89,7 +89,7 @@ async def app(app: App, tmp_path: Path, mocker: MockerFixture):
@pytest.fixture
def create_bot() -> Callable:
- from nonebot.adapters.onebot.v11 import Bot, Adapter
+ from nonebot.adapters.onebot.v11 import Adapter, Bot
def _create_bot(context: MatcherContext) -> Bot:
return context.create_bot(
diff --git a/tests/utils.py b/tests/utils.py
index 5e554a8e..f05aa8e9 100644
--- a/tests/utils.py
+++ b/tests/utils.py
@@ -1,8 +1,8 @@
import json
from pathlib import Path
+from nonebot.adapters.onebot.v11 import GroupMessageEvent, Message, MessageSegment
from nonebot.adapters.onebot.v11.event import Sender
-from nonebot.adapters.onebot.v11 import Message, MessageSegment, GroupMessageEvent
def get_response_json(base_path: Path, file: str) -> dict:
diff --git a/zhenxun/builtin_plugins/__init__.py b/zhenxun/builtin_plugins/__init__.py
index 6655a028..bead7254 100644
--- a/zhenxun/builtin_plugins/__init__.py
+++ b/zhenxun/builtin_plugins/__init__.py
@@ -1,13 +1,13 @@
-import uuid
from datetime import datetime
+import uuid
import nonebot
-import ujson as json
from nonebot import require
-from tortoise import Tortoise
from nonebot.adapters import Bot
from nonebot.drivers import Driver
+from tortoise import Tortoise
from tortoise.exceptions import OperationalError
+import ujson as json
require("nonebot_plugin_apscheduler")
require("nonebot_plugin_alconna")
@@ -16,15 +16,15 @@ require("nonebot_plugin_userinfo")
require("nonebot_plugin_htmlrender")
# require("nonebot_plugin_uninfo")
-from zhenxun.services.log import logger
-from zhenxun.models.sign_user import SignUser
-from zhenxun.models.goods_info import GoodsInfo
-from zhenxun.utils.platform import PlatformUtils
-from zhenxun.models.bot_console import BotConsole
-from zhenxun.models.user_console import UserConsole
-from zhenxun.utils.decorator.shop import shop_register
from zhenxun.models.bot_connect_log import BotConnectLog
+from zhenxun.models.bot_console import BotConsole
+from zhenxun.models.goods_info import GoodsInfo
from zhenxun.models.group_member_info import GroupInfoUser
+from zhenxun.models.sign_user import SignUser
+from zhenxun.models.user_console import UserConsole
+from zhenxun.services.log import logger
+from zhenxun.utils.decorator.shop import shop_register
+from zhenxun.utils.platform import PlatformUtils
driver: Driver = nonebot.get_driver()
diff --git a/zhenxun/builtin_plugins/about.py b/zhenxun/builtin_plugins/about.py
index 4094c8a4..008ea670 100644
--- a/zhenxun/builtin_plugins/about.py
+++ b/zhenxun/builtin_plugins/about.py
@@ -1,16 +1,16 @@
from pathlib import Path
import aiofiles
-from nonebot.rule import to_me
-from nonebot_plugin_uninfo import Uninfo
from nonebot.plugin import PluginMetadata
+from nonebot.rule import to_me
from nonebot_plugin_alconna import Alconna, Arparma, on_alconna
+from nonebot_plugin_uninfo import Uninfo
+from zhenxun.configs.path_config import DATA_PATH
+from zhenxun.configs.utils import PluginExtraData
from zhenxun.services.log import logger
from zhenxun.utils.message import MessageUtils
from zhenxun.utils.platform import PlatformUtils
-from zhenxun.configs.path_config import DATA_PATH
-from zhenxun.configs.utils import PluginExtraData
__plugin_meta__ = PluginMetadata(
name="关于",
diff --git a/zhenxun/builtin_plugins/admin/admin_help/__init__.py b/zhenxun/builtin_plugins/admin/admin_help/__init__.py
index 7a8d501a..ef1d2987 100644
--- a/zhenxun/builtin_plugins/admin/admin_help/__init__.py
+++ b/zhenxun/builtin_plugins/admin/admin_help/__init__.py
@@ -1,18 +1,18 @@
from nonebot.plugin import PluginMetadata
-from nonebot_plugin_session import EventSession
from nonebot_plugin_alconna import Alconna, Arparma, on_alconna
+from nonebot_plugin_session import EventSession
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig
+from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.exception import EmptyError
from zhenxun.utils.message import MessageUtils
from zhenxun.utils.rules import admin_check, ensure_group
-from zhenxun.configs.utils import RegisterConfig, PluginExtraData
-from .normal_help import build_help
from .config import ADMIN_HELP_IMAGE
from .html_help import build_html_help
+from .normal_help import build_help
__plugin_meta__ = PluginMetadata(
name="群组管理员帮助",
diff --git a/zhenxun/builtin_plugins/admin/admin_help/config.py b/zhenxun/builtin_plugins/admin/admin_help/config.py
index dbc62efc..86a12daa 100644
--- a/zhenxun/builtin_plugins/admin/admin_help/config.py
+++ b/zhenxun/builtin_plugins/admin/admin_help/config.py
@@ -1,8 +1,8 @@
-from pydantic import BaseModel
from nonebot.plugin import PluginMetadata
+from pydantic import BaseModel
-from zhenxun.models.plugin_info import PluginInfo
from zhenxun.configs.path_config import IMAGE_PATH
+from zhenxun.models.plugin_info import PluginInfo
ADMIN_HELP_IMAGE = IMAGE_PATH / "ADMIN_HELP.png"
if ADMIN_HELP_IMAGE.exists():
diff --git a/zhenxun/builtin_plugins/admin/admin_help/html_help.py b/zhenxun/builtin_plugins/admin/admin_help/html_help.py
index 653dcff6..69699bbb 100644
--- a/zhenxun/builtin_plugins/admin/admin_help/html_help.py
+++ b/zhenxun/builtin_plugins/admin/admin_help/html_help.py
@@ -1,10 +1,10 @@
from nonebot_plugin_htmlrender import template_to_pic
+from zhenxun.builtin_plugins.admin.admin_help.config import ADMIN_HELP_IMAGE
from zhenxun.configs.config import BotConfig
+from zhenxun.configs.path_config import TEMPLATE_PATH
from zhenxun.models.task_info import TaskInfo
from zhenxun.utils._build_image import BuildImage
-from zhenxun.configs.path_config import TEMPLATE_PATH
-from zhenxun.builtin_plugins.admin.admin_help.config import ADMIN_HELP_IMAGE
from .utils import get_plugins
diff --git a/zhenxun/builtin_plugins/admin/admin_help/normal_help.py b/zhenxun/builtin_plugins/admin/admin_help/normal_help.py
index 5a9bb923..a677ba1b 100644
--- a/zhenxun/builtin_plugins/admin/admin_help/normal_help.py
+++ b/zhenxun/builtin_plugins/admin/admin_help/normal_help.py
@@ -1,14 +1,14 @@
-from PIL.ImageFont import FreeTypeFont
from nonebot.plugin import PluginMetadata
+from PIL.ImageFont import FreeTypeFont
-from zhenxun.services.log import logger
-from zhenxun.models.task_info import TaskInfo
from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.models.task_info import TaskInfo
+from zhenxun.services.log import logger
from zhenxun.utils._build_image import BuildImage
-from zhenxun.utils.image_utils import text2image, group_image, build_sort_image
+from zhenxun.utils.image_utils import build_sort_image, group_image, text2image
-from .utils import get_plugins
from .config import ADMIN_HELP_IMAGE
+from .utils import get_plugins
async def build_usage_des_image(
diff --git a/zhenxun/builtin_plugins/admin/admin_help/utils.py b/zhenxun/builtin_plugins/admin/admin_help/utils.py
index 8efbf673..2385238e 100644
--- a/zhenxun/builtin_plugins/admin/admin_help/utils.py
+++ b/zhenxun/builtin_plugins/admin/admin_help/utils.py
@@ -1,8 +1,8 @@
import nonebot
+from zhenxun.models.plugin_info import PluginInfo
from zhenxun.utils.enum import PluginType
from zhenxun.utils.exception import EmptyError
-from zhenxun.models.plugin_info import PluginInfo
from .config import PluginData
diff --git a/zhenxun/builtin_plugins/admin/admin_watch.py b/zhenxun/builtin_plugins/admin/admin_watch.py
index 45947b52..cad91f08 100644
--- a/zhenxun/builtin_plugins/admin/admin_watch.py
+++ b/zhenxun/builtin_plugins/admin/admin_watch.py
@@ -1,13 +1,13 @@
from nonebot import on_notice
-from nonebot.plugin import PluginMetadata
from nonebot.adapters.onebot.v11 import GroupAdminNoticeEvent
+from nonebot.plugin import PluginMetadata
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig
+from zhenxun.models.level_user import LevelUser
+from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.rules import notice_rule
-from zhenxun.models.level_user import LevelUser
-from zhenxun.configs.utils import RegisterConfig, PluginExtraData
__plugin_meta__ = PluginMetadata(
name="群管理员变动监测",
diff --git a/zhenxun/builtin_plugins/admin/ban/__init__.py b/zhenxun/builtin_plugins/admin/ban/__init__.py
index a391d85d..b692124d 100644
--- a/zhenxun/builtin_plugins/admin/ban/__init__.py
+++ b/zhenxun/builtin_plugins/admin/ban/__init__.py
@@ -2,23 +2,23 @@ from arclet.alconna import Args
from nonebot.adapters import Bot
from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata
-from nonebot_plugin_session import EventSession
from nonebot_plugin_alconna import (
+ Alconna,
+ Arparma,
At,
Match,
Option,
- Alconna,
- Arparma,
on_alconna,
store_true,
)
+from nonebot_plugin_session import EventSession
+from zhenxun.configs.config import BotConfig, Config
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
-from zhenxun.utils.rules import admin_check
from zhenxun.utils.message import MessageUtils
-from zhenxun.configs.config import Config, BotConfig
-from zhenxun.configs.utils import RegisterConfig, PluginExtraData
+from zhenxun.utils.rules import admin_check
from ._data_source import BanManage
@@ -175,10 +175,8 @@ async def _(
_duration = duration.result * 60 if duration.available else -1
_duration_text = f"{duration.result} 分钟" if duration.available else " 到世界湮灭"
if (gid := session.id3 or session.id2) and not group_id.available:
- if (
- not user_id
- or user_id == bot.self_id
- and session.id1 not in bot.config.superusers
+ if not user_id or (
+ user_id == bot.self_id and session.id1 not in bot.config.superusers
):
_duration = 0.5
await MessageUtils.build_message("倒反天罡,小小管理速速退下!").send()
diff --git a/zhenxun/builtin_plugins/admin/ban/_data_source.py b/zhenxun/builtin_plugins/admin/ban/_data_source.py
index 579f2f2d..46c5237b 100644
--- a/zhenxun/builtin_plugins/admin/ban/_data_source.py
+++ b/zhenxun/builtin_plugins/admin/ban/_data_source.py
@@ -3,8 +3,8 @@ from typing import Literal
from nonebot_plugin_session import EventSession
-from zhenxun.models.level_user import LevelUser
from zhenxun.models.ban_console import BanConsole
+from zhenxun.models.level_user import LevelUser
from zhenxun.utils.image_utils import BuildImage, ImageTemplate
diff --git a/zhenxun/builtin_plugins/admin/group_member_update/__init__.py b/zhenxun/builtin_plugins/admin/group_member_update/__init__.py
index 4c63790d..55534ab5 100644
--- a/zhenxun/builtin_plugins/admin/group_member_update/__init__.py
+++ b/zhenxun/builtin_plugins/admin/group_member_update/__init__.py
@@ -1,19 +1,19 @@
import nonebot
from nonebot import on_notice
from nonebot.adapters import Bot
-from nonebot.plugin import PluginMetadata
-from nonebot_plugin_session import EventSession
-from nonebot_plugin_apscheduler import scheduler
-from nonebot_plugin_alconna import Alconna, Arparma, on_alconna
from nonebot.adapters.onebot.v11 import GroupIncreaseNoticeEvent
+from nonebot.plugin import PluginMetadata
+from nonebot_plugin_alconna import Alconna, Arparma, on_alconna
+from nonebot_plugin_apscheduler import scheduler
+from nonebot_plugin_session import EventSession
+from zhenxun.configs.config import BotConfig
+from zhenxun.configs.utils import PluginExtraData
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
-from zhenxun.configs.config import BotConfig
from zhenxun.utils.message import MessageUtils
from zhenxun.utils.platform import PlatformUtils
-from zhenxun.configs.utils import PluginExtraData
-from zhenxun.utils.rules import admin_check, notice_rule, ensure_group
+from zhenxun.utils.rules import admin_check, ensure_group, notice_rule
from ._data_source import MemberUpdateManage
diff --git a/zhenxun/builtin_plugins/admin/group_member_update/_data_source.py b/zhenxun/builtin_plugins/admin/group_member_update/_data_source.py
index 78bbd31c..778fdcf1 100644
--- a/zhenxun/builtin_plugins/admin/group_member_update/_data_source.py
+++ b/zhenxun/builtin_plugins/admin/group_member_update/_data_source.py
@@ -4,11 +4,11 @@ import nonebot
from nonebot.adapters import Bot
from nonebot_plugin_uninfo import Member, SceneType, get_interface
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
-from zhenxun.models.level_user import LevelUser
-from zhenxun.utils.platform import PlatformUtils
from zhenxun.models.group_member_info import GroupInfoUser
+from zhenxun.models.level_user import LevelUser
+from zhenxun.services.log import logger
+from zhenxun.utils.platform import PlatformUtils
class MemberUpdateManage:
diff --git a/zhenxun/builtin_plugins/admin/group_update.py b/zhenxun/builtin_plugins/admin/group_update.py
index 9b263703..70073e79 100644
--- a/zhenxun/builtin_plugins/admin/group_update.py
+++ b/zhenxun/builtin_plugins/admin/group_update.py
@@ -41,5 +41,5 @@ async def _(bot: Bot, session: EventSession, arparma: Arparma):
try:
await PlatformUtils.update_group(bot)
await MessageUtils.build_message("已经成功更新了群组信息!").send(reply_to=True)
- except Exception as e:
+ except Exception:
await MessageUtils.build_message("更新群组信息失败!").finish(reply_to=True)
diff --git a/zhenxun/builtin_plugins/admin/plugin_switch/__init__.py b/zhenxun/builtin_plugins/admin/plugin_switch/__init__.py
index 13528f88..5088d6ee 100644
--- a/zhenxun/builtin_plugins/admin/plugin_switch/__init__.py
+++ b/zhenxun/builtin_plugins/admin/plugin_switch/__init__.py
@@ -1,16 +1,16 @@
from nonebot.adapters import Bot
from nonebot.plugin import PluginMetadata
+from nonebot_plugin_alconna import AlconnaQuery, Arparma, Match, Query
from nonebot_plugin_session import EventSession
-from nonebot_plugin_alconna import Match, Query, Arparma, AlconnaQuery
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
-from zhenxun.utils.message import MessageUtils
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig
+from zhenxun.services.log import logger
from zhenxun.utils.enum import BlockType, PluginType
-from zhenxun.configs.utils import RegisterConfig, PluginExtraData
+from zhenxun.utils.message import MessageUtils
-from .command import _status_matcher, _group_status_matcher
-from ._data_source import PluginManage, build_task, build_plugin, delete_help_image
+from ._data_source import PluginManage, build_plugin, build_task, delete_help_image
+from .command import _group_status_matcher, _status_matcher
base_config = Config.get("plugin_switch")
diff --git a/zhenxun/builtin_plugins/admin/plugin_switch/_data_source.py b/zhenxun/builtin_plugins/admin/plugin_switch/_data_source.py
index 1c1bd030..7af8dc29 100644
--- a/zhenxun/builtin_plugins/admin/plugin_switch/_data_source.py
+++ b/zhenxun/builtin_plugins/admin/plugin_switch/_data_source.py
@@ -1,10 +1,10 @@
-from zhenxun.models.task_info import TaskInfo
-from zhenxun.models.plugin_info import PluginInfo
-from zhenxun.utils.enum import BlockType, PluginType
-from zhenxun.models.group_console import GroupConsole
-from zhenxun.utils.exception import GroupInfoNotFound
from zhenxun.configs.path_config import DATA_PATH, IMAGE_PATH
-from zhenxun.utils.image_utils import RowStyle, BuildImage, ImageTemplate
+from zhenxun.models.group_console import GroupConsole
+from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.models.task_info import TaskInfo
+from zhenxun.utils.enum import BlockType, PluginType
+from zhenxun.utils.exception import GroupInfoNotFound
+from zhenxun.utils.image_utils import BuildImage, ImageTemplate, RowStyle
HELP_FILE = IMAGE_PATH / "SIMPLE_HELP.png"
@@ -35,12 +35,8 @@ def plugin_row_style(column: str, text: str) -> RowStyle:
RowStyle: RowStyle
"""
style = RowStyle()
- if (
- column == "全局状态"
- and text == "开启"
- or column != "全局状态"
- and column == "加载状态"
- and text == "SUCCESS"
+ if (column == "全局状态" and text == "开启") or (
+ column != "全局状态" and column == "加载状态" and text == "SUCCESS"
):
style.font_color = "#67C23A"
elif column in {"全局状态", "加载状态"}:
diff --git a/zhenxun/builtin_plugins/admin/welcome_message.py b/zhenxun/builtin_plugins/admin/welcome_message.py
index e9bb9c33..47097ff0 100644
--- a/zhenxun/builtin_plugins/admin/welcome_message.py
+++ b/zhenxun/builtin_plugins/admin/welcome_message.py
@@ -1,21 +1,21 @@
-import shutil
from pathlib import Path
+import shutil
from typing import Annotated
-import ujson as json
from nonebot import on_command
from nonebot.params import Command
from nonebot.plugin import PluginMetadata
+from nonebot_plugin_alconna import Image, Text, UniMsg
from nonebot_plugin_session import EventSession
-from nonebot_plugin_alconna import Text, Image, UniMsg
+import ujson as json
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
+from zhenxun.configs.path_config import DATA_PATH
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig
+from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.http_utils import AsyncHttpx
-from zhenxun.configs.path_config import DATA_PATH
from zhenxun.utils.rules import admin_check, ensure_group
-from zhenxun.configs.utils import RegisterConfig, PluginExtraData
base_config = Config.get("admin_bot_manage")
diff --git a/zhenxun/builtin_plugins/auto_update/__init__.py b/zhenxun/builtin_plugins/auto_update/__init__.py
index 5bb7505c..fb9eb161 100644
--- a/zhenxun/builtin_plugins/auto_update/__init__.py
+++ b/zhenxun/builtin_plugins/auto_update/__init__.py
@@ -1,14 +1,14 @@
-from nonebot.rule import to_me
from nonebot.adapters import Bot
from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata
+from nonebot.rule import to_me
+from nonebot_plugin_alconna import Alconna, Args, Match, on_alconna
from nonebot_plugin_session import EventSession
-from nonebot_plugin_alconna import Args, Match, Alconna, on_alconna
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.message import MessageUtils
-from zhenxun.configs.utils import RegisterConfig, PluginExtraData
from ._data_source import UpdateManage
diff --git a/zhenxun/builtin_plugins/auto_update/_data_source.py b/zhenxun/builtin_plugins/auto_update/_data_source.py
index be5e3b23..e4ee72cc 100644
--- a/zhenxun/builtin_plugins/auto_update/_data_source.py
+++ b/zhenxun/builtin_plugins/auto_update/_data_source.py
@@ -1,35 +1,35 @@
import os
import shutil
+import subprocess
import tarfile
import zipfile
-import subprocess
from nonebot.adapters import Bot
from nonebot.utils import run_sync
from zhenxun.services.log import logger
-from zhenxun.utils.http_utils import AsyncHttpx
-from zhenxun.utils.platform import PlatformUtils
from zhenxun.utils.github_utils import GithubUtils
from zhenxun.utils.github_utils.models import RepoInfo
+from zhenxun.utils.http_utils import AsyncHttpx
+from zhenxun.utils.platform import PlatformUtils
from .config import (
- TMP_PATH,
- BASE_PATH,
BACKUP_PATH,
- RELEASE_URL,
- REQ_TXT_FILE,
- VERSION_FILE,
- PYPROJECT_FILE,
- REPLACE_FOLDERS,
+ BASE_PATH,
BASE_PATH_STRING,
+ DEFAULT_GITHUB_URL,
DOWNLOAD_GZ_FILE,
DOWNLOAD_ZIP_FILE,
- DEFAULT_GITHUB_URL,
- PYPROJECT_LOCK_FILE,
- REQ_TXT_FILE_STRING,
+ PYPROJECT_FILE,
PYPROJECT_FILE_STRING,
+ PYPROJECT_LOCK_FILE,
PYPROJECT_LOCK_FILE_STRING,
+ RELEASE_URL,
+ REPLACE_FOLDERS,
+ REQ_TXT_FILE,
+ REQ_TXT_FILE_STRING,
+ TMP_PATH,
+ VERSION_FILE,
)
diff --git a/zhenxun/builtin_plugins/catchphrase.py b/zhenxun/builtin_plugins/catchphrase.py
index 3cea8fa8..23736b5b 100644
--- a/zhenxun/builtin_plugins/catchphrase.py
+++ b/zhenxun/builtin_plugins/catchphrase.py
@@ -2,8 +2,8 @@ from typing import Any
from nonebot.adapters import Bot
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
+from zhenxun.services.log import logger
Config.add_plugin_config(
"catchphrase",
diff --git a/zhenxun/builtin_plugins/chat_history/__init__.py b/zhenxun/builtin_plugins/chat_history/__init__.py
index 838488cf..eb35e275 100644
--- a/zhenxun/builtin_plugins/chat_history/__init__.py
+++ b/zhenxun/builtin_plugins/chat_history/__init__.py
@@ -1,4 +1,5 @@
-import nonebot
from pathlib import Path
+import nonebot
+
nonebot.load_plugins(str(Path(__file__).parent.resolve()))
diff --git a/zhenxun/builtin_plugins/chat_history/chat_message.py b/zhenxun/builtin_plugins/chat_history/chat_message.py
index 2cfdd607..f254db21 100644
--- a/zhenxun/builtin_plugins/chat_history/chat_message.py
+++ b/zhenxun/builtin_plugins/chat_history/chat_message.py
@@ -70,7 +70,7 @@ async def _():
await ChatHistory.bulk_create(message_list)
logger.debug(f"批量添加聊天记录 {len(message_list)} 条", "定时任务")
except Exception as e:
- logger.error(f"定时批量添加聊天记录", "定时任务", e=e)
+ logger.error("定时批量添加聊天记录", "定时任务", e=e)
# @test.handle()
diff --git a/zhenxun/builtin_plugins/chat_history/chat_message_handle.py b/zhenxun/builtin_plugins/chat_history/chat_message_handle.py
index 1287e1b0..4407c778 100644
--- a/zhenxun/builtin_plugins/chat_history/chat_message_handle.py
+++ b/zhenxun/builtin_plugins/chat_history/chat_message_handle.py
@@ -1,6 +1,5 @@
from datetime import datetime, timedelta
-import pytz
from nonebot.plugin import PluginMetadata
from nonebot_plugin_alconna import (
Alconna,
@@ -13,6 +12,7 @@ from nonebot_plugin_alconna import (
store_true,
)
from nonebot_plugin_session import EventSession
+import pytz
from zhenxun.configs.utils import PluginExtraData
from zhenxun.models.chat_history import ChatHistory
@@ -113,7 +113,10 @@ async def _(
date_scope = time_now.replace(microsecond=0)
date_str = f"{str(date_scope).split('+')[0]} - 至今"
else:
- date_str = f"{date_scope[0].replace(microsecond=0)} - {date_scope[1].replace(microsecond=0)}"
+ date_str = (
+ f"{date_scope[0].replace(microsecond=0)} - "
+ f"{date_scope[1].replace(microsecond=0)}"
+ )
A = await ImageTemplate.table_page(
f"消息排行({count.result})", date_str, column_name, data_list
)
diff --git a/zhenxun/builtin_plugins/check/data_source.py b/zhenxun/builtin_plugins/check/data_source.py
index 34d7fc0b..0ca8f95e 100644
--- a/zhenxun/builtin_plugins/check/data_source.py
+++ b/zhenxun/builtin_plugins/check/data_source.py
@@ -1,17 +1,17 @@
+from dataclasses import dataclass
import os
+from pathlib import Path
import platform
import subprocess
-from pathlib import Path
-from dataclasses import dataclass
-import psutil
import cpuinfo
import nonebot
-from pydantic import BaseModel
from nonebot.utils import run_sync
+import psutil
+from pydantic import BaseModel
-from zhenxun.services.log import logger
from zhenxun.configs.config import BotConfig
+from zhenxun.services.log import logger
from zhenxun.utils.http_utils import AsyncHttpx
BAIDU_URL = "https://www.baidu.com/"
diff --git a/zhenxun/builtin_plugins/help/__init__.py b/zhenxun/builtin_plugins/help/__init__.py
index 85f3cc2f..cdc63272 100644
--- a/zhenxun/builtin_plugins/help/__init__.py
+++ b/zhenxun/builtin_plugins/help/__init__.py
@@ -1,23 +1,23 @@
-from nonebot.rule import to_me
from nonebot.adapters import Bot
-from nonebot_plugin_uninfo import Uninfo
from nonebot.plugin import PluginMetadata
+from nonebot.rule import to_me
from nonebot_plugin_alconna import (
- Args,
- Match,
- Query,
- Option,
Alconna,
AlconnaQuery,
+ Args,
+ Match,
+ Option,
+ Query,
on_alconna,
store_true,
)
+from nonebot_plugin_uninfo import Uninfo
+from zhenxun.builtin_plugins.help._config import GROUP_HELP_PATH, SIMPLE_HELP_IMAGE
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.message import MessageUtils
-from zhenxun.configs.utils import RegisterConfig, PluginExtraData
-from zhenxun.builtin_plugins.help._config import GROUP_HELP_PATH, SIMPLE_HELP_IMAGE
from ._data_source import create_help_img, get_plugin_help
diff --git a/zhenxun/builtin_plugins/help/_data_source.py b/zhenxun/builtin_plugins/help/_data_source.py
index 1e99dee9..19a3af8a 100644
--- a/zhenxun/builtin_plugins/help/_data_source.py
+++ b/zhenxun/builtin_plugins/help/_data_source.py
@@ -1,16 +1,16 @@
import nonebot
from nonebot_plugin_uninfo import Uninfo
-from zhenxun.utils.enum import PluginType
+from zhenxun.configs.path_config import IMAGE_PATH
from zhenxun.models.level_user import LevelUser
from zhenxun.models.plugin_info import PluginInfo
-from zhenxun.configs.path_config import IMAGE_PATH
+from zhenxun.utils.enum import PluginType
from zhenxun.utils.image_utils import BuildImage, ImageTemplate
+from ._config import GROUP_HELP_PATH, SIMPLE_HELP_IMAGE, base_config
from .html_help import build_html_image
from .normal_help import build_normal_image
from .zhenxun_help import build_zhenxun_image
-from ._config import GROUP_HELP_PATH, SIMPLE_HELP_IMAGE, base_config
random_bk_path = IMAGE_PATH / "background" / "help" / "simple_help"
diff --git a/zhenxun/builtin_plugins/help/_utils.py b/zhenxun/builtin_plugins/help/_utils.py
index abf46f6f..2fc5559d 100644
--- a/zhenxun/builtin_plugins/help/_utils.py
+++ b/zhenxun/builtin_plugins/help/_utils.py
@@ -1,8 +1,8 @@
from collections.abc import Callable
-from zhenxun.utils.enum import PluginType
-from zhenxun.models.plugin_info import PluginInfo
from zhenxun.models.group_console import GroupConsole
+from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.utils.enum import PluginType
async def sort_type() -> dict[str, list[PluginInfo]]:
diff --git a/zhenxun/builtin_plugins/help/html_help.py b/zhenxun/builtin_plugins/help/html_help.py
index 5e88fc28..69afda31 100644
--- a/zhenxun/builtin_plugins/help/html_help.py
+++ b/zhenxun/builtin_plugins/help/html_help.py
@@ -1,13 +1,13 @@
import os
import random
-from pydantic import BaseModel
from nonebot_plugin_htmlrender import template_to_pic
+from pydantic import BaseModel
-from zhenxun.utils.enum import BlockType
-from zhenxun.models.plugin_info import PluginInfo
from zhenxun.configs.path_config import TEMPLATE_PATH
from zhenxun.models.group_console import GroupConsole
+from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.utils.enum import BlockType
from ._utils import classify_plugin
diff --git a/zhenxun/builtin_plugins/help/normal_help.py b/zhenxun/builtin_plugins/help/normal_help.py
index 5a937745..943c8a7e 100644
--- a/zhenxun/builtin_plugins/help/normal_help.py
+++ b/zhenxun/builtin_plugins/help/normal_help.py
@@ -1,8 +1,8 @@
-from zhenxun.utils.enum import BlockType
-from zhenxun.utils._build_image import BuildImage
from zhenxun.configs.path_config import IMAGE_PATH
from zhenxun.models.group_console import GroupConsole
-from zhenxun.utils.image_utils import group_image, build_sort_image
+from zhenxun.utils._build_image import BuildImage
+from zhenxun.utils.enum import BlockType
+from zhenxun.utils.image_utils import build_sort_image, group_image
from ._utils import sort_type
diff --git a/zhenxun/builtin_plugins/help/zhenxun_help.py b/zhenxun/builtin_plugins/help/zhenxun_help.py
index 7da89677..fbe4d94b 100644
--- a/zhenxun/builtin_plugins/help/zhenxun_help.py
+++ b/zhenxun/builtin_plugins/help/zhenxun_help.py
@@ -1,13 +1,13 @@
-from pydantic import BaseModel
-from nonebot_plugin_uninfo import Uninfo
from nonebot_plugin_htmlrender import template_to_pic
+from nonebot_plugin_uninfo import Uninfo
+from pydantic import BaseModel
-from zhenxun.utils.enum import BlockType
from zhenxun.configs.config import BotConfig
-from zhenxun.utils.platform import PlatformUtils
-from zhenxun.models.plugin_info import PluginInfo
from zhenxun.configs.path_config import TEMPLATE_PATH
from zhenxun.models.group_console import GroupConsole
+from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.utils.enum import BlockType
+from zhenxun.utils.platform import PlatformUtils
from ._utils import classify_plugin
diff --git a/zhenxun/builtin_plugins/help_help.py b/zhenxun/builtin_plugins/help_help.py
index 7da4e7ca..cbf66135 100644
--- a/zhenxun/builtin_plugins/help_help.py
+++ b/zhenxun/builtin_plugins/help_help.py
@@ -2,20 +2,20 @@ import os
import random
from nonebot import on_message
-from nonebot.rule import to_me
from nonebot.matcher import Matcher
from nonebot.plugin import PluginMetadata
+from nonebot.rule import to_me
from nonebot_plugin_alconna import UniMsg
from nonebot_plugin_session import EventSession
+from zhenxun.configs.path_config import IMAGE_PATH
+from zhenxun.configs.utils import PluginExtraData
+from zhenxun.models.ban_console import BanConsole
+from zhenxun.models.group_console import GroupConsole
+from zhenxun.models.plugin_info import PluginInfo
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.message import MessageUtils
-from zhenxun.configs.utils import PluginExtraData
-from zhenxun.models.ban_console import BanConsole
-from zhenxun.models.plugin_info import PluginInfo
-from zhenxun.configs.path_config import IMAGE_PATH
-from zhenxun.models.group_console import GroupConsole
__plugin_meta__ = PluginMetadata(
name="笨蛋检测",
diff --git a/zhenxun/builtin_plugins/hooks/_auth_checker.py b/zhenxun/builtin_plugins/hooks/_auth_checker.py
index a539aef9..79fa43e5 100644
--- a/zhenxun/builtin_plugins/hooks/_auth_checker.py
+++ b/zhenxun/builtin_plugins/hooks/_auth_checker.py
@@ -1,30 +1,30 @@
-from pydantic import BaseModel
-from nonebot.matcher import Matcher
from nonebot.adapters import Bot, Event
-from nonebot_plugin_alconna import At, UniMsg
-from nonebot.exception import IgnoredException
-from tortoise.exceptions import IntegrityError
-from nonebot_plugin_session import EventSession
from nonebot.adapters.onebot.v11 import PokeNotifyEvent
+from nonebot.exception import IgnoredException
+from nonebot.matcher import Matcher
+from nonebot_plugin_alconna import At, UniMsg
+from nonebot_plugin_session import EventSession
+from pydantic import BaseModel
+from tortoise.exceptions import IntegrityError
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
-from zhenxun.utils.message import MessageUtils
-from zhenxun.models.level_user import LevelUser
from zhenxun.models.bot_console import BotConsole
+from zhenxun.models.group_console import GroupConsole
+from zhenxun.models.level_user import LevelUser
from zhenxun.models.plugin_info import PluginInfo
from zhenxun.models.plugin_limit import PluginLimit
from zhenxun.models.user_console import UserConsole
-from zhenxun.utils.exception import InsufficientGold
-from zhenxun.models.group_console import GroupConsole
-from zhenxun.utils.utils import FreqLimiter, CountLimiter, UserBlockLimiter
+from zhenxun.services.log import logger
from zhenxun.utils.enum import (
BlockType,
GoldHandle,
- PluginType,
LimitWatchType,
PluginLimitType,
+ PluginType,
)
+from zhenxun.utils.exception import InsufficientGold
+from zhenxun.utils.message import MessageUtils
+from zhenxun.utils.utils import CountLimiter, FreqLimiter, UserBlockLimiter
base_config = Config.get("hook")
diff --git a/zhenxun/builtin_plugins/hooks/auth_hook.py b/zhenxun/builtin_plugins/hooks/auth_hook.py
index 9df91a4d..0ccca75c 100644
--- a/zhenxun/builtin_plugins/hooks/auth_hook.py
+++ b/zhenxun/builtin_plugins/hooks/auth_hook.py
@@ -1,5 +1,3 @@
-from typing import Optional
-
from nonebot.adapters.onebot.v11 import Bot, Event
from nonebot.matcher import Matcher
from nonebot.message import run_postprocessor, run_preprocessor
@@ -27,7 +25,7 @@ async def _(
@run_postprocessor
async def _(
matcher: Matcher,
- exception: Optional[Exception],
+ exception: Exception | None,
bot: Bot,
event: Event,
session: EventSession,
diff --git a/zhenxun/builtin_plugins/hooks/ban_hook.py b/zhenxun/builtin_plugins/hooks/ban_hook.py
index 5ec48f89..d9030527 100644
--- a/zhenxun/builtin_plugins/hooks/ban_hook.py
+++ b/zhenxun/builtin_plugins/hooks/ban_hook.py
@@ -1,18 +1,18 @@
-from nonebot.typing import T_State
-from nonebot.matcher import Matcher
-from nonebot_plugin_alconna import At
from nonebot.adapters import Bot, Event
-from nonebot.message import run_preprocessor
from nonebot.exception import IgnoredException
+from nonebot.matcher import Matcher
+from nonebot.message import run_preprocessor
+from nonebot.typing import T_State
+from nonebot_plugin_alconna import At
from nonebot_plugin_session import EventSession
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
-from zhenxun.utils.enum import PluginType
-from zhenxun.utils.utils import FreqLimiter
-from zhenxun.utils.message import MessageUtils
from zhenxun.models.ban_console import BanConsole
from zhenxun.models.group_console import GroupConsole
+from zhenxun.services.log import logger
+from zhenxun.utils.enum import PluginType
+from zhenxun.utils.message import MessageUtils
+from zhenxun.utils.utils import FreqLimiter
Config.add_plugin_config(
"hook",
diff --git a/zhenxun/builtin_plugins/hooks/chkdsk_hook.py b/zhenxun/builtin_plugins/hooks/chkdsk_hook.py
index 915a1969..ec5ccfed 100644
--- a/zhenxun/builtin_plugins/hooks/chkdsk_hook.py
+++ b/zhenxun/builtin_plugins/hooks/chkdsk_hook.py
@@ -1,20 +1,20 @@
-import time
from collections import defaultdict
+import time
from nonebot.adapters import Event
-from nonebot.typing import T_State
-from nonebot.matcher import Matcher
-from nonebot_plugin_alconna import At
from nonebot.adapters.onebot.v11 import Bot
-from nonebot.message import run_preprocessor
from nonebot.exception import IgnoredException
+from nonebot.matcher import Matcher
+from nonebot.message import run_preprocessor
+from nonebot.typing import T_State
+from nonebot_plugin_alconna import At
from nonebot_plugin_session import EventSession
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
+from zhenxun.models.ban_console import BanConsole
+from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.message import MessageUtils
-from zhenxun.models.ban_console import BanConsole
malicious_check_time = Config.get_config("hook", "MALICIOUS_CHECK_TIME")
malicious_ban_count = Config.get_config("hook", "MALICIOUS_BAN_COUNT")
diff --git a/zhenxun/builtin_plugins/info/__init__.py b/zhenxun/builtin_plugins/info/__init__.py
index 0bb1b2f4..54269c77 100644
--- a/zhenxun/builtin_plugins/info/__init__.py
+++ b/zhenxun/builtin_plugins/info/__init__.py
@@ -1,14 +1,14 @@
from nonebot.adapters import Bot
-from nonebot_plugin_uninfo import Uninfo
from nonebot.plugin import PluginMetadata
+from nonebot_plugin_alconna import Alconna, Args, Arparma, At, Match, on_alconna
+from nonebot_plugin_uninfo import Uninfo
from playwright.async_api import TimeoutError
-from nonebot_plugin_alconna import At, Args, Match, Alconna, Arparma, on_alconna
+from zhenxun.configs.utils import PluginExtraData
+from zhenxun.models.group_member_info import GroupInfoUser
from zhenxun.services.log import logger
from zhenxun.utils.depends import UserName
from zhenxun.utils.message import MessageUtils
-from zhenxun.configs.utils import PluginExtraData
-from zhenxun.models.group_member_info import GroupInfoUser
from .my_info import get_user_info
diff --git a/zhenxun/builtin_plugins/info/my_info.py b/zhenxun/builtin_plugins/info/my_info.py
index 144bf1e9..90f42d5b 100644
--- a/zhenxun/builtin_plugins/info/my_info.py
+++ b/zhenxun/builtin_plugins/info/my_info.py
@@ -1,18 +1,18 @@
-import random
from datetime import datetime, timedelta
+import random
-from tortoise.functions import Count
-from tortoise.expressions import RawSQL
-from nonebot_plugin_uninfo import Uninfo
from nonebot_plugin_htmlrender import template_to_pic
+from nonebot_plugin_uninfo import Uninfo
+from tortoise.expressions import RawSQL
+from tortoise.functions import Count
-from zhenxun.models.sign_user import SignUser
-from zhenxun.models.level_user import LevelUser
-from zhenxun.models.statistics import Statistics
-from zhenxun.utils.platform import PlatformUtils
-from zhenxun.models.chat_history import ChatHistory
-from zhenxun.models.user_console import UserConsole
from zhenxun.configs.path_config import TEMPLATE_PATH
+from zhenxun.models.chat_history import ChatHistory
+from zhenxun.models.level_user import LevelUser
+from zhenxun.models.sign_user import SignUser
+from zhenxun.models.statistics import Statistics
+from zhenxun.models.user_console import UserConsole
+from zhenxun.utils.platform import PlatformUtils
RACE = [
"龙族",
diff --git a/zhenxun/builtin_plugins/init/__init__.py b/zhenxun/builtin_plugins/init/__init__.py
index e48b89bb..3d97a47c 100644
--- a/zhenxun/builtin_plugins/init/__init__.py
+++ b/zhenxun/builtin_plugins/init/__init__.py
@@ -3,9 +3,9 @@ from pathlib import Path
import nonebot
from nonebot.adapters import Bot
+from zhenxun.models.group_console import GroupConsole
from zhenxun.services.log import logger
from zhenxun.utils.platform import PlatformUtils
-from zhenxun.models.group_console import GroupConsole
nonebot.load_plugins(str(Path(__file__).parent.resolve()))
diff --git a/zhenxun/builtin_plugins/init/init_config.py b/zhenxun/builtin_plugins/init/init_config.py
index a2a7f332..ec6bd170 100644
--- a/zhenxun/builtin_plugins/init/init_config.py
+++ b/zhenxun/builtin_plugins/init/init_config.py
@@ -1,16 +1,16 @@
from pathlib import Path
import nonebot
-from ruamel.yaml import YAML
-from nonebot.plugin import Plugin
-from nonebot.drivers import Driver
from nonebot import get_loaded_plugins
+from nonebot.drivers import Driver
+from nonebot.plugin import Plugin
+from ruamel.yaml import YAML
from ruamel.yaml.comments import CommentedMap
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
-from zhenxun.configs.utils import RegisterConfig
from zhenxun.configs.path_config import DATA_PATH
+from zhenxun.configs.utils import RegisterConfig
+from zhenxun.services.log import logger
_yaml = YAML(pure=True)
_yaml.allow_unicode = True
diff --git a/zhenxun/builtin_plugins/init/init_plugin.py b/zhenxun/builtin_plugins/init/init_plugin.py
index 37cdeab0..366df312 100644
--- a/zhenxun/builtin_plugins/init/init_plugin.py
+++ b/zhenxun/builtin_plugins/init/init_plugin.py
@@ -1,24 +1,24 @@
-import nonebot
import aiofiles
-import ujson as json
-from ruamel.yaml import YAML
-from nonebot.drivers import Driver
+import nonebot
from nonebot import get_loaded_plugins
+from nonebot.drivers import Driver
from nonebot.plugin import Plugin, PluginMetadata
+from ruamel.yaml import YAML
+import ujson as json
-from zhenxun.services.log import logger
-from zhenxun.models.task_info import TaskInfo
from zhenxun.configs.path_config import DATA_PATH
+from zhenxun.configs.utils import PluginExtraData, PluginSetting
+from zhenxun.models.group_console import GroupConsole
from zhenxun.models.plugin_info import PluginInfo
from zhenxun.models.plugin_limit import PluginLimit
-from zhenxun.models.group_console import GroupConsole
-from zhenxun.configs.utils import PluginSetting, PluginExtraData
+from zhenxun.models.task_info import TaskInfo
+from zhenxun.services.log import logger
from zhenxun.utils.enum import (
BlockType,
- PluginType,
LimitCheckType,
LimitWatchType,
PluginLimitType,
+ PluginType,
)
from .manager import manager
diff --git a/zhenxun/builtin_plugins/init/manager.py b/zhenxun/builtin_plugins/init/manager.py
index 039b2980..52103455 100644
--- a/zhenxun/builtin_plugins/init/manager.py
+++ b/zhenxun/builtin_plugins/init/manager.py
@@ -2,12 +2,12 @@ from copy import deepcopy
from ruamel.yaml import YAML
-from zhenxun.services.log import logger
from zhenxun.configs.path_config import DATA_PATH
+from zhenxun.configs.utils import BaseBlock, PluginCdBlock, PluginCountBlock
from zhenxun.models.plugin_info import PluginInfo
from zhenxun.models.plugin_limit import PluginLimit
+from zhenxun.services.log import logger
from zhenxun.utils.enum import BlockType, LimitCheckType, PluginLimitType
-from zhenxun.configs.utils import BaseBlock, PluginCdBlock, PluginCountBlock
_yaml = YAML(pure=True)
_yaml.indent = 2
diff --git a/zhenxun/builtin_plugins/nickname.py b/zhenxun/builtin_plugins/nickname.py
index 0ad2cdc5..812e40b6 100644
--- a/zhenxun/builtin_plugins/nickname.py
+++ b/zhenxun/builtin_plugins/nickname.py
@@ -2,23 +2,23 @@ import random
from typing import Any
from nonebot import on_regex
-from nonebot.rule import to_me
from nonebot.adapters import Bot
-from nonebot.plugin import PluginMetadata
from nonebot.params import Depends, RegexGroup
+from nonebot.plugin import PluginMetadata
+from nonebot.rule import to_me
+from nonebot_plugin_alconna import Alconna, Option, on_alconna, store_true
from nonebot_plugin_session import EventSession
-from nonebot_plugin_userinfo import UserInfo, EventUserInfo
-from nonebot_plugin_alconna import Option, Alconna, on_alconna, store_true
+from nonebot_plugin_userinfo import EventUserInfo, UserInfo
-from zhenxun.services.log import logger
-from zhenxun.utils.enum import PluginType
-from zhenxun.utils.depends import UserName
-from zhenxun.utils.message import MessageUtils
+from zhenxun.configs.config import BotConfig, Config
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig
from zhenxun.models.ban_console import BanConsole
from zhenxun.models.friend_user import FriendUser
-from zhenxun.configs.config import Config, BotConfig
from zhenxun.models.group_member_info import GroupInfoUser
-from zhenxun.configs.utils import RegisterConfig, PluginExtraData
+from zhenxun.services.log import logger
+from zhenxun.utils.depends import UserName
+from zhenxun.utils.enum import PluginType
+from zhenxun.utils.message import MessageUtils
__plugin_meta__ = PluginMetadata(
name="昵称系统",
diff --git a/zhenxun/builtin_plugins/platform/qq/group_handle/__init__.py b/zhenxun/builtin_plugins/platform/qq/group_handle/__init__.py
index a1729c9c..0cde0a6c 100644
--- a/zhenxun/builtin_plugins/platform/qq/group_handle/__init__.py
+++ b/zhenxun/builtin_plugins/platform/qq/group_handle/__init__.py
@@ -1,7 +1,5 @@
-from nonebot.adapters import Bot
-from nonebot_plugin_uninfo import Uninfo
from nonebot import on_notice, on_request
-from nonebot.plugin import PluginMetadata
+from nonebot.adapters import Bot
from nonebot.adapters.onebot.v11 import (
GroupDecreaseNoticeEvent,
GroupIncreaseNoticeEvent,
@@ -10,17 +8,19 @@ from nonebot.adapters.onebot.v12 import (
GroupMemberDecreaseEvent,
GroupMemberIncreaseEvent,
)
+from nonebot.plugin import PluginMetadata
+from nonebot_plugin_uninfo import Uninfo
-from zhenxun.utils.enum import PluginType
-from zhenxun.utils.rules import notice_rule
-from zhenxun.utils.platform import PlatformUtils
-from zhenxun.utils.common_utils import CommonUtils
-from zhenxun.configs.config import Config, BotConfig
+from zhenxun.builtin_plugins.platform.qq.exception import ForceAddGroupError
+from zhenxun.configs.config import BotConfig, Config
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig, Task
from zhenxun.models.group_console import GroupConsole
-from zhenxun.configs.utils import Task, RegisterConfig, PluginExtraData
+from zhenxun.utils.common_utils import CommonUtils
+from zhenxun.utils.enum import PluginType
+from zhenxun.utils.platform import PlatformUtils
+from zhenxun.utils.rules import notice_rule
from .data_source import GroupManager
-from ..exception import ForceAddGroupError
__plugin_meta__ = PluginMetadata(
name="QQ群事件处理",
diff --git a/zhenxun/builtin_plugins/platform/qq/group_handle/data_source.py b/zhenxun/builtin_plugins/platform/qq/group_handle/data_source.py
index c32a6139..9ffde102 100644
--- a/zhenxun/builtin_plugins/platform/qq/group_handle/data_source.py
+++ b/zhenxun/builtin_plugins/platform/qq/group_handle/data_source.py
@@ -1,29 +1,28 @@
-import os
-import re
-import random
-from pathlib import Path
from datetime import datetime
+import os
+from pathlib import Path
+import random
+import re
-import ujson as json
from nonebot.adapters import Bot
from nonebot_plugin_alconna import At
from nonebot_plugin_uninfo import Uninfo
+import ujson as json
-from zhenxun.services.log import logger
+from zhenxun.builtin_plugins.platform.qq.exception import ForceAddGroupError
from zhenxun.configs.config import Config
-from zhenxun.utils.utils import FreqLimiter
-from zhenxun.utils.message import MessageUtils
+from zhenxun.configs.path_config import DATA_PATH, IMAGE_PATH
from zhenxun.models.fg_request import FgRequest
-from zhenxun.models.level_user import LevelUser
-from zhenxun.utils.enum import RequestHandleType
-from zhenxun.utils.platform import PlatformUtils
-from zhenxun.models.plugin_info import PluginInfo
-from zhenxun.utils.common_utils import CommonUtils
from zhenxun.models.group_console import GroupConsole
from zhenxun.models.group_member_info import GroupInfoUser
-from zhenxun.configs.path_config import DATA_PATH, IMAGE_PATH
-
-from ..exception import ForceAddGroupError
+from zhenxun.models.level_user import LevelUser
+from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.services.log import logger
+from zhenxun.utils.common_utils import CommonUtils
+from zhenxun.utils.enum import RequestHandleType
+from zhenxun.utils.message import MessageUtils
+from zhenxun.utils.platform import PlatformUtils
+from zhenxun.utils.utils import FreqLimiter
base_config = Config.get("invite_manager")
diff --git a/zhenxun/builtin_plugins/platform/qq_api/ug_watch.py b/zhenxun/builtin_plugins/platform/qq_api/ug_watch.py
index 438cb2bc..4e7a708c 100644
--- a/zhenxun/builtin_plugins/platform/qq_api/ug_watch.py
+++ b/zhenxun/builtin_plugins/platform/qq_api/ug_watch.py
@@ -1,11 +1,11 @@
-from nonebot_plugin_uninfo import Uninfo
from nonebot.message import run_preprocessor
+from nonebot_plugin_uninfo import Uninfo
-from zhenxun.services.log import logger
-from zhenxun.utils.platform import PlatformUtils
from zhenxun.models.friend_user import FriendUser
from zhenxun.models.group_console import GroupConsole
from zhenxun.models.group_member_info import GroupInfoUser
+from zhenxun.services.log import logger
+from zhenxun.utils.platform import PlatformUtils
@run_preprocessor
diff --git a/zhenxun/builtin_plugins/plugin_store/__init__.py b/zhenxun/builtin_plugins/plugin_store/__init__.py
index 06e0b481..ab931dff 100644
--- a/zhenxun/builtin_plugins/plugin_store/__init__.py
+++ b/zhenxun/builtin_plugins/plugin_store/__init__.py
@@ -1,12 +1,12 @@
from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata
+from nonebot_plugin_alconna import Alconna, Args, Subcommand, on_alconna
from nonebot_plugin_session import EventSession
-from nonebot_plugin_alconna import Args, Alconna, Subcommand, on_alconna
+from zhenxun.configs.utils import PluginExtraData
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.message import MessageUtils
-from zhenxun.configs.utils import PluginExtraData
from .data_source import ShopManage
@@ -153,6 +153,7 @@ async def _(session: EventSession, plugin_id: int | str):
logger.info(f"更新插件 Id: {plugin_id}", "插件商店", session=session)
await MessageUtils.build_message(result).send()
+
@_matcher.assign("update_all")
async def _(session: EventSession):
try:
@@ -160,8 +161,6 @@ async def _(session: EventSession):
result = await ShopManage.update_all_plugin()
except Exception as e:
logger.error("更新全部插件失败", "插件商店", session=session, e=e)
- await MessageUtils.build_message(
- f"更新全部插件失败 e: {e}"
- ).finish()
+ await MessageUtils.build_message(f"更新全部插件失败 e: {e}").finish()
logger.info("更新全部插件", "插件商店", session=session)
- await MessageUtils.build_message(result).send()
\ No newline at end of file
+ await MessageUtils.build_message(result).send()
diff --git a/zhenxun/builtin_plugins/plugin_store/data_source.py b/zhenxun/builtin_plugins/plugin_store/data_source.py
index d63309b8..818fb53f 100644
--- a/zhenxun/builtin_plugins/plugin_store/data_source.py
+++ b/zhenxun/builtin_plugins/plugin_store/data_source.py
@@ -1,21 +1,21 @@
+from pathlib import Path
import shutil
import subprocess
-from pathlib import Path
-import ujson as json
from aiocache import cached
+import ujson as json
-from zhenxun.services.log import logger
-from zhenxun.utils.http_utils import AsyncHttpx
+from zhenxun.builtin_plugins.auto_update.config import REQ_TXT_FILE_STRING
+from zhenxun.builtin_plugins.plugin_store.models import StorePluginInfo
from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.services.log import logger
+from zhenxun.services.plugin_init import PluginInitManager
from zhenxun.utils.github_utils import GithubUtils
from zhenxun.utils.github_utils.models import RepoAPI
-from zhenxun.services.plugin_init import PluginInitManager
-from zhenxun.builtin_plugins.plugin_store.models import StorePluginInfo
-from zhenxun.utils.image_utils import RowStyle, BuildImage, ImageTemplate
-from zhenxun.builtin_plugins.auto_update.config import REQ_TXT_FILE_STRING
+from zhenxun.utils.http_utils import AsyncHttpx
+from zhenxun.utils.image_utils import BuildImage, ImageTemplate, RowStyle
-from .config import BASE_PATH, EXTRA_GITHUB_URL, DEFAULT_GITHUB_URL
+from .config import BASE_PATH, DEFAULT_GITHUB_URL, EXTRA_GITHUB_URL
def row_style(column: str, text: str) -> RowStyle:
@@ -418,6 +418,7 @@ class ShopManage:
return "已更新插件 {}\n共计{}个插件! 重启后生效".format(
"\n- ".join(update_list), len(update_list)
)
+
@classmethod
async def _resolve_plugin_key(cls, plugin_id: int | str) -> str:
data: dict[str, StorePluginInfo] = await cls.get_data()
diff --git a/zhenxun/builtin_plugins/record_request.py b/zhenxun/builtin_plugins/record_request.py
index f7ac4b21..8577692b 100644
--- a/zhenxun/builtin_plugins/record_request.py
+++ b/zhenxun/builtin_plugins/record_request.py
@@ -1,26 +1,26 @@
-import time
from datetime import datetime
+import time
-from nonebot.plugin import PluginMetadata
from nonebot import on_message, on_request
-from nonebot_plugin_session import EventSession
-from nonebot_plugin_apscheduler import scheduler
-from nonebot.adapters.onebot.v11 import Bot as v11Bot
-from nonebot.adapters.onebot.v12 import Bot as v12Bot
from nonebot.adapters.onebot.v11 import (
ActionFailed,
- GroupRequestEvent,
FriendRequestEvent,
+ GroupRequestEvent,
)
+from nonebot.adapters.onebot.v11 import Bot as v11Bot
+from nonebot.adapters.onebot.v12 import Bot as v12Bot
+from nonebot.plugin import PluginMetadata
+from nonebot_plugin_apscheduler import scheduler
+from nonebot_plugin_session import EventSession
-from zhenxun.services.log import logger
+from zhenxun.configs.config import BotConfig, Config
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig
from zhenxun.models.fg_request import FgRequest
-from zhenxun.utils.platform import PlatformUtils
from zhenxun.models.friend_user import FriendUser
-from zhenxun.configs.config import Config, BotConfig
from zhenxun.models.group_console import GroupConsole
-from zhenxun.configs.utils import RegisterConfig, PluginExtraData
-from zhenxun.utils.enum import PluginType, RequestType, RequestHandleType
+from zhenxun.services.log import logger
+from zhenxun.utils.enum import PluginType, RequestHandleType, RequestType
+from zhenxun.utils.platform import PlatformUtils
base_config = Config.get("invite_manager")
diff --git a/zhenxun/builtin_plugins/restart/__init__.py b/zhenxun/builtin_plugins/restart/__init__.py
index 3adce4cc..314404c3 100644
--- a/zhenxun/builtin_plugins/restart/__init__.py
+++ b/zhenxun/builtin_plugins/restart/__init__.py
@@ -1,23 +1,23 @@
import os
-import platform
from pathlib import Path
+import platform
-import nonebot
import aiofiles
+import nonebot
from nonebot import on_command
-from nonebot.rule import to_me
from nonebot.adapters import Bot
from nonebot.params import ArgStr
from nonebot.permission import SUPERUSER
-from nonebot_plugin_uninfo import Uninfo
from nonebot.plugin import PluginMetadata
+from nonebot.rule import to_me
+from nonebot_plugin_uninfo import Uninfo
+from zhenxun.configs.config import BotConfig
+from zhenxun.configs.utils import PluginExtraData
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
-from zhenxun.configs.config import BotConfig
from zhenxun.utils.message import MessageUtils
from zhenxun.utils.platform import PlatformUtils
-from zhenxun.configs.utils import PluginExtraData
__plugin_meta__ = PluginMetadata(
name="重启",
diff --git a/zhenxun/builtin_plugins/scheduler/auto_backup.py b/zhenxun/builtin_plugins/scheduler/auto_backup.py
index 8b5bc9ac..af5ef382 100644
--- a/zhenxun/builtin_plugins/scheduler/auto_backup.py
+++ b/zhenxun/builtin_plugins/scheduler/auto_backup.py
@@ -1,10 +1,10 @@
-import shutil
from pathlib import Path
+import shutil
from nonebot_plugin_apscheduler import scheduler
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
+from zhenxun.services.log import logger
Config.add_plugin_config(
"_backup",
diff --git a/zhenxun/builtin_plugins/scheduler/chat_check.py b/zhenxun/builtin_plugins/scheduler/chat_check.py
index 30442a00..4c30ffe2 100644
--- a/zhenxun/builtin_plugins/scheduler/chat_check.py
+++ b/zhenxun/builtin_plugins/scheduler/chat_check.py
@@ -1,15 +1,15 @@
from datetime import datetime, timedelta
-import pytz
import nonebot
from nonebot_plugin_apscheduler import scheduler
+import pytz
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
-from zhenxun.models.task_info import TaskInfo
-from zhenxun.utils.platform import PlatformUtils
from zhenxun.models.chat_history import ChatHistory
from zhenxun.models.group_console import GroupConsole
+from zhenxun.models.task_info import TaskInfo
+from zhenxun.services.log import logger
+from zhenxun.utils.platform import PlatformUtils
Config.add_plugin_config(
"chat_check",
diff --git a/zhenxun/builtin_plugins/scheduler/morning.py b/zhenxun/builtin_plugins/scheduler/morning.py
index d3519219..f8bb9e6f 100644
--- a/zhenxun/builtin_plugins/scheduler/morning.py
+++ b/zhenxun/builtin_plugins/scheduler/morning.py
@@ -3,14 +3,14 @@ from nonebot.adapters import Bot
from nonebot.plugin import PluginMetadata
from nonebot_plugin_apscheduler import scheduler
-from zhenxun.services.log import logger
-from zhenxun.utils.enum import PluginType
from zhenxun.configs.config import BotConfig
-from zhenxun.utils.message import MessageUtils
from zhenxun.configs.path_config import IMAGE_PATH
+from zhenxun.configs.utils import PluginExtraData, Task
+from zhenxun.services.log import logger
from zhenxun.utils.common_utils import CommonUtils
+from zhenxun.utils.enum import PluginType
+from zhenxun.utils.message import MessageUtils
from zhenxun.utils.platform import broadcast_group
-from zhenxun.configs.utils import Task, PluginExtraData
__plugin_meta__ = PluginMetadata(
name="早晚安被动技能",
diff --git a/zhenxun/builtin_plugins/scripts.py b/zhenxun/builtin_plugins/scripts.py
index 257ad246..27705301 100644
--- a/zhenxun/builtin_plugins/scripts.py
+++ b/zhenxun/builtin_plugins/scripts.py
@@ -1,15 +1,15 @@
from asyncio.exceptions import TimeoutError
-import nonebot
import aiofiles
-import ujson as json
+import nonebot
from nonebot.drivers import Driver
from nonebot_plugin_apscheduler import scheduler
+import ujson as json
-from zhenxun.services.log import logger
-from zhenxun.utils.http_utils import AsyncHttpx
from zhenxun.configs.path_config import TEXT_PATH
from zhenxun.models.group_console import GroupConsole
+from zhenxun.services.log import logger
+from zhenxun.utils.http_utils import AsyncHttpx
driver: Driver = nonebot.get_driver()
diff --git a/zhenxun/builtin_plugins/shop/__init__.py b/zhenxun/builtin_plugins/shop/__init__.py
index 9e80e1a4..5c48c3f2 100644
--- a/zhenxun/builtin_plugins/shop/__init__.py
+++ b/zhenxun/builtin_plugins/shop/__init__.py
@@ -1,28 +1,28 @@
from nonebot.adapters import Bot, Event
-from nonebot_plugin_uninfo import Uninfo
from nonebot.plugin import PluginMetadata
-from nonebot_plugin_session import EventSession
from nonebot_plugin_alconna import (
- Args,
- Match,
- Query,
- Option,
- UniMsg,
Alconna,
+ AlconnaQuery,
+ Args,
Arparma,
+ Match,
+ Option,
+ Query,
Subcommand,
UniMessage,
- AlconnaQuery,
+ UniMsg,
on_alconna,
store_true,
)
+from nonebot_plugin_session import EventSession
+from nonebot_plugin_uninfo import Uninfo
+from zhenxun.configs.utils import BaseBlock, PluginExtraData
from zhenxun.services.log import logger
from zhenxun.utils.depends import UserName
-from zhenxun.utils.message import MessageUtils
-from zhenxun.utils.exception import GoodsNotFound
from zhenxun.utils.enum import BlockType, PluginType
-from zhenxun.configs.utils import BaseBlock, PluginExtraData
+from zhenxun.utils.exception import GoodsNotFound
+from zhenxun.utils.message import MessageUtils
from ._data_source import ShopManage, gold_rank
@@ -184,9 +184,9 @@ async def _(
elif isinstance(result, UniMessage):
await result.finish(reply_to=True)
except GoodsNotFound:
- await MessageUtils.build_message(f"没有找到道具 {name.result} 或道具数量不足...").send(
- reply_to=True
- )
+ await MessageUtils.build_message(
+ f"没有找到道具 {name.result} 或道具数量不足..."
+ ).send(reply_to=True)
@_matcher.assign("gold-list")
diff --git a/zhenxun/builtin_plugins/shop/_data_source.py b/zhenxun/builtin_plugins/shop/_data_source.py
index 289149f5..58657f86 100644
--- a/zhenxun/builtin_plugins/shop/_data_source.py
+++ b/zhenxun/builtin_plugins/shop/_data_source.py
@@ -1,27 +1,27 @@
-import time
import asyncio
-import inspect
-from typing import Any, Literal
-from types import MappingProxyType
from collections.abc import Callable
+import inspect
+import time
+from types import MappingProxyType
+from typing import Any, Literal
from nonebot.adapters import Bot, Event
+from nonebot_plugin_alconna import UniMessage, UniMsg
+from nonebot_plugin_session import EventSession
from nonebot_plugin_uninfo import Uninfo
from pydantic import BaseModel, create_model
-from nonebot_plugin_session import EventSession
-from nonebot_plugin_alconna import UniMsg, UniMessage
-from zhenxun.services.log import logger
-from zhenxun.models.goods_info import GoodsInfo
-from zhenxun.utils.platform import PlatformUtils
-from zhenxun.models.friend_user import FriendUser
from zhenxun.configs.path_config import IMAGE_PATH
+from zhenxun.models.friend_user import FriendUser
+from zhenxun.models.goods_info import GoodsInfo
+from zhenxun.models.group_member_info import GroupInfoUser
from zhenxun.models.user_console import UserConsole
from zhenxun.models.user_gold_log import UserGoldLog
-from zhenxun.utils.enum import GoldHandle, PropHandle
from zhenxun.models.user_props_log import UserPropsLog
-from zhenxun.models.group_member_info import GroupInfoUser
+from zhenxun.services.log import logger
+from zhenxun.utils.enum import GoldHandle, PropHandle
from zhenxun.utils.image_utils import BuildImage, ImageTemplate, text2image
+from zhenxun.utils.platform import PlatformUtils
ICON_PATH = IMAGE_PATH / "shop_icon"
diff --git a/zhenxun/builtin_plugins/sign_in/__init__.py b/zhenxun/builtin_plugins/sign_in/__init__.py
index d9e02b7d..17ef93b7 100644
--- a/zhenxun/builtin_plugins/sign_in/__init__.py
+++ b/zhenxun/builtin_plugins/sign_in/__init__.py
@@ -1,26 +1,25 @@
-from nonebot_plugin_uninfo import Uninfo
from nonebot.plugin import PluginMetadata
-from nonebot_plugin_session import EventSession
-from nonebot_plugin_apscheduler import scheduler
from nonebot_plugin_alconna import (
- Args,
- Query,
- Option,
Alconna,
- Arparma,
AlconnaQuery,
+ Args,
+ Arparma,
+ Option,
+ Query,
on_alconna,
store_true,
)
+from nonebot_plugin_apscheduler import scheduler
+from nonebot_plugin_uninfo import Uninfo
+from zhenxun.configs.utils import PluginCdBlock, PluginExtraData, RegisterConfig
from zhenxun.services.log import logger
from zhenxun.utils.depends import UserName
from zhenxun.utils.message import MessageUtils
-from zhenxun.configs.utils import PluginCdBlock, RegisterConfig, PluginExtraData
from ._data_source import SignManage
-from .utils import clear_sign_data_pic
from .goods_register import driver # noqa: F401
+from .utils import clear_sign_data_pic
__plugin_meta__ = PluginMetadata(
name="签到",
diff --git a/zhenxun/builtin_plugins/sign_in/_data_source.py b/zhenxun/builtin_plugins/sign_in/_data_source.py
index 50b2e21b..8e4a56e4 100644
--- a/zhenxun/builtin_plugins/sign_in/_data_source.py
+++ b/zhenxun/builtin_plugins/sign_in/_data_source.py
@@ -1,23 +1,23 @@
+from datetime import datetime
+from pathlib import Path
import random
import secrets
-from pathlib import Path
-from datetime import datetime
-import pytz
from nonebot_plugin_uninfo import Uninfo
+import pytz
-from zhenxun.services.log import logger
+from zhenxun.configs.path_config import IMAGE_PATH
+from zhenxun.models.friend_user import FriendUser
+from zhenxun.models.group_member_info import GroupInfoUser
from zhenxun.models.sign_log import SignLog
from zhenxun.models.sign_user import SignUser
-from zhenxun.utils.platform import PlatformUtils
-from zhenxun.models.friend_user import FriendUser
-from zhenxun.configs.path_config import IMAGE_PATH
from zhenxun.models.user_console import UserConsole
-from zhenxun.models.group_member_info import GroupInfoUser
+from zhenxun.services.log import logger
from zhenxun.utils.image_utils import BuildImage, ImageTemplate
+from zhenxun.utils.platform import PlatformUtils
-from .utils import get_card
from ._random_event import random_event
+from .utils import get_card
ICON_PATH = IMAGE_PATH / "_icon"
diff --git a/zhenxun/builtin_plugins/sign_in/utils.py b/zhenxun/builtin_plugins/sign_in/utils.py
index 8083a0c0..6fc3dbf8 100644
--- a/zhenxun/builtin_plugins/sign_in/utils.py
+++ b/zhenxun/builtin_plugins/sign_in/utils.py
@@ -1,30 +1,30 @@
-import os
-import random
-from io import BytesIO
-from pathlib import Path
from datetime import datetime
+from io import BytesIO
+import os
+from pathlib import Path
+import random
-import pytz
import nonebot
from nonebot.drivers import Driver
-from nonebot_plugin_uninfo import Uninfo
from nonebot_plugin_htmlrender import template_to_pic
+from nonebot_plugin_uninfo import Uninfo
+import pytz
+from zhenxun.configs.config import BotConfig, Config
+from zhenxun.configs.path_config import IMAGE_PATH, TEMPLATE_PATH
from zhenxun.models.sign_log import SignLog
from zhenxun.models.sign_user import SignUser
from zhenxun.utils.http_utils import AsyncHttpx
from zhenxun.utils.image_utils import BuildImage
-from zhenxun.configs.config import Config, BotConfig
-from zhenxun.configs.path_config import IMAGE_PATH, TEMPLATE_PATH
from .config import (
+ SIGN_BACKGROUND_PATH,
SIGN_BORDER_PATH,
SIGN_RESOURCE_PATH,
- SIGN_BACKGROUND_PATH,
SIGN_TODAY_CARD_PATH,
+ level2attitude,
lik2level,
lik2relation,
- level2attitude,
)
assert (
diff --git a/zhenxun/builtin_plugins/statistics/__init__.py b/zhenxun/builtin_plugins/statistics/__init__.py
index 5cf30279..8090e1cf 100644
--- a/zhenxun/builtin_plugins/statistics/__init__.py
+++ b/zhenxun/builtin_plugins/statistics/__init__.py
@@ -25,7 +25,7 @@ statistics_user_file = DATA_PATH / "statistics" / "_prefix_user_count.json"
for file in [statistics_group_file, statistics_user_file]:
if file.exists():
- with open(file, "r", encoding="utf8") as f:
+ with open(file, encoding="utf8") as f:
data = json.load(f)
if not (statistics_group_file.parent / f"{file}.bak").exists():
with open(f"{file}.bak", "w", encoding="utf8") as wf:
diff --git a/zhenxun/builtin_plugins/statistics/_data_source.py b/zhenxun/builtin_plugins/statistics/_data_source.py
index 61f3981c..d51cb685 100644
--- a/zhenxun/builtin_plugins/statistics/_data_source.py
+++ b/zhenxun/builtin_plugins/statistics/_data_source.py
@@ -2,14 +2,14 @@ from datetime import datetime, timedelta
from tortoise.functions import Count
-from zhenxun.utils.enum import PluginType
-from zhenxun.models.statistics import Statistics
-from zhenxun.utils.image_utils import BuildImage
-from zhenxun.models.plugin_info import PluginInfo
-from zhenxun.utils.echart_utils import ChartUtils
-from zhenxun.utils.echart_utils.models import Barh
from zhenxun.models.group_console import GroupConsole
from zhenxun.models.group_member_info import GroupInfoUser
+from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.models.statistics import Statistics
+from zhenxun.utils.echart_utils import ChartUtils
+from zhenxun.utils.echart_utils.models import Barh
+from zhenxun.utils.enum import PluginType
+from zhenxun.utils.image_utils import BuildImage
class StatisticsManage:
diff --git a/zhenxun/builtin_plugins/statistics/statistics_hook.py b/zhenxun/builtin_plugins/statistics/statistics_hook.py
index 9842ad09..71455ac0 100644
--- a/zhenxun/builtin_plugins/statistics/statistics_hook.py
+++ b/zhenxun/builtin_plugins/statistics/statistics_hook.py
@@ -1,18 +1,18 @@
from datetime import datetime
-from nonebot.matcher import Matcher
from nonebot.adapters import Bot, Event
-from nonebot.plugin import PluginMetadata
-from nonebot.message import run_postprocessor
-from nonebot_plugin_session import EventSession
-from nonebot_plugin_apscheduler import scheduler
from nonebot.adapters.onebot.v11 import PokeNotifyEvent
+from nonebot.matcher import Matcher
+from nonebot.message import run_postprocessor
+from nonebot.plugin import PluginMetadata
+from nonebot_plugin_apscheduler import scheduler
+from nonebot_plugin_session import EventSession
-from zhenxun.services.log import logger
-from zhenxun.utils.enum import PluginType
-from zhenxun.models.statistics import Statistics
from zhenxun.configs.utils import PluginExtraData
from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.models.statistics import Statistics
+from zhenxun.services.log import logger
+from zhenxun.utils.enum import PluginType
__plugin_meta__ = PluginMetadata(
name="功能调用统计",
diff --git a/zhenxun/builtin_plugins/superuser/bot_manage/__init__.py b/zhenxun/builtin_plugins/superuser/bot_manage/__init__.py
index f196c167..a794c413 100644
--- a/zhenxun/builtin_plugins/superuser/bot_manage/__init__.py
+++ b/zhenxun/builtin_plugins/superuser/bot_manage/__init__.py
@@ -1,20 +1,7 @@
-import os
-import time
-
-from nonebot.rule import to_me
-from nonebot.utils import run_sync
-from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata
-from nonebot_plugin_session import EventSession
-from nonebot_plugin_apscheduler import scheduler
-from nonebot_plugin_alconna import Alconna, on_alconna
-from zhenxun.services.log import logger
-from zhenxun.utils.enum import PluginType
-from zhenxun.utils.message import MessageUtils
-from zhenxun.configs.path_config import TEMP_PATH
from zhenxun.configs.utils import PluginExtraData
-from zhenxun.utils.utils import ResourceDirManager
+from zhenxun.utils.enum import PluginType
__plugin_meta__ = PluginMetadata(
name="Bot管理",
diff --git a/zhenxun/builtin_plugins/superuser/broadcast/_data_source.py b/zhenxun/builtin_plugins/superuser/broadcast/_data_source.py
index 44d7ebba..195fc429 100644
--- a/zhenxun/builtin_plugins/superuser/broadcast/_data_source.py
+++ b/zhenxun/builtin_plugins/superuser/broadcast/_data_source.py
@@ -1,6 +1,5 @@
from nonebot.adapters import Bot
import nonebot_plugin_alconna as alc
-from nonebot_plugin_session import EventSession
# from nonebot.adapters.discord import Bot as DiscordBot
# from nonebot.adapters.dodo import Bot as DodoBot
@@ -8,11 +7,12 @@ from nonebot_plugin_session import EventSession
# from nonebot.adapters.onebot.v11 import Bot as v11Bot
# from nonebot.adapters.onebot.v12 import Bot as v12Bot
from nonebot_plugin_alconna import Image, UniMsg
+from nonebot_plugin_session import EventSession
from zhenxun.services.log import logger
+from zhenxun.utils.common_utils import CommonUtils
from zhenxun.utils.message import MessageUtils
from zhenxun.utils.platform import PlatformUtils
-from zhenxun.utils.common_utils import CommonUtils
class BroadcastManage:
diff --git a/zhenxun/builtin_plugins/superuser/clear_data.py b/zhenxun/builtin_plugins/superuser/clear_data.py
index 10770bf9..6c904942 100644
--- a/zhenxun/builtin_plugins/superuser/clear_data.py
+++ b/zhenxun/builtin_plugins/superuser/clear_data.py
@@ -47,10 +47,10 @@ async def _(session: EventSession):
await MessageUtils.build_message("开始清理临时数据...").send()
size = await _clear_data()
await MessageUtils.build_message(
- "共清理了 {:.2f}MB 的数据...".format(size / 1024 / 1024)
+ f"共清理了 {size / 1024 / 1024:.2f}MB 的数据..."
).send()
logger.info(
- "清理临时数据完成,共清理了 {:.2f}MB 的数据...".format(size / 1024 / 1024),
+ f"清理临时数据完成,共清理了 {size / 1024 / 1024:.2f}MB 的数据...",
session=session,
)
@@ -79,9 +79,7 @@ def _clear_data() -> float:
"清理临时数据",
e=e,
)
- logger.debug(
- "清理临时文件夹大小: {:.2f}MB".format(size / 1024 / 1024), "清理临时数据"
- )
+ logger.debug(f"清理临时文件夹大小: {size / 1024 / 1024:.2f}MB", "清理临时数据")
return float(size)
@@ -93,6 +91,6 @@ def _clear_data() -> float:
async def _():
size = await _clear_data()
logger.info(
- "自动清理临时数据完成,共清理了 {:.2f}MB 的数据...".format(size / 1024 / 1024),
+ f"自动清理临时数据完成,共清理了 {size / 1024 / 1024:.2f}MB 的数据...",
"定时任务",
)
diff --git a/zhenxun/builtin_plugins/superuser/exec_sql.py b/zhenxun/builtin_plugins/superuser/exec_sql.py
index 379e3445..44bcc73d 100644
--- a/zhenxun/builtin_plugins/superuser/exec_sql.py
+++ b/zhenxun/builtin_plugins/superuser/exec_sql.py
@@ -1,18 +1,18 @@
-from tortoise import Tortoise
from nonebot import on_command
-from nonebot.rule import to_me
from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata
+from nonebot.rule import to_me
from nonebot_plugin_alconna import UniMsg
from nonebot_plugin_session import EventSession
+from tortoise import Tortoise
-from zhenxun.services.log import logger
-from zhenxun.utils.enum import PluginType
from zhenxun.configs.config import BotConfig
-from zhenxun.utils.message import MessageUtils
from zhenxun.configs.utils import PluginExtraData
from zhenxun.models.ban_console import BanConsole
+from zhenxun.services.log import logger
+from zhenxun.utils.enum import PluginType
from zhenxun.utils.image_utils import ImageTemplate
+from zhenxun.utils.message import MessageUtils
__plugin_meta__ = PluginMetadata(
name="数据库操作",
@@ -57,7 +57,8 @@ SELECT name FROM sqlite_master WHERE type='table';
SELECT_TABLE_PSQL_SQL = """
select a.tablename as name,d.description as desc from pg_tables a
left join pg_class c on relname=tablename
- left join pg_description d on oid=objoid and objsubid=0 where a.schemaname = 'public'
+ left join pg_description d on oid=objoid and objsubid=0
+ where a.schemaname = 'public'
"""
diff --git a/zhenxun/builtin_plugins/superuser/fg_manage.py b/zhenxun/builtin_plugins/superuser/fg_manage.py
index e2ff51d7..3d1a0d3c 100644
--- a/zhenxun/builtin_plugins/superuser/fg_manage.py
+++ b/zhenxun/builtin_plugins/superuser/fg_manage.py
@@ -10,7 +10,6 @@ from zhenxun.configs.utils import PluginExtraData
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.message import MessageUtils
-from zhenxun.utils.rules import admin_check, ensure_group
__plugin_meta__ = PluginMetadata(
name="好友群组列表",
@@ -72,7 +71,7 @@ async def _(
msg = f"| UID | 昵称 | 共{len(fl)}个好友\n" + msg
await MessageUtils.build_message(msg).send()
logger.info("查看好友列表", "好友列表", session=session)
- except (ApiNotAvailable, AttributeError) as e:
+ except (ApiNotAvailable, AttributeError):
await MessageUtils.build_message("Api未实现...").send()
except Exception as e:
logger.error("好友列表发生错误", "好友列表", session=session, e=e)
@@ -92,7 +91,7 @@ async def _(
msg = f"| GID | 名称 | 共{len(gl)}个群组\n" + msg
await MessageUtils.build_message(msg).send()
logger.info("查看群组列表", "群组列表", session=session)
- except (ApiNotAvailable, AttributeError) as e:
+ except (ApiNotAvailable, AttributeError):
await MessageUtils.build_message("Api未实现...").send()
except Exception as e:
logger.error("查看群组列表发生错误", "群组列表", session=session, e=e)
diff --git a/zhenxun/builtin_plugins/superuser/group_manage.py b/zhenxun/builtin_plugins/superuser/group_manage.py
index 4c228c2a..3255b23b 100644
--- a/zhenxun/builtin_plugins/superuser/group_manage.py
+++ b/zhenxun/builtin_plugins/superuser/group_manage.py
@@ -204,8 +204,8 @@ async def _(bot: Bot, session: EventSession, arparma: Arparma, group_id: int):
await MessageUtils.build_message(f"退出群组 {group_id} 成功!").send()
await GroupConsole.filter(group_id=group_id).delete()
except Exception as e:
- logger.error(f"退出群组失败", "退群", session=session, target=group_id, e=e)
+ logger.error("退出群组失败", "退群", session=session, target=group_id, e=e)
await MessageUtils.build_message(f"退出群组 {group_id} 失败...").send()
else:
# TODO: 其他平台的退群操作
- await MessageUtils.build_message(f"暂未支持退群操作...").send()
+ await MessageUtils.build_message("暂未支持退群操作...").send()
diff --git a/zhenxun/builtin_plugins/superuser/set_admin.py b/zhenxun/builtin_plugins/superuser/set_admin.py
index 7feaf43c..ad02995e 100644
--- a/zhenxun/builtin_plugins/superuser/set_admin.py
+++ b/zhenxun/builtin_plugins/superuser/set_admin.py
@@ -1,22 +1,22 @@
from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata
-from nonebot_plugin_session import EventSession, SessionLevel
from nonebot_plugin_alconna import (
- At,
+ Alconna,
Args,
+ Arparma,
+ At,
Match,
Option,
- Alconna,
- Arparma,
Subcommand,
on_alconna,
)
+from nonebot_plugin_session import EventSession, SessionLevel
+from zhenxun.configs.utils import PluginExtraData
+from zhenxun.models.level_user import LevelUser
from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.message import MessageUtils
-from zhenxun.models.level_user import LevelUser
-from zhenxun.configs.utils import PluginExtraData
__plugin_meta__ = PluginMetadata(
name="用户权限管理",
diff --git a/zhenxun/builtin_plugins/superuser/super_help/__init__.py b/zhenxun/builtin_plugins/superuser/super_help/__init__.py
index d9b98097..681cf726 100644
--- a/zhenxun/builtin_plugins/superuser/super_help/__init__.py
+++ b/zhenxun/builtin_plugins/superuser/super_help/__init__.py
@@ -1,17 +1,17 @@
from nonebot.permission import SUPERUSER
from nonebot.plugin import PluginMetadata
-from nonebot_plugin_session import EventSession
from nonebot_plugin_alconna import Alconna, Arparma, on_alconna
+from nonebot_plugin_session import EventSession
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig
+from zhenxun.services.log import logger
from zhenxun.utils.enum import PluginType
from zhenxun.utils.exception import EmptyError
from zhenxun.utils.message import MessageUtils
-from zhenxun.configs.utils import RegisterConfig, PluginExtraData
-from .normal_help import build_help
from .config import SUPERUSER_HELP_IMAGE
+from .normal_help import build_help
from .zhenxun_help import build_html_help
__plugin_meta__ = PluginMetadata(
diff --git a/zhenxun/builtin_plugins/superuser/super_help/config.py b/zhenxun/builtin_plugins/superuser/super_help/config.py
index 55e32f51..5f5371d9 100644
--- a/zhenxun/builtin_plugins/superuser/super_help/config.py
+++ b/zhenxun/builtin_plugins/superuser/super_help/config.py
@@ -1,8 +1,8 @@
-from pydantic import BaseModel
from nonebot.plugin import PluginMetadata
+from pydantic import BaseModel
-from zhenxun.models.plugin_info import PluginInfo
from zhenxun.configs.path_config import IMAGE_PATH
+from zhenxun.models.plugin_info import PluginInfo
SUPERUSER_HELP_IMAGE = IMAGE_PATH / "SUPERUSER_HELP.png"
if SUPERUSER_HELP_IMAGE.exists():
diff --git a/zhenxun/builtin_plugins/superuser/super_help/normal_help.py b/zhenxun/builtin_plugins/superuser/super_help/normal_help.py
index 0fbdb774..7407e9e3 100644
--- a/zhenxun/builtin_plugins/superuser/super_help/normal_help.py
+++ b/zhenxun/builtin_plugins/superuser/super_help/normal_help.py
@@ -1,14 +1,14 @@
-from PIL.ImageFont import FreeTypeFont
from nonebot.plugin import PluginMetadata
+from PIL.ImageFont import FreeTypeFont
-from zhenxun.services.log import logger
-from zhenxun.models.task_info import TaskInfo
from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.models.task_info import TaskInfo
+from zhenxun.services.log import logger
from zhenxun.utils._build_image import BuildImage
-from zhenxun.utils.image_utils import text2image, group_image, build_sort_image
+from zhenxun.utils.image_utils import build_sort_image, group_image, text2image
-from .utils import get_plugins
from .config import SUPERUSER_HELP_IMAGE
+from .utils import get_plugins
async def build_usage_des_image(
diff --git a/zhenxun/builtin_plugins/superuser/super_help/utils.py b/zhenxun/builtin_plugins/superuser/super_help/utils.py
index 43ea0e6f..201687ec 100644
--- a/zhenxun/builtin_plugins/superuser/super_help/utils.py
+++ b/zhenxun/builtin_plugins/superuser/super_help/utils.py
@@ -1,8 +1,8 @@
import nonebot
+from zhenxun.models.plugin_info import PluginInfo
from zhenxun.utils.enum import PluginType
from zhenxun.utils.exception import EmptyError
-from zhenxun.models.plugin_info import PluginInfo
from .config import PluginData
diff --git a/zhenxun/builtin_plugins/superuser/super_help/zhenxun_help.py b/zhenxun/builtin_plugins/superuser/super_help/zhenxun_help.py
index cf389e87..0a93a160 100644
--- a/zhenxun/builtin_plugins/superuser/super_help/zhenxun_help.py
+++ b/zhenxun/builtin_plugins/superuser/super_help/zhenxun_help.py
@@ -1,12 +1,12 @@
from nonebot_plugin_htmlrender import template_to_pic
from zhenxun.configs.config import BotConfig
+from zhenxun.configs.path_config import TEMPLATE_PATH
from zhenxun.models.task_info import TaskInfo
from zhenxun.utils._build_image import BuildImage
-from zhenxun.configs.path_config import TEMPLATE_PATH
-from .utils import get_plugins
from .config import SUPERUSER_HELP_IMAGE
+from .utils import get_plugins
async def get_task() -> dict[str, str] | None:
diff --git a/zhenxun/builtin_plugins/web_ui/__init__.py b/zhenxun/builtin_plugins/web_ui/__init__.py
index 83ea0c80..bbea8708 100644
--- a/zhenxun/builtin_plugins/web_ui/__init__.py
+++ b/zhenxun/builtin_plugins/web_ui/__init__.py
@@ -1,29 +1,29 @@
import asyncio
import secrets
+from fastapi import APIRouter, FastAPI
import nonebot
-from fastapi import FastAPI, APIRouter
-from nonebot.plugin import PluginMetadata
from nonebot.log import default_filter, default_format
+from nonebot.plugin import PluginMetadata
-from zhenxun.utils.enum import PluginType
-from zhenxun.services.log import logger, logger_
from zhenxun.configs.config import Config as gConfig
-from zhenxun.configs.utils import RegisterConfig, PluginExtraData
+from zhenxun.configs.utils import PluginExtraData, RegisterConfig
+from zhenxun.services.log import logger, logger_
+from zhenxun.utils.enum import PluginType
-from .public import init_public
-from .auth import router as auth_router
from .api.logs import router as ws_log_routes
from .api.logs.log_manager import LOG_STORAGE
-from .api.tabs.main import router as main_router
-from .api.tabs.manage import router as manage_router
-from .api.tabs.system import router as system_router
-from .api.tabs.main import ws_router as status_routes
-from .api.tabs.database import router as database_router
from .api.tabs.dashboard import router as dashboard_router
+from .api.tabs.database import router as database_router
+from .api.tabs.main import router as main_router
+from .api.tabs.main import ws_router as status_routes
+from .api.tabs.manage import router as manage_router
from .api.tabs.manage.chat import ws_router as chat_routes
from .api.tabs.plugin_manage import router as plugin_router
from .api.tabs.plugin_manage.store import router as store_router
+from .api.tabs.system import router as system_router
+from .auth import router as auth_router
+from .public import init_public
__plugin_meta__ = PluginMetadata(
name="WebUi",
diff --git a/zhenxun/builtin_plugins/web_ui/api/logs/log_manager.py b/zhenxun/builtin_plugins/web_ui/api/logs/log_manager.py
index 83e0fb01..3938c525 100644
--- a/zhenxun/builtin_plugins/web_ui/api/logs/log_manager.py
+++ b/zhenxun/builtin_plugins/web_ui/api/logs/log_manager.py
@@ -1,6 +1,6 @@
import asyncio
+from collections.abc import Awaitable, Callable
from typing import Generic, TypeVar
-from collections.abc import Callable, Awaitable
_T = TypeVar("_T")
LogListener = Callable[[_T], Awaitable[None]]
diff --git a/zhenxun/builtin_plugins/web_ui/api/logs/logs.py b/zhenxun/builtin_plugins/web_ui/api/logs/logs.py
index 1a420583..b7fc660c 100644
--- a/zhenxun/builtin_plugins/web_ui/api/logs/logs.py
+++ b/zhenxun/builtin_plugins/web_ui/api/logs/logs.py
@@ -1,7 +1,7 @@
-from loguru import logger
from fastapi import APIRouter
+from loguru import logger
from nonebot.utils import escape_tag
-from starlette.websockets import WebSocket, WebSocketState, WebSocketDisconnect
+from starlette.websockets import WebSocket, WebSocketDisconnect, WebSocketState
from .log_manager import LOG_STORAGE
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/__init__.py
index 99ed6ea1..19482ba7 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/__init__.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/__init__.py
@@ -1,5 +1,5 @@
-from .database import *
-from .main import *
-from .manage import *
-from .plugin_manage import *
-from .system import *
+from .database import * # noqa: F403
+from .main import * # noqa: F403
+from .manage import * # noqa: F403
+from .plugin_manage import * # noqa: F403
+from .system import * # noqa: F403
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/__init__.py
index 2375d4bf..a17c6a8f 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/__init__.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/__init__.py
@@ -1,21 +1,21 @@
from datetime import datetime, timedelta
+from fastapi import APIRouter
+from fastapi.responses import JSONResponse
import nonebot
from nonebot import require
-from fastapi import APIRouter
from nonebot.config import Config
-from tortoise.functions import Count
from tortoise.expressions import RawSQL
-from fastapi.responses import JSONResponse
+from tortoise.functions import Count
-from zhenxun.models.statistics import Statistics
-from zhenxun.models.chat_history import ChatHistory
+from builtin_plugins.web_ui.base_model import BaseResultModel, QueryModel, Result
+from builtin_plugins.web_ui.utils import authentication
from zhenxun.models.bot_connect_log import BotConnectLog
+from zhenxun.models.chat_history import ChatHistory
+from zhenxun.models.statistics import Statistics
from .data_source import BotManage
-from ....utils import authentication
-from ....base_model import Result, QueryModel, BaseResultModel
-from .model import BotInfo, ChatCallMonthCount, QueryChatCallCount, AllChatAndCallCount
+from .model import AllChatAndCallCount, BotInfo, ChatCallMonthCount, QueryChatCallCount
require("plugin_store")
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/data_source.py b/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/data_source.py
index c4d196c8..d1b2ed1f 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/data_source.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/dashboard/data_source.py
@@ -1,16 +1,16 @@
-import time
from datetime import datetime, timedelta
+import time
import nonebot
from nonebot.adapters import Bot
from nonebot.drivers import Driver
+from builtin_plugins.web_ui.api.tabs.main.data_source import bot_live
+from zhenxun.models.chat_history import ChatHistory
from zhenxun.models.statistics import Statistics
from zhenxun.utils.platform import PlatformUtils
-from zhenxun.models.chat_history import ChatHistory
from .model import BotInfo
-from ..main.data_source import bot_live
driver: Driver = nonebot.get_driver()
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/database/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/database/__init__.py
index 8ec609e5..48cba883 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/database/__init__.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/database/__init__.py
@@ -1,18 +1,18 @@
-import nonebot
-from tortoise import Tortoise
-from nonebot.drivers import Driver
-from fastapi import Request, APIRouter
+from fastapi import APIRouter, Request
from fastapi.responses import JSONResponse
+import nonebot
+from nonebot.drivers import Driver
+from tortoise import Tortoise
from tortoise.exceptions import OperationalError
+from builtin_plugins.web_ui.base_model import BaseResultModel, QueryModel, Result
+from builtin_plugins.web_ui.utils import authentication
from zhenxun.configs.config import BotConfig
-from zhenxun.models.task_info import TaskInfo
from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.models.task_info import TaskInfo
+from .models.model import Column, SqlModel, SqlText
from .models.sql_log import SqlLog
-from ....utils import authentication
-from .models.model import Column, SqlText, SqlModel
-from ....base_model import Result, QueryModel, BaseResultModel
router = APIRouter(prefix="/database")
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/main/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/main/__init__.py
index 98361268..4375fa8f 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/main/__init__.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/main/__init__.py
@@ -1,35 +1,35 @@
-import time
import asyncio
import contextlib
-from pathlib import Path
from datetime import datetime, timedelta
+from pathlib import Path
+import time
-import nonebot
from fastapi import APIRouter
-from nonebot.config import Config
-from tortoise.functions import Count
from fastapi.responses import JSONResponse
-from websockets.exceptions import ConnectionClosedOK, ConnectionClosedError
-from starlette.websockets import WebSocket, WebSocketState, WebSocketDisconnect
+import nonebot
+from nonebot.config import Config
+from starlette.websockets import WebSocket, WebSocketDisconnect, WebSocketState
+from tortoise.functions import Count
+from websockets.exceptions import ConnectionClosedError, ConnectionClosedOK
-from zhenxun.services.log import logger
-from zhenxun.models.statistics import Statistics
-from zhenxun.utils.platform import PlatformUtils
-from zhenxun.models.plugin_info import PluginInfo
+from builtin_plugins.web_ui.base_model import Result
+from builtin_plugins.web_ui.config import AVA_URL, GROUP_AVA_URL, QueryDateType
+from builtin_plugins.web_ui.utils import authentication, get_system_status
+from zhenxun.models.bot_connect_log import BotConnectLog
from zhenxun.models.chat_history import ChatHistory
from zhenxun.models.group_console import GroupConsole
-from zhenxun.models.bot_connect_log import BotConnectLog
+from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.models.statistics import Statistics
+from zhenxun.services.log import logger
+from zhenxun.utils.platform import PlatformUtils
-from ....base_model import Result
from .data_source import bot_live
-from ....utils import authentication, get_system_status
-from ....config import AVA_URL, GROUP_AVA_URL, QueryDateType
from .model import (
+ ActiveGroup,
BaseInfo,
HotPlugin,
- QueryCount,
- ActiveGroup,
NonebotData,
+ QueryCount,
TemplateBaseInfo,
)
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/main/data_source.py b/zhenxun/builtin_plugins/web_ui/api/tabs/main/data_source.py
index 281ac701..ca445016 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/main/data_source.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/main/data_source.py
@@ -1,8 +1,8 @@
import time
import nonebot
-from nonebot.drivers import Driver
from nonebot.adapters.onebot.v11 import Bot
+from nonebot.drivers import Driver
driver: Driver = nonebot.get_driver()
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/main/model.py b/zhenxun/builtin_plugins/web_ui/api/tabs/main/model.py
index 92834245..95a65515 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/main/model.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/main/model.py
@@ -1,6 +1,6 @@
-from pydantic import BaseModel
from nonebot.adapters import Bot
from nonebot.config import Config
+from pydantic import BaseModel
class SystemStatus(BaseModel):
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/manage/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/manage/__init__.py
index bad05975..c59a60be 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/manage/__init__.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/manage/__init__.py
@@ -1,41 +1,41 @@
-import nonebot
from fastapi import APIRouter
-from tortoise.functions import Count
from fastapi.responses import JSONResponse
+import nonebot
from nonebot.adapters.onebot.v11 import ActionFailed
+from tortoise.functions import Count
-from zhenxun.services.log import logger
+from builtin_plugins.web_ui.base_model import Result
+from builtin_plugins.web_ui.config import AVA_URL, GROUP_AVA_URL
+from builtin_plugins.web_ui.utils import authentication
from zhenxun.configs.config import BotConfig
-from zhenxun.models.task_info import TaskInfo
-from zhenxun.models.fg_request import FgRequest
-from zhenxun.models.statistics import Statistics
-from zhenxun.utils.platform import PlatformUtils
from zhenxun.models.ban_console import BanConsole
-from zhenxun.models.plugin_info import PluginInfo
-from zhenxun.utils.exception import NotFoundError
from zhenxun.models.chat_history import ChatHistory
+from zhenxun.models.fg_request import FgRequest
from zhenxun.models.group_console import GroupConsole
-from zhenxun.utils.enum import RequestType, RequestHandleType
+from zhenxun.models.plugin_info import PluginInfo
+from zhenxun.models.statistics import Statistics
+from zhenxun.models.task_info import TaskInfo
+from zhenxun.services.log import logger
+from zhenxun.utils.enum import RequestHandleType, RequestType
+from zhenxun.utils.exception import NotFoundError
+from zhenxun.utils.platform import PlatformUtils
-from ....base_model import Result
-from ....utils import authentication
-from ....config import AVA_URL, GROUP_AVA_URL
from .model import (
- Task,
- Friend,
- Plugin,
- ReqResult,
- LeaveGroup,
- UserDetail,
- GroupDetail,
- GroupResult,
- SendMessage,
- UpdateGroup,
ClearRequest,
DeleteFriend,
- HandleRequest,
- GroupRequestResult,
+ Friend,
FriendRequestResult,
+ GroupDetail,
+ GroupRequestResult,
+ GroupResult,
+ HandleRequest,
+ LeaveGroup,
+ Plugin,
+ ReqResult,
+ SendMessage,
+ Task,
+ UpdateGroup,
+ UserDetail,
)
router = APIRouter(prefix="/manage")
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/manage/chat.py b/zhenxun/builtin_plugins/web_ui/api/tabs/manage/chat.py
index 7927536e..d9b54b82 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/manage/chat.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/manage/chat.py
@@ -1,15 +1,15 @@
-import nonebot
from fastapi import APIRouter
+import nonebot
from nonebot import on_message
-from nonebot_plugin_session import EventSession
from nonebot.adapters.onebot.v11 import MessageEvent
-from nonebot_plugin_alconna import At, Text, Hyper, Image, UniMsg
-from starlette.websockets import WebSocket, WebSocketState, WebSocketDisconnect
+from nonebot_plugin_alconna import At, Hyper, Image, Text, UniMsg
+from nonebot_plugin_session import EventSession
+from starlette.websockets import WebSocket, WebSocketDisconnect, WebSocketState
-from zhenxun.utils.depends import UserName
+from builtin_plugins.web_ui.config import AVA_URL
from zhenxun.models.group_member_info import GroupInfoUser
+from zhenxun.utils.depends import UserName
-from ....config import AVA_URL
from .model import Message, MessageItem
driver = nonebot.get_driver()
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/__init__.py
index e4c876e4..0e59e49e 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/__init__.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/__init__.py
@@ -1,21 +1,21 @@
import re
import cattrs
-from fastapi import Query, APIRouter
+from fastapi import APIRouter, Query
from fastapi.responses import JSONResponse
-from zhenxun.services.log import logger
+from builtin_plugins.web_ui.base_model import Result
+from builtin_plugins.web_ui.utils import authentication
from zhenxun.configs.config import Config
-from zhenxun.utils.enum import BlockType, PluginType
from zhenxun.models.plugin_info import PluginInfo as DbPluginInfo
+from zhenxun.services.log import logger
+from zhenxun.utils.enum import BlockType, PluginType
-from ....base_model import Result
-from ....utils import authentication
from .model import (
- PluginInfo,
- PluginCount,
PluginConfig,
+ PluginCount,
PluginDetail,
+ PluginInfo,
PluginSwitch,
UpdatePlugin,
)
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/store.py b/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/store.py
index 41869068..2ed3c03c 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/store.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/plugin_manage/store.py
@@ -1,12 +1,12 @@
-from nonebot import require
from fastapi import APIRouter
from fastapi.responses import JSONResponse
+from nonebot import require
+from builtin_plugins.web_ui.base_model import Result
+from builtin_plugins.web_ui.utils import authentication
from zhenxun.models.plugin_info import PluginInfo
from .model import PluginIr
-from ....base_model import Result
-from ....utils import authentication
router = APIRouter(prefix="/store")
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/system/__init__.py b/zhenxun/builtin_plugins/web_ui/api/tabs/system/__init__.py
index c81a06ff..6d6044e9 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/system/__init__.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/system/__init__.py
@@ -1,16 +1,16 @@
import os
-import shutil
from pathlib import Path
+import shutil
import aiofiles
from fastapi import APIRouter
from fastapi.responses import JSONResponse
+from builtin_plugins.web_ui.base_model import Result, SystemFolderSize
+from builtin_plugins.web_ui.utils import authentication, get_system_disk
from zhenxun.utils._build_image import BuildImage
-from ....base_model import Result, SystemFolderSize
-from ....utils import authentication, get_system_disk
-from .model import AddFile, DirFile, SaveFile, DeleteFile, RenameFile
+from .model import AddFile, DeleteFile, DirFile, RenameFile, SaveFile
router = APIRouter(prefix="/system")
diff --git a/zhenxun/builtin_plugins/web_ui/api/tabs/system/model.py b/zhenxun/builtin_plugins/web_ui/api/tabs/system/model.py
index 7cabc86a..e84d6190 100644
--- a/zhenxun/builtin_plugins/web_ui/api/tabs/system/model.py
+++ b/zhenxun/builtin_plugins/web_ui/api/tabs/system/model.py
@@ -1,6 +1,3 @@
-from datetime import datetime
-from typing import Literal, Optional
-
from pydantic import BaseModel
@@ -15,7 +12,7 @@ class DirFile(BaseModel):
"""是否为图片"""
name: str
"""文件夹或文件名称"""
- parent: Optional[str] = None
+ parent: str | None = None
"""父级"""
@@ -33,7 +30,7 @@ class RenameFile(BaseModel):
删除文件
"""
- parent: Optional[str]
+ parent: str | None
"""父路径"""
old_name: str
"""旧名称"""
@@ -46,7 +43,7 @@ class AddFile(BaseModel):
新建文件
"""
- parent: Optional[str]
+ parent: str | None
"""父路径"""
name: str
"""新名称"""
diff --git a/zhenxun/builtin_plugins/web_ui/auth/__init__.py b/zhenxun/builtin_plugins/web_ui/auth/__init__.py
index d5a4ead7..f2080f14 100644
--- a/zhenxun/builtin_plugins/web_ui/auth/__init__.py
+++ b/zhenxun/builtin_plugins/web_ui/auth/__init__.py
@@ -1,20 +1,20 @@
-import json
from datetime import timedelta
+import json
-import nonebot
+import aiofiles
from fastapi import APIRouter, Depends
from fastapi.security import OAuth2PasswordRequestForm
+import nonebot
-from zhenxun.configs.config import Config
-
-from ..base_model import Result
-from ..utils import (
+from builtin_plugins.web_ui.base_model import Result
+from builtin_plugins.web_ui.utils import (
ACCESS_TOKEN_EXPIRE_MINUTES,
create_token,
get_user,
token_data,
token_file,
)
+from zhenxun.configs.config import Config
app = nonebot.get_app()
@@ -40,8 +40,8 @@ async def login_get_token(form_data: OAuth2PasswordRequestForm = Depends()):
token_data["token"].append(access_token)
if len(token_data["token"]) > 3:
token_data["token"] = token_data["token"][1:]
- with open(token_file, "w", encoding="utf8") as f:
- json.dump(token_data, f, ensure_ascii=False, indent=4)
+ async with aiofiles.open(token_file, "w", encoding="utf8") as f:
+ await f.write(json.dumps(token_data, ensure_ascii=False, indent=4))
return Result.ok(
{"access_token": access_token, "token_type": "bearer"}, "欢迎回家, 欧尼酱!"
)
diff --git a/zhenxun/builtin_plugins/web_ui/config.py b/zhenxun/builtin_plugins/web_ui/config.py
index 4fa6fa77..bddcb062 100644
--- a/zhenxun/builtin_plugins/web_ui/config.py
+++ b/zhenxun/builtin_plugins/web_ui/config.py
@@ -1,6 +1,6 @@
+from fastapi.middleware.cors import CORSMiddleware
import nonebot
from strenum import StrEnum
-from fastapi.middleware.cors import CORSMiddleware
from zhenxun.configs.path_config import DATA_PATH, TEMP_PATH
diff --git a/zhenxun/builtin_plugins/web_ui/public/__init__.py b/zhenxun/builtin_plugins/web_ui/public/__init__.py
index 389c60e9..ff260282 100644
--- a/zhenxun/builtin_plugins/web_ui/public/__init__.py
+++ b/zhenxun/builtin_plugins/web_ui/public/__init__.py
@@ -1,10 +1,10 @@
-from fastapi import FastAPI, APIRouter
+from fastapi import APIRouter, FastAPI
from fastapi.responses import FileResponse
from fastapi.staticfiles import StaticFiles
+from builtin_plugins.web_ui.config import PUBLIC_PATH
from zhenxun.services.log import logger
-from ..config import PUBLIC_PATH
from .data_source import COMMAND_NAME, update_webui_assets
router = APIRouter()
diff --git a/zhenxun/builtin_plugins/web_ui/public/data_source.py b/zhenxun/builtin_plugins/web_ui/public/data_source.py
index a1645178..18f41cc0 100644
--- a/zhenxun/builtin_plugins/web_ui/public/data_source.py
+++ b/zhenxun/builtin_plugins/web_ui/public/data_source.py
@@ -1,14 +1,13 @@
+from pathlib import Path
import shutil
import zipfile
-from pathlib import Path
from nonebot.utils import run_sync
+from builtin_plugins.web_ui.config import PUBLIC_PATH, TMP_PATH, WEBUI_DIST_GITHUB_URL
from zhenxun.services.log import logger
-from zhenxun.utils.http_utils import AsyncHttpx
from zhenxun.utils.github_utils import GithubUtils
-
-from ..config import TMP_PATH, PUBLIC_PATH, WEBUI_DIST_GITHUB_URL
+from zhenxun.utils.http_utils import AsyncHttpx
COMMAND_NAME = "WebUI资源管理"
diff --git a/zhenxun/builtin_plugins/web_ui/utils.py b/zhenxun/builtin_plugins/web_ui/utils.py
index 6d2d2235..df2fdd35 100644
--- a/zhenxun/builtin_plugins/web_ui/utils.py
+++ b/zhenxun/builtin_plugins/web_ui/utils.py
@@ -1,19 +1,19 @@
-import os
import contextlib
+from datetime import datetime, timedelta, timezone
+import os
from pathlib import Path
-from datetime import datetime, timezone, timedelta
-import psutil
-import ujson as json
-from jose import JWTError, jwt
-from nonebot.utils import run_sync
from fastapi import Depends, HTTPException
from fastapi.security import OAuth2PasswordBearer
+from jose import JWTError, jwt
+from nonebot.utils import run_sync
+import psutil
+import ujson as json
from zhenxun.configs.config import Config
from zhenxun.configs.path_config import DATA_PATH
-from .base_model import User, SystemStatus, SystemFolderSize
+from .base_model import SystemFolderSize, SystemStatus, User
ALGORITHM = "HS256"
ACCESS_TOKEN_EXPIRE_MINUTES = 30
diff --git a/zhenxun/builtin_plugins/withdraw.py b/zhenxun/builtin_plugins/withdraw.py
index 81056e2c..fb72912a 100644
--- a/zhenxun/builtin_plugins/withdraw.py
+++ b/zhenxun/builtin_plugins/withdraw.py
@@ -1,15 +1,15 @@
-from nonebot.rule import Rule
from nonebot.adapters import Bot, Event
-from nonebot_plugin_uninfo import Uninfo
from nonebot.plugin import PluginMetadata
-from nonebot_plugin_alconna.uniseg.tools import reply_fetch
+from nonebot.rule import Rule
from nonebot_plugin_alconna import Alconna, Arparma, on_alconna
+from nonebot_plugin_alconna.uniseg.tools import reply_fetch
+from nonebot_plugin_uninfo import Uninfo
+from zhenxun.configs.utils import PluginExtraData
from zhenxun.services.log import logger
+from zhenxun.utils.manager.message_manager import MessageManager
from zhenxun.utils.message import MessageUtils
from zhenxun.utils.platform import PlatformUtils
-from zhenxun.configs.utils import PluginExtraData
-from zhenxun.utils.manager.message_manager import MessageManager
__plugin_meta__ = PluginMetadata(
name="消息撤回",
diff --git a/zhenxun/configs/path_config.py b/zhenxun/configs/path_config.py
index 1a22cb02..e100ca2d 100644
--- a/zhenxun/configs/path_config.py
+++ b/zhenxun/configs/path_config.py
@@ -18,7 +18,6 @@ TEMP_PATH = Path() / "resources" / "temp"
TEMPLATE_PATH = Path() / "resources" / "template"
-
IMAGE_PATH.mkdir(parents=True, exist_ok=True)
RECORD_PATH.mkdir(parents=True, exist_ok=True)
TEXT_PATH.mkdir(parents=True, exist_ok=True)
@@ -26,8 +25,3 @@ LOG_PATH.mkdir(parents=True, exist_ok=True)
FONT_PATH.mkdir(parents=True, exist_ok=True)
DATA_PATH.mkdir(parents=True, exist_ok=True)
TEMP_PATH.mkdir(parents=True, exist_ok=True)
-
-
-
-
-
diff --git a/zhenxun/configs/utils/__init__.py b/zhenxun/configs/utils/__init__.py
index fd0a0839..5518e1c3 100644
--- a/zhenxun/configs/utils/__init__.py
+++ b/zhenxun/configs/utils/__init__.py
@@ -1,16 +1,16 @@
-import copy
-from typing import Any
-from pathlib import Path
from collections.abc import Callable
+import copy
+from pathlib import Path
+from typing import Any
import cattrs
-from ruamel.yaml import YAML
from pydantic import BaseModel
+from ruamel.yaml import YAML
from ruamel.yaml.scanner import ScannerError
-from zhenxun.services.log import logger
from zhenxun.configs.path_config import DATA_PATH
-from zhenxun.utils.enum import BlockType, PluginType, LimitWatchType, PluginLimitType
+from zhenxun.services.log import logger
+from zhenxun.utils.enum import BlockType, LimitWatchType, PluginLimitType, PluginType
_yaml = YAML(pure=True)
_yaml.indent = 2
diff --git a/zhenxun/models/bag_user.py b/zhenxun/models/bag_user.py
index 711de8f7..9f829abe 100644
--- a/zhenxun/models/bag_user.py
+++ b/zhenxun/models/bag_user.py
@@ -1,5 +1,3 @@
-from typing import Dict
-
from tortoise import fields
from zhenxun.services.db_context import Model
@@ -8,7 +6,6 @@ from .goods_info import GoodsInfo
class BagUser(Model):
-
id = fields.IntField(pk=True, generated=True, auto_increment=True)
"""自增id"""
user_id = fields.CharField(255)
@@ -25,7 +22,7 @@ class BagUser(Model):
"""今日获取金币"""
spend_today_gold = fields.IntField(default=0)
"""今日获取金币"""
- property: Dict[str, int] = fields.JSONField(default={}) # type: ignore
+ property: dict[str, int] = fields.JSONField(default={}) # type: ignore
"""道具"""
class Meta:
@@ -50,7 +47,7 @@ class BagUser(Model):
@classmethod
async def get_property(
cls, user_id: str, group_id: str, only_active: bool = False
- ) -> Dict[str, int]:
+ ) -> dict[str, int]:
"""获取当前道具
参数:
@@ -153,8 +150,10 @@ class BagUser(Model):
@classmethod
async def _run_script(cls):
return [
- "ALTER TABLE bag_users DROP props;", # 删除 props 字段
- "ALTER TABLE bag_users RENAME COLUMN user_qq TO user_id;", # 将user_qq改为user_id
+ # 删除 props 字段
+ "ALTER TABLE bag_users DROP props;",
+ # 将user_qq改为user_id
+ "ALTER TABLE bag_users RENAME COLUMN user_qq TO user_id;",
"ALTER TABLE bag_users ALTER COLUMN user_id TYPE character varying(255);",
# 将user_id字段类型改为character varying(255)
"ALTER TABLE bag_users ALTER COLUMN group_id TYPE character varying(255);",
diff --git a/zhenxun/models/ban_console.py b/zhenxun/models/ban_console.py
index d66d8c2c..5b9e5b2a 100644
--- a/zhenxun/models/ban_console.py
+++ b/zhenxun/models/ban_console.py
@@ -3,8 +3,8 @@ from typing_extensions import Self
from tortoise import fields
-from zhenxun.services.log import logger
from zhenxun.services.db_context import Model
+from zhenxun.services.log import logger
from zhenxun.utils.exception import UserAndGroupIsNone
diff --git a/zhenxun/models/chat_history.py b/zhenxun/models/chat_history.py
index dd603683..5e23887d 100644
--- a/zhenxun/models/chat_history.py
+++ b/zhenxun/models/chat_history.py
@@ -1,15 +1,14 @@
from datetime import datetime, timedelta
from typing import Literal
+from typing_extensions import Self
from tortoise import fields
from tortoise.functions import Count
-from typing_extensions import Self
from zhenxun.services.db_context import Model
class ChatHistory(Model):
-
id = fields.IntField(pk=True, generated=True, auto_increment=True)
"""自增id"""
user_id = fields.CharField(255)
@@ -27,7 +26,7 @@ class ChatHistory(Model):
platform = fields.CharField(255, null=True)
"""平台"""
- class Meta: # type: ignore
+ class Meta: # type: ignore
table = "chat_history"
table_description = "聊天记录数据表"
@@ -116,13 +115,20 @@ class ChatHistory(Model):
@classmethod
async def _run_script(cls):
return [
- "alter table chat_history alter group_id drop not null;", # 允许 group_id 为空
- "alter table chat_history alter text drop not null;", # 允许 text 为空
- "alter table chat_history alter plain_text drop not null;", # 允许 plain_text 为空
- "ALTER TABLE chat_history RENAME COLUMN user_qq TO user_id;", # 将user_id改为user_id
- "ALTER TABLE chat_history ALTER COLUMN user_id TYPE character varying(255);",
- "ALTER TABLE chat_history ALTER COLUMN group_id TYPE character varying(255);",
- "ALTER TABLE chat_history ADD bot_id VARCHAR(255);", # 添加bot_id字段
+ # 允许 group_id 为空
+ "alter table chat_history alter group_id drop not null;",
+ # 允许 text 为空
+ "alter table chat_history alter text drop not null;",
+ # 允许 plain_text 为空
+ "alter table chat_history alter plain_text drop not null;",
+ # 将user_id改为user_id
+ "ALTER TABLE chat_history RENAME COLUMN user_qq TO user_id;",
+ "ALTER TABLE chat_history "
+ "ALTER COLUMN user_id TYPE character varying(255);",
+ "ALTER TABLE chat_history "
+ "ALTER COLUMN group_id TYPE character varying(255);",
+ # 添加bot_id字段
+ "ALTER TABLE chat_history ADD bot_id VARCHAR(255);",
"ALTER TABLE chat_history ALTER COLUMN bot_id TYPE character varying(255);",
"ALTER TABLE chat_history ADD COLUMN platform character varying(255);",
]
diff --git a/zhenxun/models/fg_request.py b/zhenxun/models/fg_request.py
index 6a62fa8d..899ae5dd 100644
--- a/zhenxun/models/fg_request.py
+++ b/zhenxun/models/fg_request.py
@@ -1,10 +1,10 @@
-from tortoise import fields
from nonebot.adapters import Bot
+from tortoise import fields
-from zhenxun.services.db_context import Model
-from zhenxun.utils.exception import NotFoundError
from zhenxun.models.group_console import GroupConsole
-from zhenxun.utils.enum import RequestType, RequestHandleType
+from zhenxun.services.db_context import Model
+from zhenxun.utils.enum import RequestHandleType, RequestType
+from zhenxun.utils.exception import NotFoundError
class FgRequest(Model):
diff --git a/zhenxun/models/friend_user.py b/zhenxun/models/friend_user.py
index 597ce4f1..e4e5ca03 100644
--- a/zhenxun/models/friend_user.py
+++ b/zhenxun/models/friend_user.py
@@ -1,5 +1,3 @@
-from typing import Union
-
from tortoise import fields
from zhenxun.configs.config import Config
@@ -78,6 +76,8 @@ class FriendUser(Model):
@classmethod
def _run_script(cls):
return [
- "ALTER TABLE friend_users ALTER COLUMN user_id TYPE character varying(255);",
- "ALTER TABLE friend_users ADD COLUMN platform character varying(255) default 'qq';",
+ "ALTER TABLE friend_users "
+ "ALTER COLUMN user_id TYPE character varying(255);",
+ "ALTER TABLE friend_users "
+ "ADD COLUMN platform character varying(255) default 'qq';",
]
diff --git a/zhenxun/models/goods_info.py b/zhenxun/models/goods_info.py
index f776500b..4560d903 100644
--- a/zhenxun/models/goods_info.py
+++ b/zhenxun/models/goods_info.py
@@ -1,8 +1,7 @@
+from typing_extensions import Self
import uuid
-from typing import Dict
from tortoise import fields
-from typing_extensions import Self
from zhenxun.services.db_context import Model
@@ -147,7 +146,7 @@ class GoodsInfo(Model):
goods_lst = []
for _ in range(len(query)):
min_id = min(id_lst)
- goods_lst.append([x for x in query if x.id == min_id][0])
+ goods_lst.append(next(x for x in query if x.id == min_id))
id_lst.remove(min_id)
return goods_lst
@@ -158,5 +157,6 @@ class GoodsInfo(Model):
"ALTER TABLE goods_info ADD daily_limit Integer DEFAULT 0;",
"ALTER TABLE goods_info ADD is_passive boolean DEFAULT False;",
"ALTER TABLE goods_info ADD icon VARCHAR(255);",
- "ALTER TABLE goods_info DROP daily_purchase_limit;", # 删除 daily_purchase_limit 字段
+ # 删除 daily_purchase_limit 字段
+ "ALTER TABLE goods_info DROP daily_purchase_limit;",
]
diff --git a/zhenxun/models/group_member_info.py b/zhenxun/models/group_member_info.py
index dc9100ca..edb74d66 100644
--- a/zhenxun/models/group_member_info.py
+++ b/zhenxun/models/group_member_info.py
@@ -1,5 +1,3 @@
-from typing import Set
-
from tortoise import fields
from zhenxun.configs.config import Config
@@ -30,7 +28,7 @@ class GroupInfoUser(Model):
unique_together = ("user_id", "group_id")
@classmethod
- async def get_all_uid(cls, group_id: str) -> Set[int]:
+ async def get_all_uid(cls, group_id: str) -> set[int]:
"""获取该群所有用户id
参数:
@@ -101,11 +99,18 @@ class GroupInfoUser(Model):
@classmethod
async def _run_script(cls):
return [
- "alter table group_info_users alter user_join_time drop not null;", # 允许 user_join_time 为空
- "ALTER TABLE group_info_users ALTER COLUMN user_join_time TYPE timestamp with time zone USING user_join_time::timestamp with time zone;",
- "ALTER TABLE group_info_users RENAME COLUMN user_qq TO user_id;", # 将user_id改为user_id
- "ALTER TABLE group_info_users ALTER COLUMN user_id TYPE character varying(255);",
+ # 允许 user_join_time 为空
+ "alter table group_info_users alter user_join_time drop not null;",
+ "ALTER TABLE group_info_users "
+ "ALTER COLUMN user_join_time TYPE timestamp with time zone "
+ "USING user_join_time::timestamp with time zone;",
+ # 将user_id改为user_id
+ "ALTER TABLE group_info_users RENAME COLUMN user_qq TO user_id;",
+ "ALTER TABLE group_info_users "
+ "ALTER COLUMN user_id TYPE character varying(255);",
# 将user_id字段类型改为character varying(255)
- "ALTER TABLE group_info_users ALTER COLUMN group_id TYPE character varying(255);",
- "ALTER TABLE group_info_users ADD COLUMN platform character varying(255) default 'qq';",
+ "ALTER TABLE group_info_users "
+ "ALTER COLUMN group_id TYPE character varying(255);",
+ "ALTER TABLE group_info_users "
+ "ADD COLUMN platform character varying(255) default 'qq';",
]
diff --git a/zhenxun/models/level_user.py b/zhenxun/models/level_user.py
index c2c4fc31..72ed26e1 100644
--- a/zhenxun/models/level_user.py
+++ b/zhenxun/models/level_user.py
@@ -1,6 +1,3 @@
-from datetime import datetime
-from typing import Union
-
from tortoise import fields
from zhenxun.services.db_context import Model
@@ -120,8 +117,11 @@ class LevelUser(Model):
@classmethod
async def _run_script(cls):
return [
- "ALTER TABLE level_users RENAME COLUMN user_qq TO user_id;", # 将user_id改为user_id
- "ALTER TABLE level_users ALTER COLUMN user_id TYPE character varying(255);",
+ # 将user_id改为user_id
+ "ALTER TABLE level_users RENAME COLUMN user_qq TO user_id;",
+ "ALTER TABLE level_users "
+ "ALTER COLUMN user_id TYPE character varying(255);",
# 将user_id字段类型改为character varying(255)
- "ALTER TABLE level_users ALTER COLUMN group_id TYPE character varying(255);",
+ "ALTER TABLE level_users "
+ "ALTER COLUMN group_id TYPE character varying(255);",
]
diff --git a/zhenxun/models/plugin_info.py b/zhenxun/models/plugin_info.py
index d93e7c6e..aea208bd 100644
--- a/zhenxun/models/plugin_info.py
+++ b/zhenxun/models/plugin_info.py
@@ -2,9 +2,9 @@ from typing_extensions import Self
from tortoise import fields
+from zhenxun.models.plugin_limit import PluginLimit # noqa: F401
from zhenxun.services.db_context import Model
from zhenxun.utils.enum import BlockType, PluginType
-from zhenxun.models.plugin_limit import PluginLimit # noqa: F401
class PluginInfo(Model):
diff --git a/zhenxun/models/sign_group_user.py b/zhenxun/models/sign_group_user.py
index ca397270..6aab53d1 100644
--- a/zhenxun/models/sign_group_user.py
+++ b/zhenxun/models/sign_group_user.py
@@ -1,5 +1,4 @@
from datetime import datetime
-from typing import List, Literal, Optional, Tuple, Union
from tortoise import fields
@@ -7,7 +6,6 @@ from zhenxun.services.db_context import Model
class SignGroupUser(Model):
-
id = fields.IntField(pk=True, generated=True, auto_increment=True)
"""自增id"""
user_id = fields.CharField(255)
@@ -49,8 +47,8 @@ class SignGroupUser(Model):
@classmethod
async def get_all_impression(
- cls, group_id: Union[int, str]
- ) -> Tuple[List[str], List[float], List[str]]:
+ cls, group_id: int | str
+ ) -> tuple[list[str], list[float], list[str]]:
"""
说明:
获取该群所有用户 id 及对应 好感度
@@ -74,8 +72,11 @@ class SignGroupUser(Model):
@classmethod
async def _run_script(cls):
return [
- "ALTER TABLE sign_group_users RENAME COLUMN user_qq TO user_id;", # 将user_id改为user_id
- "ALTER TABLE sign_group_users ALTER COLUMN user_id TYPE character varying(255);",
+ # 将user_id改为user_id
+ "ALTER TABLE sign_group_users RENAME COLUMN user_qq TO user_id;",
+ "ALTER TABLE sign_group_users "
+ "ALTER COLUMN user_id TYPE character varying(255);",
# 将user_id字段类型改为character varying(255)
- "ALTER TABLE sign_group_users ALTER COLUMN group_id TYPE character varying(255);",
+ "ALTER TABLE sign_group_users "
+ "ALTER COLUMN group_id TYPE character varying(255);",
]
diff --git a/zhenxun/models/sign_log.py b/zhenxun/models/sign_log.py
index cbfca947..16efd198 100644
--- a/zhenxun/models/sign_log.py
+++ b/zhenxun/models/sign_log.py
@@ -1,13 +1,9 @@
-from datetime import datetime
-from typing import List, Literal, Optional, Tuple, Union
-
from tortoise import fields
from zhenxun.services.db_context import Model
class SignLog(Model):
-
id = fields.IntField(pk=True, generated=True, auto_increment=True)
"""自增id"""
user_id = fields.CharField(255, description="用户id")
diff --git a/zhenxun/models/sign_user.py b/zhenxun/models/sign_user.py
index eb25b6cb..9fb6299d 100644
--- a/zhenxun/models/sign_user.py
+++ b/zhenxun/models/sign_user.py
@@ -1,6 +1,7 @@
-from tortoise import fields
from typing_extensions import Self
+from tortoise import fields
+
from zhenxun.services.db_context import Model
from .sign_log import SignLog
@@ -8,7 +9,6 @@ from .user_console import UserConsole
class SignUser(Model):
-
id = fields.IntField(pk=True, generated=True, auto_increment=True)
"""自增id"""
user_id = fields.CharField(255, unique=True, description="用户id")
diff --git a/zhenxun/models/user_console.py b/zhenxun/models/user_console.py
index 55fd021b..1059ddff 100644
--- a/zhenxun/models/user_console.py
+++ b/zhenxun/models/user_console.py
@@ -1,5 +1,3 @@
-from typing import Dict
-
from tortoise import fields
from zhenxun.models.goods_info import GoodsInfo
@@ -11,7 +9,6 @@ from .user_gold_log import UserGoldLog
class UserConsole(Model):
-
id = fields.IntField(pk=True, generated=True, auto_increment=True)
"""自增id"""
user_id = fields.CharField(255, unique=True, description="用户id")
@@ -22,7 +19,7 @@ class UserConsole(Model):
"""金币数量"""
sign = fields.ReverseRelation["SignUser"] # type: ignore
"""好感度"""
- props: Dict[str, int] = fields.JSONField(default={}) # type: ignore
+ props: dict[str, int] = fields.JSONField(default={}) # type: ignore
"""道具"""
platform = fields.CharField(255, null=True, description="平台")
"""平台"""
diff --git a/zhenxun/models/user_gold_log.py b/zhenxun/models/user_gold_log.py
index 30e83242..ebcff2d1 100644
--- a/zhenxun/models/user_gold_log.py
+++ b/zhenxun/models/user_gold_log.py
@@ -5,7 +5,6 @@ from zhenxun.utils.enum import GoldHandle
class UserGoldLog(Model):
-
id = fields.IntField(pk=True, generated=True, auto_increment=True)
"""自增id"""
user_id = fields.CharField(255, description="用户id")
diff --git a/zhenxun/models/user_props.py b/zhenxun/models/user_props.py
index 3e3a5e2b..ff9fd6fb 100644
--- a/zhenxun/models/user_props.py
+++ b/zhenxun/models/user_props.py
@@ -1,21 +1,16 @@
-from typing import Dict
-
from tortoise import fields
from zhenxun.services.db_context import Model
-from .sign_user import SignUser
-
class UserProps(Model):
-
id = fields.IntField(pk=True, generated=True, auto_increment=True)
"""自增id"""
user_id = fields.CharField(255, unique=True, description="用户id")
"""用户id"""
name = fields.CharField(255, description="道具名称")
"""道具名称"""
- property: Dict[str, int] = fields.JSONField(default={}) # type: ignore
+ property: dict[str, int] = fields.JSONField(default={}) # type: ignore
"""道具"""
platform = fields.CharField(255, null=True)
"""平台"""
diff --git a/zhenxun/models/user_props_log.py b/zhenxun/models/user_props_log.py
index 16ae405c..bc4f3cc4 100644
--- a/zhenxun/models/user_props_log.py
+++ b/zhenxun/models/user_props_log.py
@@ -1,15 +1,10 @@
-from typing import Dict
-
from tortoise import fields
from zhenxun.services.db_context import Model
from zhenxun.utils.enum import PropHandle
-from .sign_user import SignUser
-
class UserPropsLog(Model):
-
id = fields.IntField(pk=True, generated=True, auto_increment=True)
"""自增id"""
user_id = fields.CharField(255, description="用户id")
diff --git a/zhenxun/services/db_context.py b/zhenxun/services/db_context.py
index f0b599b5..9a44fa74 100644
--- a/zhenxun/services/db_context.py
+++ b/zhenxun/services/db_context.py
@@ -1,7 +1,7 @@
+from nonebot.utils import is_coroutine_callable
from tortoise import Tortoise
from tortoise.connection import connections
from tortoise.models import Model as Model_
-from nonebot.utils import is_coroutine_callable
from zhenxun.configs.config import BotConfig
diff --git a/zhenxun/services/log.py b/zhenxun/services/log.py
index d8087ee0..7d80c706 100644
--- a/zhenxun/services/log.py
+++ b/zhenxun/services/log.py
@@ -1,12 +1,12 @@
-from typing import Any, overload
from datetime import datetime, timedelta
+from typing import Any, overload
from nonebot import require
require("nonebot_plugin_session")
from loguru import logger as logger_
-from nonebot_plugin_session import Session
from nonebot.log import default_filter, default_format
+from nonebot_plugin_session import Session
from nonebot_plugin_uninfo import Session as uninfoSession
from zhenxun.configs.path_config import LOG_PATH
diff --git a/zhenxun/services/plugin_init.py b/zhenxun/services/plugin_init.py
index 7d6ac487..159e042c 100644
--- a/zhenxun/services/plugin_init.py
+++ b/zhenxun/services/plugin_init.py
@@ -2,8 +2,8 @@ from abc import ABC, abstractmethod
from collections.abc import Callable
import nonebot
-from pydantic import BaseModel
from nonebot.utils import is_coroutine_callable
+from pydantic import BaseModel
from zhenxun.services.log import logger
diff --git a/zhenxun/utils/_build_image.py b/zhenxun/utils/_build_image.py
index 3fdf4600..83d82aea 100644
--- a/zhenxun/utils/_build_image.py
+++ b/zhenxun/utils/_build_image.py
@@ -1,17 +1,17 @@
-import math
-import uuid
import base64
-import itertools
import contextlib
from io import BytesIO
+import itertools
+import math
from pathlib import Path
-from typing_extensions import Self
from typing import Literal, TypeAlias, overload
+from typing_extensions import Self
+import uuid
from nonebot.utils import run_sync
+from PIL import Image, ImageDraw, ImageFilter, ImageFont
from PIL.Image import Image as tImage
from PIL.ImageFont import FreeTypeFont
-from PIL import Image, ImageDraw, ImageFont, ImageFilter
from zhenxun.configs.path_config import FONT_PATH
diff --git a/zhenxun/utils/_build_mat.py b/zhenxun/utils/_build_mat.py
index 6f30d301..e41f2cda 100644
--- a/zhenxun/utils/_build_mat.py
+++ b/zhenxun/utils/_build_mat.py
@@ -1,7 +1,6 @@
-import random
from io import BytesIO
from pathlib import Path
-from re import S
+import random
from pydantic import BaseModel
from strenum import StrEnum
@@ -10,7 +9,6 @@ from ._build_image import BuildImage
class MatType(StrEnum):
-
LINE = "LINE"
"""折线图"""
BAR = "BAR"
@@ -20,7 +18,6 @@ class MatType(StrEnum):
class BuildMatData(BaseModel):
-
mat_type: MatType
"""类型"""
data: list[int | float] = []
@@ -64,7 +61,6 @@ class BuildMat:
"""
class InitGraph(BaseModel):
-
mark_image: BuildImage
"""BuildImage"""
x_height: int
@@ -291,7 +287,8 @@ class BuildMat:
self.build_data.font, self.build_data.font_size + 4
)
title_width, title_height = BuildImage.get_text_size(
- self.build_data.x_name, font # type: ignore
+ self.build_data.x_name,
+ font, # type: ignore
)
pos = (
A.width - title_width - 20,
diff --git a/zhenxun/utils/_image_template.py b/zhenxun/utils/_image_template.py
index 56cd2fe4..7f27db76 100644
--- a/zhenxun/utils/_image_template.py
+++ b/zhenxun/utils/_image_template.py
@@ -1,10 +1,10 @@
-import random
+from collections.abc import Callable
from io import BytesIO
from pathlib import Path
-from collections.abc import Callable
+import random
-from pydantic import BaseModel
from PIL.ImageFont import FreeTypeFont
+from pydantic import BaseModel
from ._build_image import BuildImage
diff --git a/zhenxun/utils/common_utils.py b/zhenxun/utils/common_utils.py
index 4c36930d..b69069ba 100644
--- a/zhenxun/utils/common_utils.py
+++ b/zhenxun/utils/common_utils.py
@@ -1,11 +1,11 @@
from nonebot.adapters import Bot
-from nonebot_plugin_uninfo import Uninfo, Session, SupportScope, get_interface
+from nonebot_plugin_uninfo import Session, SupportScope, Uninfo, get_interface
-from zhenxun.services.log import logger
from zhenxun.configs.config import BotConfig
-from zhenxun.models.task_info import TaskInfo
from zhenxun.models.ban_console import BanConsole
from zhenxun.models.group_console import GroupConsole
+from zhenxun.models.task_info import TaskInfo
+from zhenxun.services.log import logger
class CommonUtils:
diff --git a/zhenxun/utils/decorator/shop.py b/zhenxun/utils/decorator/shop.py
index a48b6c2b..61cfa320 100644
--- a/zhenxun/utils/decorator/shop.py
+++ b/zhenxun/utils/decorator/shop.py
@@ -1,14 +1,13 @@
from collections.abc import Callable
-from pydantic import BaseModel
-from nonebot.plugin import require
from nonebot.adapters.onebot.v11 import Message, MessageSegment
+from nonebot.plugin import require
+from pydantic import BaseModel
from zhenxun.models.goods_info import GoodsInfo
class Goods(BaseModel):
-
before_handle: list[Callable] = []
after_handle: list[Callable] = []
price: int
@@ -25,7 +24,6 @@ class Goods(BaseModel):
class ShopRegister(dict):
-
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self._data: dict[str, Goods] = {}
diff --git a/zhenxun/utils/depends/__init__.py b/zhenxun/utils/depends/__init__.py
index 767fc2e4..887813dd 100644
--- a/zhenxun/utils/depends/__init__.py
+++ b/zhenxun/utils/depends/__init__.py
@@ -1,10 +1,10 @@
from typing import Any
-from nonebot.params import Command
-from nonebot.matcher import Matcher
-from nonebot_plugin_uninfo import Uninfo
from nonebot.internal.params import Depends
+from nonebot.matcher import Matcher
+from nonebot.params import Command
from nonebot_plugin_session import EventSession
+from nonebot_plugin_uninfo import Uninfo
from zhenxun.configs.config import Config
from zhenxun.utils.message import MessageUtils
diff --git a/zhenxun/utils/echart_utils/__init__.py b/zhenxun/utils/echart_utils/__init__.py
index 27a53d9a..d3de899e 100644
--- a/zhenxun/utils/echart_utils/__init__.py
+++ b/zhenxun/utils/echart_utils/__init__.py
@@ -3,8 +3,8 @@ import random
from nonebot_plugin_htmlrender import template_to_pic
-from zhenxun.utils._build_image import BuildImage
from zhenxun.configs.path_config import TEMPLATE_PATH
+from zhenxun.utils._build_image import BuildImage
from .models import Barh
diff --git a/zhenxun/utils/github_utils/__init__.py b/zhenxun/utils/github_utils/__init__.py
index eb1b047f..ecb80bb1 100644
--- a/zhenxun/utils/github_utils/__init__.py
+++ b/zhenxun/utils/github_utils/__init__.py
@@ -1,13 +1,13 @@
from collections.abc import Generator
from .const import GITHUB_REPO_URL_PATTERN
-from .func import get_fastest_raw_formats, get_fastest_archive_formats
-from .models import RepoAPI, RepoInfo, GitHubStrategy, JsdelivrStrategy
+from .func import get_fastest_archive_formats, get_fastest_raw_formats
+from .models import GitHubStrategy, JsdelivrStrategy, RepoAPI, RepoInfo
__all__ = [
- "get_fastest_raw_formats",
- "get_fastest_archive_formats",
"GithubUtils",
+ "get_fastest_archive_formats",
+ "get_fastest_raw_formats",
]
diff --git a/zhenxun/utils/github_utils/func.py b/zhenxun/utils/github_utils/func.py
index 03c43182..19daf10d 100644
--- a/zhenxun/utils/github_utils/func.py
+++ b/zhenxun/utils/github_utils/func.py
@@ -1,6 +1,7 @@
from aiocache import cached
-from ..http_utils import AsyncHttpx
+from zhenxun.utils.http_utils import AsyncHttpx
+
from .const import (
ARCHIVE_URL_FORMAT,
RAW_CONTENT_FORMAT,
diff --git a/zhenxun/utils/github_utils/models.py b/zhenxun/utils/github_utils/models.py
index a7bbad06..14f9a5ac 100644
--- a/zhenxun/utils/github_utils/models.py
+++ b/zhenxun/utils/github_utils/models.py
@@ -1,14 +1,15 @@
from typing import Protocol
from aiocache import cached
-from strenum import StrEnum
from pydantic import BaseModel
+from strenum import StrEnum
+
+from zhenxun.utils.http_utils import AsyncHttpx
-from ..http_utils import AsyncHttpx
from .const import CACHED_API_TTL, GIT_API_TREES_FORMAT, JSD_PACKAGE_API_FORMAT
from .func import (
- get_fastest_raw_formats,
get_fastest_archive_formats,
+ get_fastest_raw_formats,
get_fastest_release_source_formats,
)
diff --git a/zhenxun/utils/http_utils.py b/zhenxun/utils/http_utils.py
index dc62f760..00c4fe28 100644
--- a/zhenxun/utils/http_utils.py
+++ b/zhenxun/utils/http_utils.py
@@ -1,22 +1,22 @@
-import time
import asyncio
-from pathlib import Path
-from typing import Any, Literal, ClassVar
+from asyncio.exceptions import TimeoutError
from collections.abc import AsyncGenerator
from contextlib import asynccontextmanager
-from asyncio.exceptions import TimeoutError
+from pathlib import Path
+import time
+from typing import Any, ClassVar, Literal
-import rich
-import httpx
import aiofiles
-from retrying import retry
-from playwright.async_api import Page
+import httpx
+from httpx import ConnectTimeout, HTTPStatusError, Response
from nonebot_plugin_alconna import UniMessage
from nonebot_plugin_htmlrender import get_browser
-from httpx import Response, ConnectTimeout, HTTPStatusError
+from playwright.async_api import Page
+from retrying import retry
+import rich
-from zhenxun.services.log import logger
from zhenxun.configs.config import BotConfig
+from zhenxun.services.log import logger
from zhenxun.utils.message import MessageUtils
from zhenxun.utils.user_agent import get_user_agent
diff --git a/zhenxun/utils/image_utils.py b/zhenxun/utils/image_utils.py
index ddcabd47..1659ff5c 100644
--- a/zhenxun/utils/image_utils.py
+++ b/zhenxun/utils/image_utils.py
@@ -1,22 +1,22 @@
-import os
-import re
-import random
+from collections.abc import Awaitable, Callable
from io import BytesIO
+import os
from pathlib import Path
-from collections.abc import Callable, Awaitable
+import random
+import re
import cv2
import imagehash
-from PIL import Image
from nonebot.utils import is_coroutine_callable
+from PIL import Image
+from zhenxun.configs.path_config import IMAGE_PATH, TEMP_PATH
from zhenxun.services.log import logger
from zhenxun.utils.http_utils import AsyncHttpx
-from zhenxun.configs.path_config import TEMP_PATH, IMAGE_PATH
from ._build_image import BuildImage, ColorAlias
-from ._build_mat import MatType, BuildMat # noqa: F401
-from ._image_template import RowStyle, ImageTemplate # noqa: F401
+from ._build_mat import BuildMat, MatType # noqa: F401
+from ._image_template import ImageTemplate, RowStyle # noqa: F401
# TODO: text2image 长度错误
@@ -39,8 +39,8 @@ async def text2image(
fs / font_size: int -> 特殊文本大小
fc / font_color: Union[str, Tuple[int, int, int]] -> 特殊文本颜色
示例
- 在不在,HibiKi小姐,
- 你最近还好吗,我非常想你,这段时间我非常不好过,
+ 在不在,HibiKi,
+ 你最近还好吗,我非常想你,
抽卡抽不到金色,这让我很痛苦
参数:
text: 文本
@@ -272,7 +272,6 @@ def group_image(image_list: list[BuildImage]) -> tuple[list[list[BuildImage]], i
_min_h = 999999
_min_index = -1
for i, ig in enumerate(image_group):
- # if i not in is_use and (_h := sum([x.h for x in ig]) + img.h) > _min_h:
if (_h := sum([x.height for x in ig]) + img.height) < _min_h:
_min_h = _h
_min_index = i
diff --git a/zhenxun/utils/message.py b/zhenxun/utils/message.py
index d3c9802c..c736d194 100644
--- a/zhenxun/utils/message.py
+++ b/zhenxun/utils/message.py
@@ -3,22 +3,22 @@ from io import BytesIO
from pathlib import Path
import nonebot
-from pydantic import BaseModel
from nonebot.adapters.onebot.v11 import Message, MessageSegment
from nonebot_plugin_alconna import (
At,
- Text,
AtAll,
+ CustomNode,
Image,
+ Reference,
+ Text,
+ UniMessage,
Video,
Voice,
- Reference,
- CustomNode,
- UniMessage,
)
+from pydantic import BaseModel
-from zhenxun.services.log import logger
from zhenxun.configs.config import BotConfig
+from zhenxun.services.log import logger
from zhenxun.utils._build_image import BuildImage
driver = nonebot.get_driver()
diff --git a/zhenxun/utils/platform.py b/zhenxun/utils/platform.py
index e60b07cc..2046885b 100644
--- a/zhenxun/utils/platform.py
+++ b/zhenxun/utils/platform.py
@@ -1,27 +1,27 @@
+from collections.abc import Awaitable, Callable
import random
from typing import Literal
-from collections.abc import Callable, Awaitable
import httpx
import nonebot
-from pydantic import BaseModel
from nonebot.adapters import Bot
-from nonebot.utils import is_coroutine_callable
-from nonebot_plugin_alconna import SupportScope
from nonebot.adapters.dodo import Bot as DodoBot
+from nonebot.adapters.kaiheila import Bot as KaiheilaBot
from nonebot.adapters.onebot.v11 import Bot as v11Bot
from nonebot.adapters.onebot.v12 import Bot as v12Bot
+from nonebot.utils import is_coroutine_callable
+from nonebot_plugin_alconna import SupportScope
+from nonebot_plugin_alconna.uniseg import Receipt, Target, UniMessage
from nonebot_plugin_uninfo import Uninfo, get_interface
-from nonebot.adapters.kaiheila import Bot as KaiheilaBot
-from nonebot_plugin_alconna.uniseg import Target, Receipt, UniMessage
+from pydantic import BaseModel
-from zhenxun.services.log import logger
from zhenxun.configs.config import BotConfig
-from zhenxun.utils.message import MessageUtils
-from zhenxun.utils.http_utils import AsyncHttpx
from zhenxun.models.friend_user import FriendUser
-from zhenxun.utils.exception import NotFindSuperuser
from zhenxun.models.group_console import GroupConsole
+from zhenxun.services.log import logger
+from zhenxun.utils.exception import NotFindSuperuser
+from zhenxun.utils.http_utils import AsyncHttpx
+from zhenxun.utils.message import MessageUtils
driver = nonebot.get_driver()
diff --git a/zhenxun/utils/rules.py b/zhenxun/utils/rules.py
index a8ed2cce..d439e3fe 100644
--- a/zhenxun/utils/rules.py
+++ b/zhenxun/utils/rules.py
@@ -1,8 +1,8 @@
-from nonebot.internal.rule import Rule
from nonebot.adapters import Bot, Event
+from nonebot.internal.rule import Rule
from nonebot.permission import SUPERUSER
-from nonebot_plugin_uninfo import Uninfo
from nonebot_plugin_session import EventSession
+from nonebot_plugin_uninfo import Uninfo
from zhenxun.configs.config import Config
from zhenxun.models.level_user import LevelUser
diff --git a/zhenxun/utils/typing.py b/zhenxun/utils/typing.py
index b28b04f6..8b137891 100644
--- a/zhenxun/utils/typing.py
+++ b/zhenxun/utils/typing.py
@@ -1,3 +1 @@
-
-
diff --git a/zhenxun/utils/user_agent.py b/zhenxun/utils/user_agent.py
index 3047da33..36a29f78 100644
--- a/zhenxun/utils/user_agent.py
+++ b/zhenxun/utils/user_agent.py
@@ -1,44 +1,69 @@
import random
user_agent = [
- "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
- "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
+ "Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10_6_8; en-us) "
+ "AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
+ "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-us) "
+ "AppleWebKit/534.50 (KHTML, like Gecko) Version/5.1 Safari/534.50",
"Mozilla/5.0 (Windows NT 10.0; WOW64; rv:38.0) Gecko/20100101 Firefox/38.0",
- "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) like Gecko",
+ "Mozilla/5.0 (Windows NT 10.0; WOW64; Trident/7.0; .NET4.0C; .NET4.0E; "
+ ".NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729; InfoPath.3; rv:11.0) "
+ "like Gecko",
"Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; Trident/5.0)",
"Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0)",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1)",
- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:2.0.1) "
+ "Gecko/20100101 Firefox/4.0.1",
"Mozilla/5.0 (Windows NT 6.1; rv:2.0.1) Gecko/20100101 Firefox/4.0.1",
"Opera/9.80 (Macintosh; Intel Mac OS X 10.6.8; U; en) Presto/2.8.131 Version/11.11",
"Opera/9.80 (Windows NT 6.1; U; en) Presto/2.8.131 Version/11.11",
- "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
+ "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_0) "
+ "AppleWebKit/535.11 (KHTML, like Gecko) Chrome/17.0.963.56 Safari/535.11",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Maxthon 2.0)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; TencentTraveler 4.0)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; The World)",
- "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Trident/4.0; SE 2.X MetaSr 1.0; SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)",
+ "Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; "
+ "Trident/4.0; SE 2.X MetaSr 1.0; "
+ "SE 2.X MetaSr 1.0; .NET CLR 2.0.50727; SE 2.X MetaSr 1.0)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; 360SE)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; Avant Browser)",
"Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1)",
- "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
- "Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
- "Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
- "Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; Nexus One Build/FRF91) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
- "MQQBrowser/26 Mozilla/5.0 (Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
- "Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) Presto/2.8.149 Version/11.10",
- "Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
- "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.337 Mobile Safari/534.1+",
- "Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.0; U; en-US) AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/233.70 Safari/534.6 TouchPad/1.0",
- "Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; Profile/MIDP-2.1 Configuration/CLDC-1.1) AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124",
- "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; Trident/5.0; IEMobile/9.0; HTC; Titan)",
+ "Mozilla/5.0 (iPhone; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) "
+ "AppleWebKit/533.17.9 (KHTML, like Gecko) "
+ "Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
+ "Mozilla/5.0 (iPod; U; CPU iPhone OS 4_3_3 like Mac OS X; en-us) "
+ "AppleWebKit/533.17.9 (KHTML, like Gecko) "
+ "Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
+ "Mozilla/5.0 (iPad; U; CPU OS 4_3_3 like Mac OS X; en-us) "
+ "AppleWebKit/533.17.9 (KHTML, like Gecko) "
+ "Version/5.0.2 Mobile/8J2 Safari/6533.18.5",
+ "Mozilla/5.0 (Linux; U; Android 2.3.7; en-us; Nexus One Build/FRF91) "
+ "AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
+ "MQQBrowser/26 Mozilla/5.0 "
+ "(Linux; U; Android 2.3.7; zh-cn; MB200 Build/GRJ22; CyanogenMod-7) "
+ "AppleWebKit/533.1 (KHTML, like Gecko) Version/4.0 Mobile Safari/533.1",
+ "Opera/9.80 (Android 2.3.4; Linux; Opera Mobi/build-1107180945; U; en-GB) "
+ "Presto/2.8.149 Version/11.10",
+ "Mozilla/5.0 (Linux; U; Android 3.0; en-us; Xoom Build/HRI39) "
+ "AppleWebKit/534.13 (KHTML, like Gecko) Version/4.0 Safari/534.13",
+ "Mozilla/5.0 (BlackBerry; U; BlackBerry 9800; en) "
+ "AppleWebKit/534.1+ (KHTML, like Gecko) Version/6.0.0.337 Mobile Safari/534.1+",
+ "Mozilla/5.0 (hp-tablet; Linux; hpwOS/3.0.0; U; en-US) "
+ "AppleWebKit/534.6 (KHTML, like Gecko) wOSBrowser/233.70 Safari/534.6 TouchPad/1.0",
+ "Mozilla/5.0 (SymbianOS/9.4; Series60/5.0 NokiaN97-1/20.0.019; "
+ "Profile/MIDP-2.1 Configuration/CLDC-1.1) "
+ "AppleWebKit/525 (KHTML, like Gecko) BrowserNG/7.1.18124",
+ "Mozilla/5.0 (compatible; MSIE 9.0; Windows Phone OS 7.5; "
+ "Trident/5.0; IEMobile/9.0; HTC; Titan)",
"UCWEB7.0.2.37/28/999",
"NOKIA5700/ UCWEB7.0.2.37/28/999",
"Openwave/ UCWEB7.0.2.37/28/999",
"Mozilla/4.0 (compatible; MSIE 6.0; ) Opera/UCWEB7.0.2.37/28/999",
# iPhone 6:
- "Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25",
+ "Mozilla/6.0 (iPhone; CPU iPhone OS 8_0 like Mac OS X) "
+ "AppleWebKit/536.26 (KHTML, like Gecko) Version/8.0 Mobile/10A5376e Safari/8536.25",
]
diff --git a/zhenxun/utils/utils.py b/zhenxun/utils/utils.py
index 98e734f7..3bdf2df1 100644
--- a/zhenxun/utils/utils.py
+++ b/zhenxun/utils/utils.py
@@ -1,16 +1,16 @@
+from collections import defaultdict
+from datetime import datetime
import os
+from pathlib import Path
import time
from typing import Any
-from pathlib import Path
-from datetime import datetime
-from collections import defaultdict
-import pytz
import httpx
import pypinyin
+import pytz
-from zhenxun.services.log import logger
from zhenxun.configs.config import Config
+from zhenxun.services.log import logger
class ResourceDirManager:
diff --git a/zhenxun/utils/withdraw_manage.py b/zhenxun/utils/withdraw_manage.py
index f6ab4e0e..3dfc5e80 100644
--- a/zhenxun/utils/withdraw_manage.py
+++ b/zhenxun/utils/withdraw_manage.py
@@ -1,20 +1,19 @@
import asyncio
from nonebot.adapters import Bot
-from ruamel.yaml.comments import CommentedSeq
-from nonebot_plugin_session import EventSession
# from nonebot.adapters.discord import Bot as DiscordBot
# from nonebot.adapters.dodo import Bot as DodoBot
# from nonebot.adapters.kaiheila import Bot as KaiheilaBot
from nonebot.adapters.onebot.v11 import Bot as v11Bot
from nonebot.adapters.onebot.v12 import Bot as v12Bot
+from nonebot_plugin_session import EventSession
+from ruamel.yaml.comments import CommentedSeq
from zhenxun.services.log import logger
class WithdrawManager:
-
_data = {} # noqa: RUF012
_index = 0