fix: 뉴스 필터 트리 — 신문사명 정확 추출 + API datetime 수정
- PAPER_NAMES 매핑으로 'Le Monde', 'Der Spiegel' 등 정확 분리 - NewsSourceResponse datetime 타입 수정 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,6 @@
|
|||||||
"""뉴스 소스 관리 API"""
|
"""뉴스 소스 관리 API"""
|
||||||
|
|
||||||
|
from datetime import datetime
|
||||||
from typing import Annotated
|
from typing import Annotated
|
||||||
|
|
||||||
from fastapi import APIRouter, Depends, HTTPException
|
from fastapi import APIRouter, Depends, HTTPException
|
||||||
@@ -24,8 +25,8 @@ class NewsSourceResponse(BaseModel):
|
|||||||
category: str | None
|
category: str | None
|
||||||
language: str | None
|
language: str | None
|
||||||
enabled: bool
|
enabled: bool
|
||||||
last_fetched_at: str | None
|
last_fetched_at: datetime | None = None
|
||||||
created_at: str
|
created_at: datetime | None = None
|
||||||
|
|
||||||
class Config:
|
class Config:
|
||||||
from_attributes = True
|
from_attributes = True
|
||||||
|
|||||||
@@ -30,8 +30,17 @@
|
|||||||
try {
|
try {
|
||||||
const srcData = await api('/news/sources');
|
const srcData = await api('/news/sources');
|
||||||
const tree = {};
|
const tree = {};
|
||||||
|
// 신문사 매핑: 이름에서 마지막 단어를 분야로 분리
|
||||||
|
const PAPER_NAMES = {
|
||||||
|
'경향신문': '경향신문', '朝日新聞': '朝日新聞', 'NYT': 'NYT',
|
||||||
|
'Le Monde': 'Le Monde', 'Der Spiegel': 'Der Spiegel', '新华网': '新华网',
|
||||||
|
};
|
||||||
srcData.forEach(s => {
|
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 || '';
|
const cat = s.category || '';
|
||||||
if (!tree[paper]) tree[paper] = [];
|
if (!tree[paper]) tree[paper] = [];
|
||||||
if (cat && !tree[paper].includes(cat)) tree[paper].push(cat);
|
if (cat && !tree[paper].includes(cat)) tree[paper].push(cat);
|
||||||
|
|||||||
Reference in New Issue
Block a user