From 50d644466ebc8e389e8aeb5135e452a765b8fa0f Mon Sep 17 00:00:00 2001 From: jxxghp Date: Wed, 19 Jul 2023 15:09:46 +0800 Subject: [PATCH] tmdb wallpaper --- app/api/apiv1.py | 2 +- app/api/endpoints/login.py | 24 ++++++++++++++++++++++-- app/chain/transfer.py | 2 +- app/schemas/types.py | 2 ++ 4 files changed, 26 insertions(+), 4 deletions(-) diff --git a/app/api/apiv1.py b/app/api/apiv1.py index a504ae89..e8f17cf8 100644 --- a/app/api/apiv1.py +++ b/app/api/apiv1.py @@ -4,7 +4,7 @@ from app.api.endpoints import login, user, site, message, webhook, subscribe, \ media, douban, search, plugin, tmdb, history, system, download, dashboard api_router = APIRouter() -api_router.include_router(login.router, tags=["login"]) +api_router.include_router(login.router, prefix="/login", tags=["login"]) api_router.include_router(user.router, prefix="/user", tags=["user"]) api_router.include_router(site.router, prefix="/site", tags=["site"]) api_router.include_router(message.router, prefix="/message", tags=["message"]) diff --git a/app/api/endpoints/login.py b/app/api/endpoints/login.py index 19dbd719..80cbe68f 100644 --- a/app/api/endpoints/login.py +++ b/app/api/endpoints/login.py @@ -1,3 +1,4 @@ +import random from datetime import timedelta from typing import Any @@ -6,6 +7,7 @@ from fastapi.security import OAuth2PasswordRequestForm from sqlalchemy.orm import Session from app import schemas +from app.chain.tmdb import TmdbChain from app.chain.user import UserChain from app.core import security from app.core.config import settings @@ -18,7 +20,7 @@ from app.utils.http import RequestUtils router = APIRouter() -@router.post("/login/access-token", summary="获取token", response_model=schemas.Token) +@router.post("/access-token", summary="获取token", response_model=schemas.Token) async def login_access_token( db: Session = Depends(get_db), form_data: OAuth2PasswordRequestForm = Depends() ) -> Any: @@ -57,7 +59,7 @@ async def login_access_token( ) -@router.get("/login/wallpaper", summary="Bing每日壁纸", response_model=schemas.Response) +@router.get("/bing", summary="Bing每日壁纸", response_model=schemas.Response) def bing_wallpaper() -> Any: """ 获取Bing每日壁纸 @@ -78,3 +80,21 @@ def bing_wallpaper() -> Any: except Exception as err: print(str(err)) return schemas.Response(success=False) + + +@router.get("/tmdb", summary="TMDB电影海报", response_model=schemas.Response) +def tmdb_wallpaper() -> Any: + """ + 获取TMDB电影海报 + """ + infos = TmdbChain().tmdb_trending() + if infos: + # 随机一个电影 + while True: + info = random.choice(infos) + if info and info.get("backdrop_path"): + return schemas.Response( + success=True, + message=f"https://image.tmdb.org/t/p/original{info.get('backdrop_path')}" + ) + return schemas.Response(success=False) diff --git a/app/chain/transfer.py b/app/chain/transfer.py index 748b3988..7f7c3aa8 100644 --- a/app/chain/transfer.py +++ b/app/chain/transfer.py @@ -113,7 +113,7 @@ class TransferChain(ChainBase): logger.warn(f'未识别到媒体信息,标题:{torrent.title}') self.post_message(Notification( channel=channel, - mtype=NotificationType.Organize, + mtype=NotificationType.Manual, title=f"{torrent.title} 未识别到媒体信息,无法入库!\n" f"回复:```\n/transfer {torrent.hash} [tmdbid]\n``` 手动识别转移。", userid=userid)) diff --git a/app/schemas/types.py b/app/schemas/types.py index bee24d0d..965e9f75 100644 --- a/app/schemas/types.py +++ b/app/schemas/types.py @@ -91,6 +91,8 @@ class NotificationType(Enum): SiteMessage = "站点消息" # 媒体服务器通知 MediaServer = "媒体服务器通知" + # 处理失败需要人工干预 + Manual = "手动处理通知" class MessageChannel(Enum):