refactor(4.0): 改正描述旧行为的注释与文档字符串

- ab_sdk 的扩展点与下载器说明仍写 downloader.type,P2.5 起改为下载器实例的 provider
- ab_sdk 与示例插件中的阶段编号(P3 / P4 / P5 / P6)对插件作者没有意义,去掉
- EventBus.drain 只有测试调用;hardlink 注释中的 slots 已实施
This commit is contained in:
Estrella Pan
2026-10-08 17:24:14 +02:00
parent 56fa95f51f
commit 6439577b2b
6 changed files with 10 additions and 10 deletions

View File

@@ -4,7 +4,7 @@
:data:`DownloaderFactory`:接收连接参数,返回实现 :class:`DownloaderClient`
(至少 :class:`CoreDownloaderClient`)的对象。不同下载器能力不同,通过
``capabilities`` 类属性声明,门面会跳过不支持的操作而不是报错。
用户在设置里把 ``downloader.type`` 设为该 id 即可启用。
用户在设置里把下载器实例的 ``provider`` 设为该 id 即可启用。
"""
from collections.abc import Callable

View File

@@ -31,7 +31,7 @@ class PluginDisabled(Event):
reason: str
# --- P5:系统事件 -------------------------------------------------------------
# --- 系统事件 -------------------------------------------------------------
#
# 以下事件由宿主经 ``NotificationManager.send_event`` 发出:先写入站内通知中心,
# 再发布到事件总线(插件可 ``@subscribe(kind)``),最后推送到外部通知渠道。
@@ -377,7 +377,7 @@ class RenameSkippedEvent(SystemEvent):
)
# --- P4:organize 流水线事件(只发布到事件总线,不进通知中心) -------------------
# --- organize 流水线事件(只发布到事件总线,不进通知中心) -------------------
#
# 路径均为下载器视角的绝对路径:保存目录与种子内相对路径以 "/" 拼接
# (Windows 下载器的 "\" 也统一为 "/")。AutoBangumi 与下载器不在同一文件系统

View File

@@ -3,7 +3,7 @@
Provider 扩展点(``@provider``):
- ``DOWNLOADER``:返回 :data:`ab_sdk.downloader.DownloaderFactory`,id 即
``downloader.type`` 的取值
下载器实例的 ``provider``(``plugins.instances[].provider``)
- ``NOTIFIER``:返回 :data:`ab_sdk.notify.NotifierFactory`,id 即通知渠道的
``type``
- ``LLM_PROVIDER``:返回 :class:`ab_sdk.llm.LLMProviderAdapter` 子类
@@ -26,14 +26,14 @@ LLM_PROVIDER = "llm_provider"
SEARCH_SITE = "search_site"
SCHEDULED_TASK = "scheduled_task"
# --- P3 ingest ---
# --- ingest ---
METADATA_PROVIDER = "metadata_provider"
TORRENT_FILTER = "torrent.filter"
TITLE_PARSED = "title.parsed"
TORRENT_ADDING = "torrent.adding"
HTTP_REQUEST = "http.request"
# --- P5:外部接口与通知模板 ---
# --- 外部接口与通知模板 ---
#
# Provider 扩展点(id 只需在插件内唯一,宿主对外暴露时加插件 id 前缀):
#
@@ -55,7 +55,7 @@ MCP_TOOL = "mcp_tool"
MCP_RESOURCE = "mcp_resource"
MESSAGE_TEMPLATE = "message_template"
# --- P4 organize(契约见 :mod:`ab_sdk.rename`) ---
# --- organize(契约见 :mod:`ab_sdk.rename`) ---
#
# Provider 扩展点:
#

View File

@@ -150,7 +150,7 @@ class EventBus:
sub.offer(event)
async def drain(self) -> None:
"""等待当前已入队的事件全部处理完(测试与关闭流程使用)。"""
"""等待当前已入队的事件全部处理完(测试使用)。"""
await asyncio.gather(*(sub.join() for sub in list(self._subscribers)))
async def close_owner(self, owner: str) -> None:

View File

@@ -34,7 +34,7 @@ Status = Literal["linked", "exists", "conflict", "failed"]
LINK_TIMEOUT = 3600.0
# ponytail: 补链按扩展名挑文件,与宿主 media_files 的 core 实现同一组;插件不能
# import module.*,若用户换了 media_files 实现(P2.5 slots),这里需要改为经 SDK 查询
# import module.*,若用户在 plugins.slots.media_files 换了实现,这里需要改为经 SDK 查询
BACKFILL_SUFFIXES = frozenset({".mp4", ".mkv", ".ass", ".srt"})

View File

@@ -1,6 +1,6 @@
# 手动选种(示例插件)
P6 的验收演示:番剧详情页多一个「手动选种」标签,列出规则的种子,点「选用」记录选择。
前端挂载点的演示:番剧详情页多一个「手动选种」标签,列出规则的种子,点「选用」记录选择。
用到的能力: