refactor: 收敛QQBot插件平台与现有插件

This commit is contained in:
sunlei 2026-06-15 12:18:53 +08:00
parent e17d1f89ab
commit 635f97a2c7
9 changed files with 12 additions and 12 deletions

View File

@ -18,5 +18,5 @@
| Blog/WordPress/Asset | old `src/blog`, `src/wordpress`, `src/minio`; legacy module wrappers after local imports replaced | MinIO internal files renamed into Asset module; Blog and WordPress controller/service/entity files moved under target modules | existing route decorators and response DTO behavior | `rg '@/blog/|@/wordpress/|@/minio/' src test` has no hits; Blog/WordPress/Asset focused tests pass |
| Runtime/Common | none yet | none yet | current files before migration | baseline only |
| QQBot Core/NapCat | old `src/qqbot/qqbot.module.ts`; old core and napcat roots after moves | account/command/config/connection/dashboard/dedupe/event/message/mqtt/permission/rule/send moved into `src/modules/qqbot/core`; NapCat login/container/persistence moved into `src/modules/qqbot/napcat` | route decorators, command parsing, send queue, device persistence, captcha, new-device, and manual QR semantics | core and NapCat focused Jest pass; `rg '@/qqbot/' src/modules/qqbot/core src/modules/qqbot/napcat` has no hits |
| Plugin Platform/Plugins | none in Task 4; old `src/qqbot/plugin` intentionally remains as Task 5 debt | none in Task 4; Task 5 will move plugin registry/controller/runtime contracts into `src/modules/qqbot/plugin-platform/**`, then delete old `src/qqbot` root | plugin HTTP routes, platform plugin keys, and legacy key compatibility | current architecture convergence spec remains red only because `src/qqbot/plugin` is still pending for Task 5 |
| Plugin Platform/Plugins | old `src/qqbot/plugin`; no additional plugin source files deleted because existing manifests/tests still reference them | registry/controller moved into `src/modules/qqbot/plugin-platform/**`; direct old-root imports removed | plugin HTTP routes, platform plugin keys, legacy key compatibility, BangDream file-cache HTTP client | architecture convergence and plugin platform focused Jest pass; plugin scan has no `@/admin/` or `@/qqbot/` imports, and FF14/FFLogs have no direct HTTP client hits |
| Admin UI | none yet | none yet | current files before migration | baseline only |

View File

@ -1,6 +1,6 @@
import { Injectable, Logger } from '@nestjs/common';
import { ToolsService } from '@/common';
import { QqbotPluginRegistryService } from '../../../../qqbot/plugin/qqbot-plugin-registry.service';
import { QqbotPluginRegistryService } from '@/modules/qqbot/plugin-platform/registry/qqbot-plugin-registry.service';
import type { QqbotNormalizedMessage } from '../contract/qqbot.types';
import { QqbotSendService } from '../send/qqbot-send.service';
import type { QqbotCommandTestDto } from './qqbot-command.dto';

View File

