refactor: restructure plugins per MTSS standard, consolidate assets to res/

Per docs/plugin-audit-report.md (plugins normalized to
Trigger(handlers) → Service(services) → Model(repository/models) + utils):

- Split monolithic __init__.py into handlers/services/utils across
  dailywife, deer_pipe, dice, galgame_card, helldivers_tools,
  huoziyinshua, learning_chat, makeaquote, mc_server_status,
  ncm_saying, picfinder_take, picstatus, random_jm_code, regif,
  steam_info, video_analysis, group_tools
- Move static assets under res/: deer_pipe font/img, makeaquote font,
  helldivers img/templates, huoziyinshua HuoZiYinShua
- Add config.py + register_config_items to ncm_saying, random_jm_code,
  group_tools; learning_chat unified config bridge
- Remove deprecated: voice_trans plugin, bf_bot/test.py, dead code in
  dailywife/deer_pipe, empty dirs, debug scripts under helldivers temp
- Disable brash_general_supercredits_tools (stub comment only)
- bot.py: optional stdout/stderr redirect to log file for Web log viewer,
  force ANSI colorize on non-TTY sinks
- Move runtime data (jm_code.json) out of plugin dir into hexi/data
- Docs: plugin-audit-report.md; README reflects removed plugins

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-09-03 00:44:38 +08:00
co-authored by Claude
parent 25bc30611f
commit 9371a28e35
2389 changed files with 5100 additions and 10127 deletions
@@ -10,7 +10,7 @@ require("nonebot_plugin_localstore")
from . import __main__ as __main__, misc_statistics as misc_statistics
from .bg_provider import bg_preloader
from .collectors import (
from .services.collectors import (
enable_collectors,
load_builtin_collectors,
registered_collectors,
@@ -12,7 +12,7 @@ from nonebot.typing import T_State
from nonebot_plugin_alconna.uniseg import Image, OriginalUniMsg, UniMessage, image_fetch
from .bg_provider import BgBytesData, bg_preloader
from .collectors import collect_all
from .services.collectors import collect_all
from .config import config
from .misc_statistics import bot_avatar_cache, bot_info_cache, cache_bot_avatar
from .templates import render_current_template
@@ -0,0 +1 @@
# picstatus —— Service 层。
@@ -12,7 +12,7 @@ from typing_extensions import override
from nonebot import logger
from nonebot_plugin_apscheduler import scheduler
from ..config import config
from ...config import config
T = TypeVar("T")
TI = TypeVar("TI")
@@ -6,9 +6,9 @@ from typing import TYPE_CHECKING
from nonebot import get_bots, logger
from nonebot.matcher import current_bot
from ..config import config
from ..misc_statistics import bot_connect_time, bot_info_cache, recv_num, send_num
from ..util import format_timedelta
from ...config import config
from ...misc_statistics import bot_connect_time, bot_info_cache, recv_num, send_num
from ...util import format_timedelta
from . import normal_collector
if TYPE_CHECKING:
@@ -4,8 +4,8 @@ from typing import TypeAlias
import psutil
from psutil._common import sdiskpart, sdiskio
from ..config import config
from ..util import match_list_regexp
from ...config import config
from ...util import match_list_regexp
from . import (
BaseTimeBasedCounterCollector,
NormalTimeBasedCounterCollector,
@@ -7,8 +7,8 @@ from pathlib import Path
import nonebot
import psutil
from ..misc_statistics import nonebot_run_time
from ..util import format_time_delta_ps
from ...misc_statistics import nonebot_run_time
from ...util import format_time_delta_ps
from . import first_time_collector, normal_collector, periodic_collector
@@ -78,7 +78,7 @@ async def nonebot_version() -> str:
@first_time_collector()
async def ps_version() -> str:
from .. import __version__
from ... import __version__
return __version__
@@ -7,8 +7,8 @@ import psutil
from httpx import AsyncClient, ReadTimeout
from psutil._common import snetio
from ..config import TestSiteCfg, config
from ..util import match_list_regexp
from ...config import TestSiteCfg, config
from ...util import match_list_regexp
from . import (
BaseTimeBasedCounterCollector,
NormalTimeBasedCounterCollector,
@@ -4,8 +4,8 @@ from typing import cast
import psutil
from ..config import config
from ..util import match_list_regexp
from ...config import config
from ...util import match_list_regexp
from . import normal_collector, periodic_collector
@@ -6,7 +6,7 @@ from typing import TYPE_CHECKING
from cookit import DebugFileWriter, auto_convert_unit, format_timedelta
if TYPE_CHECKING:
from .collectors.cpu import CpuFreq
from .services.collectors.cpu import CpuFreq
format_time_delta_ps = partial(format_timedelta, day_divider=" ", day_suffix="天")