feat(news): seed 14 tech/AI news sources (8 countries)
briefing/digest 의 cross-country tech 토픽 다양성 확보용 source seed. - KR ×2: GeekNews (Hada), AI Times - US ×4: Hacker News, ArsTechnica AI, The Verge Tech, TechCrunch - GB ×2: The Register, BBC Technology - DE ×1: Heise Online - JP ×2: ITmedia News, Gigazine - CN ×1: 36Kr - FR ×1: ZDNet France - IN ×1: Analytics India Magazine idempotent: WHERE NOT EXISTS (name). 운영 DB 에는 이미 적용됨, 백업 복원/신규 deploy 환경에서 자동 시드. 수집 검증 (2026-05-13 1차 fire, 8 source): - 성공: Hacker News 30 / ArsTechnica AI 20 / Verge 10 / TC 20 / Register 50 / Heise 153 (총 283건 신규) - 후속 fix: GeekNews 의 http redirect → feedburner 직접 URL, AI Times URL 오타 → S1N1.xml. content category 는 news_sources.category (Tech / AI) 로 보존, briefing 의 country 필터 (MIN_COUNTRIES_PER_TOPIC ≥ 2) 와 호환.
This commit is contained in:
@@ -0,0 +1,26 @@
|
||||
-- 2026-05-13 — 기술/AI 뉴스 source seed (14건, 8개국)
|
||||
-- WHERE NOT EXISTS 로 idempotent. 기존 row 보존, 신규만 insert.
|
||||
-- briefing/digest 의 cross-country tech 토픽 cluster 다양성 확보.
|
||||
-- 8 country: CN, DE, FR, GB, IN, JP, KR, US. category = Tech / AI.
|
||||
|
||||
INSERT INTO news_sources (name, country, language, feed_type, feed_url, category, enabled)
|
||||
SELECT v.name, v.country, v.language, v.feed_type, v.feed_url, v.category, v.enabled
|
||||
FROM (VALUES
|
||||
('GeekNews (Hada)', 'KR', 'ko', 'rss', 'https://feeds.feedburner.com/geeknews-feed', 'Tech', true),
|
||||
('AI Times', 'KR', 'ko', 'rss', 'https://www.aitimes.com/rss/S1N1.xml', 'AI', true),
|
||||
('Hacker News', 'US', 'en', 'rss', 'https://hnrss.org/frontpage?count=30', 'Tech', true),
|
||||
('ArsTechnica AI', 'US', 'en', 'rss', 'https://arstechnica.com/ai/feed/', 'AI', true),
|
||||
('The Verge Tech', 'US', 'en', 'rss', 'https://www.theverge.com/rss/index.xml', 'Tech', true),
|
||||
('TechCrunch', 'US', 'en', 'rss', 'https://techcrunch.com/feed/', 'Tech', true),
|
||||
('The Register', 'GB', 'en', 'rss', 'https://www.theregister.com/headlines.atom', 'Tech', true),
|
||||
('Heise Online', 'DE', 'de', 'rss', 'https://www.heise.de/rss/heise-atom.xml', 'Tech', true),
|
||||
('ITmedia News', 'JP', 'ja', 'rss', 'https://rss.itmedia.co.jp/rss/2.0/aiplus.xml', 'AI', true),
|
||||
('Gigazine', 'JP', 'ja', 'rss', 'https://gigazine.net/news/rss_2.0/', 'Tech', true),
|
||||
('36Kr', 'CN', 'zh', 'rss', 'https://36kr.com/feed', 'Tech', true),
|
||||
('Numerama', 'FR', 'fr', 'rss', 'https://www.numerama.com/feed', 'Tech', true),
|
||||
('YourStory', 'IN', 'en', 'rss', 'https://yourstory.com/feed', 'Tech', true),
|
||||
('BBC Technology', 'GB', 'en', 'rss', 'https://feeds.bbci.co.uk/news/technology/rss.xml', 'Tech', true)
|
||||
) AS v(name, country, language, feed_type, feed_url, category, enabled)
|
||||
WHERE NOT EXISTS (
|
||||
SELECT 1 FROM news_sources ns WHERE ns.name = v.name
|
||||
);
|
||||
Reference in New Issue
Block a user