mirror of
https://github.com/jxxghp/MoviePilot.git
synced 2026-08-29 12:06:51 +08:00
48 lines
1.5 KiB
Python
48 lines
1.5 KiB
Python
from typing import Any, Annotated
|
|
|
|
from fastapi import BackgroundTasks, Request, Depends
|
|
|
|
from app.schemas.response import Response as _SchemaResponse
|
|
from app.api.response import ResponseAPIRouter
|
|
from app.chain.webhook import WebhookChain
|
|
from app.adapters.web.security.access import verify_apitoken
|
|
|
|
router = ResponseAPIRouter()
|
|
|
|
|
|
def start_webhook_chain(body: Any, form: Any, args: Any):
|
|
"""
|
|
启动链式任务
|
|
"""
|
|
WebhookChain().message(body=body, form=form, args=args)
|
|
|
|
|
|
@router.post("/", summary="Webhook消息响应", response_model=_SchemaResponse[None])
|
|
async def webhook_message(
|
|
background_tasks: BackgroundTasks,
|
|
request: Request,
|
|
_: Annotated[str, Depends(verify_apitoken)],
|
|
) -> Any:
|
|
"""
|
|
Webhook响应,配置请求中需要添加参数:token=API_TOKEN&source=媒体服务器名
|
|
"""
|
|
body = await request.body()
|
|
form = await request.form()
|
|
args = request.query_params
|
|
background_tasks.add_task(start_webhook_chain, body, form, args)
|
|
return _SchemaResponse(success=True)
|
|
|
|
|
|
@router.get("/", summary="Webhook消息响应", response_model=_SchemaResponse[None])
|
|
async def webhook_message_get(
|
|
background_tasks: BackgroundTasks,
|
|
request: Request,
|
|
_: Annotated[str, Depends(verify_apitoken)],
|
|
) -> Any:
|
|
"""
|
|
Webhook响应,配置请求中需要添加参数:token=API_TOKEN&source=媒体服务器名
|
|
"""
|
|
args = request.query_params
|
|
background_tasks.add_task(start_webhook_chain, None, None, args)
|
|
return _SchemaResponse(success=True)
|