@ -4,7 +4,7 @@ import { InjectRepository } from '@nestjs/typeorm';
import { Not, Repository } from 'typeorm';
import { throwVbenError, ToolsService } from '@/common';
import { QqbotAccountService } from '../account/qqbot-account.service';
import { QqbotPluginRegistryService } from '../../../../qqbot/plugin/qqbot-plugin-registry.service';
import { QqbotPluginRegistryService } from '@/modules/qqbot/plugin-platform/registry/qqbot-plugin-registry.service';
import {
QQBOT_DEFAULT_PAGE_NO,
QQBOT_DEFAULT_PAGE_SIZE,

View File

@ -39,9 +39,9 @@ import { QqbotAllowlist } from '@/modules/qqbot/core/permission/qqbot-allowlist.
import { QqbotBlocklist } from '@/modules/qqbot/core/permission/qqbot-blocklist.entity';
import { QqbotPermissionController } from '@/modules/qqbot/core/permission/qqbot-permission.controller';
import { QqbotPermissionService } from '@/modules/qqbot/core/permission/qqbot-permission.service';
import { QqbotEventPluginRegistryService } from '../../../qqbot/plugin/qqbot-event-plugin-registry.service';
import { QqbotPluginController } from '../../../qqbot/plugin/qqbot-plugin.controller';
import { QqbotPluginRegistryService } from '../../../qqbot/plugin/qqbot-plugin-registry.service';
import { QqbotPluginController } from '@/modules/qqbot/plugin-platform/qqbot-plugin.controller';
import { QqbotEventPluginRegistryService } from '@/modules/qqbot/plugin-platform/registry/qqbot-event-plugin-registry.service';
import { QqbotPluginRegistryService } from '@/modules/qqbot/plugin-platform/registry/qqbot-plugin-registry.service';
import { QqbotBangDreamClientService } from '@/modules/qqbot/plugins/bangDream/application/bangdream-client.service';
import { TsuguApplicationService } from '@/modules/qqbot/plugins/bangDream/application/bangdream-application.service';
import { QqbotBangDreamRendererService } from '@/modules/qqbot/plugins/bangDream/application/bangdream-renderer.facade';

View File

@ -10,8 +10,8 @@ import {
import { ApiOperation, ApiQuery, ApiTags } from '@nestjs/swagger';
import { JwtAuthGuard } from '@/modules/admin/identity/auth/jwt-auth.guard';
import { vbenSuccess } from '@/common';
import { QqbotEventPluginRegistryService } from './qqbot-event-plugin-registry.service';
import { QqbotPluginRegistryService } from './qqbot-plugin-registry.service';
import { QqbotEventPluginRegistryService } from './registry/qqbot-event-plugin-registry.service';
import { QqbotPluginRegistryService } from './registry/qqbot-plugin-registry.service';
import type { QqbotPluginTriggerMode } from '@/modules/qqbot/core/contract/qqbot.types';
@ApiTags('QQBot - 插件能力')

View File

@ -24,9 +24,9 @@ import * as request from 'supertest';
import { QqbotBangDreamPluginService } from '../../../../src/modules/qqbot/plugins/bangDream/qqbot-bangdream.plugin';
import { QqbotFf14MarketPluginService } from '../../../../src/modules/qqbot/plugins/ff14Market/qqbot-ff14-market.plugin';
import { QqbotFflogsPluginService } from '../../../../src/modules/qqbot/plugins/fflogs/qqbot-fflogs.plugin';
import { QqbotEventPluginRegistryService } from '../../../../src/qqbot/plugin/qqbot-event-plugin-registry.service';
import { QqbotPluginController } from '../../../../src/qqbot/plugin/qqbot-plugin.controller';
import { QqbotPluginRegistryService } from '../../../../src/qqbot/plugin/qqbot-plugin-registry.service';
import { QqbotPluginController } from '../../../../src/modules/qqbot/plugin-platform/qqbot-plugin.controller';
import { QqbotEventPluginRegistryService } from '../../../../src/modules/qqbot/plugin-platform/registry/qqbot-event-plugin-registry.service';
import { QqbotPluginRegistryService } from '../../../../src/modules/qqbot/plugin-platform/registry/qqbot-plugin-registry.service';
import type { QqbotIntegrationPlugin } from '../../../../src/modules/qqbot/core/contract/qqbot.types';
const createPlugin = (

View File

@ -11,7 +11,7 @@ jest.mock('@/modules/qqbot/plugins/fflogs/qqbot-fflogs.plugin', () => ({
QqbotFflogsPluginService: class {},
}));
import { QqbotPluginRegistryService } from '../../../../src/qqbot/plugin/qqbot-plugin-registry.service';
import { QqbotPluginRegistryService } from '../../../../src/modules/qqbot/plugin-platform/registry/qqbot-plugin-registry.service';
import type { QqbotIntegrationPlugin } from '../../../../src/modules/qqbot/core/contract/qqbot.types';
const asPluginService = (plugin: QqbotIntegrationPlugin) =>