Estrella Pan
|
cf6f645e25
|
feat(plugins): wpush-notifier 作者加入 anhao (#1116)
|
2026-10-26 09:32:02 +01:00 |
|
Estrella Pan
|
396a92787e
|
fix: 回滚后再升级时重新备份 3.x 数据库,单个下载器重命名出错不拖垮其它实例
- version_check: 数据库仍是 3.x 结构(schema ≤ 24)时备份并原子替换 data.db.v3.bak,
回滚 3.3 后再升级也会刷新备份;只留一份,迁移失败的重启循环不会堆积
- rename_all: 实例内的异常记录后继续下一个实例
- 文档:回滚步骤删除 data.db-wal/-shm、还原编号最大的配置备份;schema v28
- 插件 skill 改用 httpx2、补全示例列表;示例 README 先安装 SDK 轮子再测试
- 准备 4.0.0-beta.9
|
2026-10-24 11:00:56 +02:00 |
|
Estrella Pan
|
30b69dd00d
|
feat(plugins): apprise-notifier 作者加入 LTSlw (#942)
|
2026-10-21 21:38:57 +02:00 |
|
Estrella Pan
|
f2d93993f4
|
fix(plugins): apprise 的 urls 改为单个字符串秘密字段,回退 secret_field 的 default_factory
宿主只按位置还原列表型秘密的掩码,删除首个 URL 会保留错误的值;
插件注册表 CI 用基线分支的 ab_sdk 校验,插件不能依赖同一 PR 中的 SDK 改动。
|
2026-10-21 11:28:07 +02:00 |
|
Estrella Pan
|
667f769a2d
|
fix(plugins): 处理 Codex 审查的六个问题
- apprise:urls 含令牌,改为 secret_field;secret_field 支持 default_factory,可声明列表 / 字典秘密字段
- run-command:stderr 改为自建管道边读边丢,只保留最后 2000 字节;完成仍只看 proc.wait(),结束后给读取 0.5 秒再关闭管道
- run-command:{files} 按原始路径列表展开,含换行的路径不再拆成两个参数
- 通知:插件渠道 extra 里的已声明字段与内置渠道一样展开 $VAR
- slack:只在 HTTP 400 invalid_blocks 时退回纯文字重试,其它失败不重发
- onebot:先发文字,再单独发海报;结果只看文字,去掉重试
- strm-writer:media_root 为 "/" 时正确映射完整路径
|
2026-10-21 11:26:23 +02:00 |
|
Estrella Pan
|
81bbf9c71d
|
fix(plugins): 审查修复——示例插件与通知渠道的若干问题
- run-command:等待进程退出而不是等 stderr 关闭(后台子进程不再导致误判超时),
stderr 写临时文件取末尾;只替换整项为 {字段} 的参数,{files} 展开为每个文件
一个参数,夹带的占位符原样保留;不把宿主自己的 AB_* 环境变量传给命令;README
说明脚本从 AB_* 环境变量读取事件数据
- strm-writer:路径规范化后为媒体根目录本身(. / ..)时跳过,不再写出 STRM 目录之外的文件
- slack-notifier / onebot-notifier:带海报发送失败时去掉图片只发文字重试一次
- wpush-notifier / onebot-notifier:非 2xx 时报告 HTTP 状态,响应不是 JSON 时不再报解析异常
- 插件通知渠道的 extra 包含已填写的已声明字段(group、icon 等),不只是 model_extra
- 新增通知渠道时切换类型会清掉上一类型的字段,避免 Bark 带上残留的 Webhook URL
|
2026-10-21 11:05:59 +02:00 |
|
Estrella Pan
|
415154be3d
|
Merge branch 'feat/more-plugins' into feat/notifier-plugins
# Conflicts:
# backend/src/test/test_plugin_examples.py
# docs/dev/plugins/examples.md
|
2026-10-21 09:13:47 +02:00 |
|
Estrella Pan
|
8312f47769
|
feat(plugins): 新增 run-command、strm-writer、synology-chat-notifier、slack-notifier 示例插件
- run-command:torrent.organized / file.renamed 后运行外部命令,参数列表直接 exec,
事件字段以 AB_* 环境变量与 {占位符} 传入,超时终止(#897、#668)
- strm-writer:按媒体目录结构写 .strm,内容为地址前缀加相对路径(#428)
- synology-chat-notifier:Synology Chat 传入 Webhook,payload= 表单 JSON(#887)
- slack-notifier:Slack Incoming Webhook,带海报时附图片块(#277)
|
2026-10-21 09:08:56 +02:00 |
|
Estrella Pan
|
403cf94572
|
feat(plugins): 新增 WPUSH、OneBot、Apprise 官方通知插件示例
- wpush-notifier:POST JSON 到 WPUSH 接口,code == 0 才算成功
- onebot-notifier:OneBot v11 私聊 / 群消息,可附带 poster_url 海报
- apprise-notifier:调用 Apprise API 服务器,支持 URL 列表与配置键
- 宿主加载测试与示例文档登记三个新渠道
|
2026-10-21 08:53:28 +02:00 |
|
Estrella Pan
|
124b156b7a
|
fix: 修复 4.0 工具链升级审查问题
- ab-plugin new 与示例插件的 requires-python 改为 >=3.14,与 SDK 0.6.0 一致
- 示例插件 ntfy-notifier / webhook-on-event 改用 httpx2
- openai / anthropic / google-genai 下限改为实际需要的大版本
- 插件 MCP 工具的 input_schema 无效时计入熔断
- 复制 RSS 链接在 HTTP 部署下回退到 execCommand(useClipboard legacy)
- CI 步骤名、PLAYWRIGHT_VERSION、README 徽章与 e2e 指南改为 Python 3.14 / Playwright 1.64.1
|
2026-10-20 12:12:58 +02:00 |
|
Estrella Pan
|
f3359b17fd
|
feat(examples): manual-pick 前端改由 web-src/ 构建,补充测试
插件市场要求带前端的插件以 web-src/ 源码提交、至少有 1 个测试。ab-plugin pack
不再打包 web-src/,运行时只需要构建出的 web/。
|
2026-10-09 10:07:37 +02:00 |
|
Estrella Pan
|
6439577b2b
|
refactor(4.0): 改正描述旧行为的注释与文档字符串
- ab_sdk 的扩展点与下载器说明仍写 downloader.type,P2.5 起改为下载器实例的 provider
- ab_sdk 与示例插件中的阶段编号(P3 / P4 / P5 / P6)对插件作者没有意义,去掉
- EventBus.drain 只有测试调用;hardlink 注释中的 slots 已实施
|
2026-10-08 17:24:14 +02:00 |
|
Estrella Pan
|
a1adf237b8
|
feat(4.0-P7): 新增 5 个示例插件,逐个运行契约与行为测试
- webhook-on-event、custom-rss-site、template-rename、nfo-writer、ntfy-notifier
- scripts/test_example_plugins.sh 对每个示例运行 ab-plugin validate 与自带测试
- 宿主侧测试把全部示例载入 PluginManager,断言 Provider 与钩子已登记
- NotifierContract 发现 ntfy 示例的中文标题请求头缺陷,已改用 bytes 请求头
|
2026-10-08 14:50:59 +02:00 |
|
Estrella Pan
|
91e01f716f
|
feat(4.0-P6): WebUI 插件挂载点、AbHost 宿主实现与示例插件「手动选种」
- PluginSlot:导入插件模块并在 Shadow DOM 中挂载 custom element,host / context 先于插入设置;加载失败、元素未定义或运行时报错只让该插件的挂载点显示「插件组件加载失败」
- AbHost:api 限定在 /api/v1/plugins/<id>/ 与只读 GET 的宿主 API;i18n、主题、toast;events.on 订阅 SSE 新增的 bus 帧(后端把总线事件转发给前端)
- 五个挂载点:设置分区、番剧详情标签、卡片操作、侧边栏页面 /plugins/:id、首页小组件
- 未启用的内置 / 已允许的插件也能取得配置 schema,首次启用前即可填写配置
- Schema 表单支持对象数组(hardlink 的 path_map)
- hardlink 插件自带 settings.section 元素「链接已有文件」,调用补链路由并显示计数
- examples/plugins/manual-pick:详情页标签示例,含插件路由与事件订阅
- 设计文档第 0 节记录调整,第 10 节标记 P6 已完成
|
2026-10-08 13:50:46 +02:00 |
|