mirror of
https://github.com/EstrellaXD/Auto_Bangumi.git
synced 2026-10-29 19:57:14 +08:00
- docs/dev/plugins.md 改为总览与导航,旧内容拆入 docs/dev/plugins/ - 新增核心概念、配置表单、事件、前端挂载点、命令行、签名与分发、内置插件、示例页 - 每个扩展点一页,侧边栏由页面表生成 - 改正旧文档中下载器配置、hardlink path_map 与补链按钮的过时描述
1.1 KiB
1.1 KiB
请求头(http.request)
transform 钩子。AB 发出的 GET 请求(RSS、种子文件、站点页面)都会经过它。适合给私有站点加 Cookie 或换 User-Agent。只能修改请求头:url 与 method 的改动会被忽略。
from dataclasses import replace
from pydantic import BaseModel
from ab_sdk import Plugin, hook, points, secret_field
class Options(BaseModel):
cookie: str = secret_field(description="站点 Cookie")
class PrivateSite(Plugin[Options]):
config_model = Options
@hook(points.HTTP_REQUEST)
def auth(self, request):
if "pt.example.com" not in request.url:
return None
return replace(request, headers={**request.headers, "Cookie": self.config.cookie})
- 参数
HttpRequest有method、url、headers。返回修改后的副本,或None表示不修改。 - 这个钩子在每个请求上都会调用。保持轻量,不要在里面发起网络请求。
- 用
secret_field保存 Cookie,WebUI 只显示掩码。
示例:examples/plugins/custom-rss-site。