From c7d534204bc04db2142ed9c99cdd12445330f49e Mon Sep 17 00:00:00 2001 From: tsukumi Date: Mon, 15 Apr 2024 11:31:49 +0000 Subject: [PATCH] =?UTF-8?q?Refactor:=20[Server][Routers]=20QuerySet=20?= =?UTF-8?q?=E3=81=AE=E6=9B=B8=E3=81=8D=E6=96=B9=E3=82=92=E7=B5=B1=E4=B8=80?= =?UTF-8?q?=20=E4=BB=96=E3=81=AB=E3=82=82=E7=B5=B1=E4=B8=80=E3=81=A7?= =?UTF-8?q?=E3=81=8D=E3=81=A6=E3=81=84=E3=81=AA=E3=81=84=E7=AE=87=E6=89=80?= =?UTF-8?q?=E3=81=AF=E3=81=82=E3=82=8B=E3=81=8C=E3=80=81=E6=84=8F=E5=9B=B3?= =?UTF-8?q?=E3=81=97=E3=81=AA=E3=81=84=E3=83=87=E3=82=B0=E3=83=AC=E3=81=8C?= =?UTF-8?q?=E6=80=96=E3=81=84=E3=81=AE=E3=81=A7=E5=8F=96=E3=82=8A=E6=95=A2?= =?UTF-8?q?=E3=81=88=E3=81=9A=E3=81=93=E3=81=AE=E8=BE=BA=E3=81=A0=E3=81=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/app/routers/SeriesRouter.py | 13 +++++++------ server/app/routers/VideosRouter.py | 10 ++++++---- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/server/app/routers/SeriesRouter.py b/server/app/routers/SeriesRouter.py index 00719537..d5cf28a7 100644 --- a/server/app/routers/SeriesRouter.py +++ b/server/app/routers/SeriesRouter.py @@ -36,9 +36,9 @@ async def SeriesListAPI( PAGE_SIZE = 100 series_list = await Series.all() \ - .prefetch_related('broadcast_periods') \ - .prefetch_related('broadcast_periods__recorded_programs') \ + .select_related('broadcast_periods') \ .select_related('broadcast_periods__channel') \ + .select_related('broadcast_periods__recorded_programs') \ .select_related('broadcast_periods__recorded_programs__recorded_video') \ .select_related('broadcast_periods__recorded_programs__channel') \ .order_by('-updated_at' if order == 'desc' else 'updated_at') \ @@ -64,12 +64,13 @@ async def SeriesAPI( 指定されたシリーズ番組を取得する。 """ - series = await Series.get_or_none(id=series_id) \ - .prefetch_related('broadcast_periods') \ - .prefetch_related('broadcast_periods__recorded_programs') \ + series = await Series.all() \ + .select_related('broadcast_periods') \ .select_related('broadcast_periods__channel') \ + .select_related('broadcast_periods__recorded_programs') \ .select_related('broadcast_periods__recorded_programs__recorded_video') \ - .select_related('broadcast_periods__recorded_programs__channel') + .select_related('broadcast_periods__recorded_programs__channel') \ + .get_or_none(id=series_id) if series is None: logging.error(f'[SeriesRouter][SeriesAPI] Specified series_id was not found [series_id: {series_id}]') raise HTTPException( diff --git a/server/app/routers/VideosRouter.py b/server/app/routers/VideosRouter.py index d32d91a9..a84a613c 100644 --- a/server/app/routers/VideosRouter.py +++ b/server/app/routers/VideosRouter.py @@ -62,9 +62,10 @@ async def VideoAPI( 指定された録画番組を取得する。 """ - recorded_program = await RecordedProgram.get_or_none(id=video_id) \ + recorded_program = await RecordedProgram.all() \ .select_related('recorded_video') \ - .select_related('channel') + .select_related('channel') \ + .get_or_none(id=video_id) if recorded_program is None: logging.error(f'[VideosRouter][VideoAPI] Specified video_id was not found [video_id: {video_id}]') raise HTTPException( @@ -89,9 +90,10 @@ async def VideoJikkyoCommentsAPI( ニコニコ実況 過去ログ API をラップし、DPlayer が受け付けるコメント形式に変換して返す。 """ - recorded_program = await RecordedProgram.get_or_none(id=video_id) \ + recorded_program = await RecordedProgram.all() \ .select_related('recorded_video') \ - .select_related('channel') + .select_related('channel') \ + .get_or_none(id=video_id) if recorded_program is None: logging.error(f'[VideosRouter][VideoAPI] Specified video_id was not found [video_id: {video_id}]') raise HTTPException(