fix seerr api
This commit is contained in:
parent
9439d02351
commit
07bd5f1926
@ -8,7 +8,7 @@ from app.chain.media import MediaChain
|
|||||||
from app.chain.subscribe import SubscribeChain
|
from app.chain.subscribe import SubscribeChain
|
||||||
from app.core.config import settings
|
from app.core.config import settings
|
||||||
from app.core.metainfo import MetaInfo
|
from app.core.metainfo import MetaInfo
|
||||||
from app.core.security import verify_uri_token
|
from app.core.security import verify_uri_apikey
|
||||||
from app.db import get_db
|
from app.db import get_db
|
||||||
from app.db.models.subscribe import Subscribe
|
from app.db.models.subscribe import Subscribe
|
||||||
from app.schemas import RadarrMovie, SonarrSeries
|
from app.schemas import RadarrMovie, SonarrSeries
|
||||||
@ -19,7 +19,7 @@ arr_router = APIRouter(tags=['servarr'])
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.get("/system/status", summary="系统状态")
|
@arr_router.get("/system/status", summary="系统状态")
|
||||||
def arr_system_status(_: str = Depends(verify_uri_token)) -> Any:
|
def arr_system_status(_: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
模拟Radarr、Sonarr系统状态
|
模拟Radarr、Sonarr系统状态
|
||||||
"""
|
"""
|
||||||
@ -73,7 +73,7 @@ def arr_system_status(_: str = Depends(verify_uri_token)) -> Any:
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.get("/qualityProfile", summary="质量配置")
|
@arr_router.get("/qualityProfile", summary="质量配置")
|
||||||
def arr_qualityProfile(_: str = Depends(verify_uri_token)) -> Any:
|
def arr_qualityProfile(_: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
模拟Radarr、Sonarr质量配置
|
模拟Radarr、Sonarr质量配置
|
||||||
"""
|
"""
|
||||||
@ -114,7 +114,7 @@ def arr_qualityProfile(_: str = Depends(verify_uri_token)) -> Any:
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.get("/rootfolder", summary="根目录")
|
@arr_router.get("/rootfolder", summary="根目录")
|
||||||
def arr_rootfolder(_: str = Depends(verify_uri_token)) -> Any:
|
def arr_rootfolder(_: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
模拟Radarr、Sonarr根目录
|
模拟Radarr、Sonarr根目录
|
||||||
"""
|
"""
|
||||||
@ -130,7 +130,7 @@ def arr_rootfolder(_: str = Depends(verify_uri_token)) -> Any:
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.get("/tag", summary="标签")
|
@arr_router.get("/tag", summary="标签")
|
||||||
def arr_tag(_: str = Depends(verify_uri_token)) -> Any:
|
def arr_tag(_: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
模拟Radarr、Sonarr标签
|
模拟Radarr、Sonarr标签
|
||||||
"""
|
"""
|
||||||
@ -143,7 +143,7 @@ def arr_tag(_: str = Depends(verify_uri_token)) -> Any:
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.get("/languageprofile", summary="语言")
|
@arr_router.get("/languageprofile", summary="语言")
|
||||||
def arr_languageprofile(_: str = Depends(verify_uri_token)) -> Any:
|
def arr_languageprofile(_: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
模拟Radarr、Sonarr语言
|
模拟Radarr、Sonarr语言
|
||||||
"""
|
"""
|
||||||
@ -169,7 +169,7 @@ def arr_languageprofile(_: str = Depends(verify_uri_token)) -> Any:
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.get("/movie", summary="所有订阅电影", response_model=List[schemas.RadarrMovie])
|
@arr_router.get("/movie", summary="所有订阅电影", response_model=List[schemas.RadarrMovie])
|
||||||
def arr_movies(_: str = Depends(verify_uri_token), db: Session = Depends(get_db)) -> Any:
|
def arr_movies(_: str = Depends(verify_uri_apikey), db: Session = Depends(get_db)) -> Any:
|
||||||
"""
|
"""
|
||||||
查询Rardar电影
|
查询Rardar电影
|
||||||
"""
|
"""
|
||||||
@ -260,7 +260,7 @@ def arr_movies(_: str = Depends(verify_uri_token), db: Session = Depends(get_db)
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.get("/movie/lookup", summary="查询电影", response_model=List[schemas.RadarrMovie])
|
@arr_router.get("/movie/lookup", summary="查询电影", response_model=List[schemas.RadarrMovie])
|
||||||
def arr_movie_lookup(term: str, db: Session = Depends(get_db), _: str = Depends(verify_uri_token)) -> Any:
|
def arr_movie_lookup(term: str, db: Session = Depends(get_db), _: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
查询Rardar电影 term: `tmdb:${id}`
|
查询Rardar电影 term: `tmdb:${id}`
|
||||||
存在和不存在均不能返回错误
|
存在和不存在均不能返回错误
|
||||||
@ -306,7 +306,7 @@ def arr_movie_lookup(term: str, db: Session = Depends(get_db), _: str = Depends(
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.get("/movie/{mid}", summary="电影订阅详情", response_model=schemas.RadarrMovie)
|
@arr_router.get("/movie/{mid}", summary="电影订阅详情", response_model=schemas.RadarrMovie)
|
||||||
def arr_movie(mid: int, db: Session = Depends(get_db), _: str = Depends(verify_uri_token)) -> Any:
|
def arr_movie(mid: int, db: Session = Depends(get_db), _: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
查询Rardar电影订阅
|
查询Rardar电影订阅
|
||||||
"""
|
"""
|
||||||
@ -334,7 +334,7 @@ def arr_movie(mid: int, db: Session = Depends(get_db), _: str = Depends(verify_u
|
|||||||
@arr_router.post("/movie", summary="新增电影订阅")
|
@arr_router.post("/movie", summary="新增电影订阅")
|
||||||
def arr_add_movie(movie: RadarrMovie,
|
def arr_add_movie(movie: RadarrMovie,
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
_: str = Depends(verify_uri_token)
|
_: str = Depends(verify_uri_apikey)
|
||||||
) -> Any:
|
) -> Any:
|
||||||
"""
|
"""
|
||||||
新增Rardar电影订阅
|
新增Rardar电影订阅
|
||||||
@ -363,7 +363,7 @@ def arr_add_movie(movie: RadarrMovie,
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.delete("/movie/{mid}", summary="删除电影订阅", response_model=schemas.Response)
|
@arr_router.delete("/movie/{mid}", summary="删除电影订阅", response_model=schemas.Response)
|
||||||
def arr_remove_movie(mid: int, db: Session = Depends(get_db), _: str = Depends(verify_uri_token)) -> Any:
|
def arr_remove_movie(mid: int, db: Session = Depends(get_db), _: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
删除Rardar电影订阅
|
删除Rardar电影订阅
|
||||||
"""
|
"""
|
||||||
@ -379,7 +379,7 @@ def arr_remove_movie(mid: int, db: Session = Depends(get_db), _: str = Depends(v
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.get("/series", summary="所有剧集", response_model=List[schemas.SonarrSeries])
|
@arr_router.get("/series", summary="所有剧集", response_model=List[schemas.SonarrSeries])
|
||||||
def arr_series(_: str = Depends(verify_uri_token), db: Session = Depends(get_db)) -> Any:
|
def arr_series(_: str = Depends(verify_uri_apikey), db: Session = Depends(get_db)) -> Any:
|
||||||
"""
|
"""
|
||||||
查询Sonarr剧集
|
查询Sonarr剧集
|
||||||
"""
|
"""
|
||||||
@ -515,7 +515,7 @@ def arr_series(_: str = Depends(verify_uri_token), db: Session = Depends(get_db)
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.get("/series/lookup", summary="查询剧集")
|
@arr_router.get("/series/lookup", summary="查询剧集")
|
||||||
def arr_series_lookup(term: str, db: Session = Depends(get_db), _: str = Depends(verify_uri_token)) -> Any:
|
def arr_series_lookup(term: str, db: Session = Depends(get_db), _: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
查询Sonarr剧集 term: `tvdb:${id}` title
|
查询Sonarr剧集 term: `tvdb:${id}` title
|
||||||
"""
|
"""
|
||||||
@ -604,7 +604,7 @@ def arr_series_lookup(term: str, db: Session = Depends(get_db), _: str = Depends
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.get("/series/{tid}", summary="剧集详情")
|
@arr_router.get("/series/{tid}", summary="剧集详情")
|
||||||
def arr_serie(tid: int, db: Session = Depends(get_db), _: str = Depends(verify_uri_token)) -> Any:
|
def arr_serie(tid: int, db: Session = Depends(get_db), _: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
查询Sonarr剧集
|
查询Sonarr剧集
|
||||||
"""
|
"""
|
||||||
@ -640,7 +640,7 @@ def arr_serie(tid: int, db: Session = Depends(get_db), _: str = Depends(verify_u
|
|||||||
@arr_router.post("/series", summary="新增剧集订阅")
|
@arr_router.post("/series", summary="新增剧集订阅")
|
||||||
def arr_add_series(tv: schemas.SonarrSeries,
|
def arr_add_series(tv: schemas.SonarrSeries,
|
||||||
db: Session = Depends(get_db),
|
db: Session = Depends(get_db),
|
||||||
_: str = Depends(verify_uri_token)) -> Any:
|
_: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
新增Sonarr剧集订阅
|
新增Sonarr剧集订阅
|
||||||
"""
|
"""
|
||||||
@ -682,7 +682,7 @@ def arr_add_series(tv: schemas.SonarrSeries,
|
|||||||
|
|
||||||
|
|
||||||
@arr_router.delete("/series/{tid}", summary="删除剧集订阅")
|
@arr_router.delete("/series/{tid}", summary="删除剧集订阅")
|
||||||
def arr_remove_series(tid: int, db: Session = Depends(get_db), _: str = Depends(verify_uri_token)) -> Any:
|
def arr_remove_series(tid: int, db: Session = Depends(get_db), _: str = Depends(verify_uri_apikey)) -> Any:
|
||||||
"""
|
"""
|
||||||
删除Sonarr剧集订阅
|
删除Sonarr剧集订阅
|
||||||
"""
|
"""
|
||||||
|
@ -56,14 +56,16 @@ def get_token(token: str = None) -> str:
|
|||||||
"""
|
"""
|
||||||
从请求URL中获取token
|
从请求URL中获取token
|
||||||
"""
|
"""
|
||||||
if token is None:
|
|
||||||
raise HTTPException(
|
|
||||||
status_code=status.HTTP_401_UNAUTHORIZED,
|
|
||||||
detail="token请求参数缺失"
|
|
||||||
)
|
|
||||||
return token
|
return token
|
||||||
|
|
||||||
|
|
||||||
|
def get_apikey(apikey: str = None) -> str:
|
||||||
|
"""
|
||||||
|
从请求URL中获取apikey
|
||||||
|
"""
|
||||||
|
return apikey
|
||||||
|
|
||||||
|
|
||||||
def verify_uri_token(token: str = Depends(get_token)) -> str:
|
def verify_uri_token(token: str = Depends(get_token)) -> str:
|
||||||
"""
|
"""
|
||||||
通过依赖项使用token进行身份认证
|
通过依赖项使用token进行身份认证
|
||||||
@ -76,6 +78,18 @@ def verify_uri_token(token: str = Depends(get_token)) -> str:
|
|||||||
return token
|
return token
|
||||||
|
|
||||||
|
|
||||||
|
def verify_uri_apikey(apikey: str = Depends(get_apikey)) -> str:
|
||||||
|
"""
|
||||||
|
通过依赖项使用apikey进行身份认证
|
||||||
|
"""
|
||||||
|
if apikey != settings.API_KEY:
|
||||||
|
raise HTTPException(
|
||||||
|
status_code=status.HTTP_401_UNAUTHORIZED,
|
||||||
|
detail="apikey校验不通过"
|
||||||
|
)
|
||||||
|
return apikey
|
||||||
|
|
||||||
|
|
||||||
def verify_password(plain_password: str, hashed_password: str) -> bool:
|
def verify_password(plain_password: str, hashed_password: str) -> bool:
|
||||||
return pwd_context.verify(plain_password, hashed_password)
|
return pwd_context.verify(plain_password, hashed_password)
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user