add douban image proxy

This commit is contained in:
jxxghp
2023-07-10 12:27:03 +08:00
parent b6f2420c57
commit 0b33094b9c
2 changed files with 18 additions and 4 deletions

View File

@ -1,13 +1,14 @@
from typing import List, Any
from fastapi import APIRouter, Depends
from fastapi import BackgroundTasks
from fastapi import APIRouter, Depends, Response, BackgroundTasks
from app import schemas
from app.chain.douban import DoubanChain
from app.core.config import settings
from app.core.context import MediaInfo
from app.core.security import verify_token
from app.schemas import MediaType
from app.utils.http import RequestUtils
router = APIRouter()
@ -30,6 +31,21 @@ def sync_douban(
return schemas.Response(success=True, message="任务已启动")
@router.get("/img/{imgurl:path}", summary="豆瓣图片代理")
def douban_img(imgurl: str) -> Any:
"""
豆瓣图片代理
"""
if not imgurl:
return None
response = RequestUtils(headers={
'Referer': "https://movie.douban.com/"
}, ua=settings.USER_AGENT).get_res(url=imgurl)
if response:
return Response(content=response.content, media_type="image/jpeg")
return None
@router.get("/recognize/{doubanid}", summary="豆瓣ID识别", response_model=schemas.Context)
def recognize_doubanid(doubanid: str,
_: schemas.TokenPayload = Depends(verify_token)) -> Any:

View File

@ -400,8 +400,6 @@ class MediaInfo:
self.poster_path = info.get("pic", {}).get("large")
if not self.poster_path and info.get("cover_url"):
self.poster_path = info.get("cover_url")
if self.poster_path:
self.poster_path = self.poster_path.replace("m_ratio_poster", "l_ratio_poster")
# 简介
if not self.overview:
self.overview = info.get("intro") or info.get("card_subtitle") or ""