From eecc9829b4727a05780d5ae77d0b15f61738b82f Mon Sep 17 00:00:00 2001 From: jwkim Date: Fri, 14 Aug 2026 14:56:44 +0900 Subject: [PATCH] =?UTF-8?q?feat(mls):=20=EA=B3=BC=EA=B1=B0=2030=EC=9D=BC?= =?UTF-8?q?=20=EB=B0=B1=ED=95=84=20=E2=80=94=20=EC=A3=BC=EB=A7=90=20?= =?UTF-8?q?=EC=9C=84=EC=A3=BC=20=ED=8E=B8=EC=84=B1=EC=9C=BC=EB=A1=9C=20?= =?UTF-8?q?=EC=9D=BC=EC=A0=95=ED=8C=90=EC=97=90=20=EC=83=9D=EA=B8=B0?= =?UTF-8?q?=EB=8D=98=20=EA=B3=B5=EB=B0=B1=20=ED=95=B4=EC=86=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 야구식 recheck 윈도우(3일)만으론 MLS 직전 라운드(1~2주 전)가 수집되지 않아 일정판이 비고 자체 DB 폼 데이터도 부족했음. 범위를 넓혀도 scoreboard 1콜. Co-Authored-By: Claude Opus 5 --- backend/app/config.py | 4 ++++ backend/app/services/mls_espn.py | 5 +++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/backend/app/config.py b/backend/app/config.py index a0b102c..71dd242 100644 --- a/backend/app/config.py +++ b/backend/app/config.py @@ -100,6 +100,10 @@ class Settings(BaseSettings): # ESPN 비공식 API (MLS 일정·결과·순위·상세) — 키 불필요, 비공식. espn_api_base: str = "https://site.api.espn.com/apis" espn_mls_path: str = "sports/soccer/usa.1" + # MLS 과거 경기 백필 일수 — MLS 는 주말 위주 편성이라 야구식 recheck 윈도우(3일)만으론 + # 일정판에 긴 공백이 생기고 자체 DB 폼 데이터도 비어서, 최근 한 달을 함께 수집한다. + # (범위를 넓혀도 scoreboard 1콜, sync 는 추가형이라 과거 경기 재수집 무해) + mls_days_back: int = 30 @property def league_list(self) -> list[str]: diff --git a/backend/app/services/mls_espn.py b/backend/app/services/mls_espn.py index 0dac000..2915dde 100644 --- a/backend/app/services/mls_espn.py +++ b/backend/app/services/mls_espn.py @@ -110,8 +110,9 @@ async def fetch_mls_schedule() -> list[dict]: import httpx today = datetime.now(KST).date() - # ESPN dates 는 미국 동부 날짜 — KST 범위를 놓치지 않게 시작을 하루 더 당긴다. - start = today - timedelta(days=settings.result_recheck_days + 1) + # 시작 = 백필 윈도우(주말 위주 편성 공백 방지). ESPN dates 는 미국 동부 날짜라 + # KST 범위를 놓치지 않게 하루 여유를 둔다. + start = today - timedelta(days=settings.mls_days_back + 1) end = today + timedelta(days=settings.baseball_days_ahead) try: async with httpx.AsyncClient(timeout=20) as c: