diff --git a/app/fetcher/__init__.py b/app/fetcher/__init__.py index 6d8e46d..a2390f8 100644 --- a/app/fetcher/__init__.py +++ b/app/fetcher/__init__.py @@ -1,8 +1,8 @@ from __future__ import annotations from .beatmap import BeatmapFetcher +from .beatmap_raw import BeatmapRawFetcher from .beatmapset import BeatmapsetFetcher -from .osu_dot_direct import BeatmapRawFetcher class Fetcher(BeatmapFetcher, BeatmapsetFetcher, BeatmapRawFetcher): diff --git a/app/fetcher/osu_dot_direct.py b/app/fetcher/beatmap_raw.py similarity index 86% rename from app/fetcher/osu_dot_direct.py rename to app/fetcher/beatmap_raw.py index 529eae4..f650df3 100644 --- a/app/fetcher/osu_dot_direct.py +++ b/app/fetcher/beatmap_raw.py @@ -2,7 +2,7 @@ from __future__ import annotations from ._base import BaseFetcher -from httpx import AsyncClient +from httpx import AsyncClient, HTTPError from httpx._models import Response from loguru import logger import redis.asyncio as redis @@ -22,12 +22,10 @@ class BeatmapRawFetcher(BaseFetcher): f"[BeatmapRawFetcher] get_beatmap_raw: {req_url}" ) resp = await self._request(req_url) - if resp.status_code == 429: + if resp.status_code >= 400: continue - elif resp.status_code < 400: - return resp.text - else: - resp.raise_for_status() + return resp.text + raise HTTPError("Failed to fetch beatmap") async def _request(self, url: str) -> Response: async with AsyncClient() as client: