Skip to content

HTTP リクエスト (http.request) ​

transform フックです。AB が送るすべての GET リクエスト(RSS、トレントファイル、サイトのページ)がこのフックを通ります。プライベートサイトへの Cookie の追加や、User-Agent の変更に使います。変更できるのはヘッダーだけです。url と method の変更は無視されます。

python
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 は変更なしです。
  • AB はリクエストごとにこのフックを呼びます。軽く保ち、中でネットワークリクエストをしないでください。
  • Cookie は secret_field で保存します。WebUI にはマスクだけが表示されます。

例:examples/plugins/custom-rss-site。

AutoBangumiはMITライセンスの下で公開されています。(最新版: v3.3.2)