diff --git a/app/api/news.py b/app/api/news.py index 3823870..119779d 100644 --- a/app/api/news.py +++ b/app/api/news.py @@ -1,5 +1,6 @@ """뉴스 소스 관리 API""" +from datetime import datetime from typing import Annotated from fastapi import APIRouter, Depends, HTTPException @@ -24,8 +25,8 @@ class NewsSourceResponse(BaseModel): category: str | None language: str | None enabled: bool - last_fetched_at: str | None - created_at: str + last_fetched_at: datetime | None = None + created_at: datetime | None = None class Config: from_attributes = True diff --git a/frontend/src/routes/news/+page.svelte b/frontend/src/routes/news/+page.svelte index 434d4d0..3eaf8a3 100644 --- a/frontend/src/routes/news/+page.svelte +++ b/frontend/src/routes/news/+page.svelte @@ -30,8 +30,17 @@ try { const srcData = await api('/news/sources'); const tree = {}; + // 신문사 매핑: 이름에서 마지막 단어를 분야로 분리 + const PAPER_NAMES = { + '경향신문': '경향신문', '朝日新聞': '朝日新聞', 'NYT': 'NYT', + 'Le Monde': 'Le Monde', 'Der Spiegel': 'Der Spiegel', '新华网': '新华网', + }; srcData.forEach(s => { - const paper = s.name.split(' ')[0]; + let paper = ''; + for (const [key] of Object.entries(PAPER_NAMES)) { + if (s.name.startsWith(key)) { paper = key; break; } + } + if (!paper) paper = s.name; const cat = s.category || ''; if (!tree[paper]) tree[paper] = []; if (cat && !tree[paper].includes(cat)) tree[paper].push(cat);