feat(news): F1 — monitor RSS best-effort + comando /news manual
Build & Deploy ResearchOwl / build-and-push (push) Successful in 7s
Build & Deploy ResearchOwl / build-and-push (push) Successful in 7s
src/news/monitor.py: 7 feeds UAP/OVNI, matching normalizado (NFKD sin tildes) con word-boundary para tokens cortos (uap/ufo/nhi/aaro/ovni) y substring para frases. poll_feeds aísla cada feed (uno caído nunca tumba el run) y parsea en hilo aparte para no bloquear el event loop; cold-start por fuente (siembra sin notificar). format_digest agrupa por fuente y trocea <4000 chars. /news refresca y muestra novedades 24h. Capa desacoplada: src/news NO importa de src/bot. No toca el scheduler (F2). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
fd814a3ccf
commit
c0b0c1ba0a
+2
-2
@@ -65,8 +65,8 @@ class Settings(BaseSettings):
|
||||
NEWS_CHAT_ID: Optional[int] = Field(None, env="NEWS_CHAT_ID")
|
||||
NEWS_KEYWORDS: str = Field(
|
||||
"ovni,ovnis,uap,ufo,desclasificado,desclasificacion,declassified,"
|
||||
"avistamiento,sighting,extraterrestre,non-human,nhi,grusch,pentagono,"
|
||||
"pentagon,aaro,pursue,fenomeno aereo,whistleblower",
|
||||
"avistamiento,sighting,extraterrestre,non-human,nhi,grusch,"
|
||||
"aaro,pursue,fenomeno aereo,whistleblower",
|
||||
env="NEWS_KEYWORDS",
|
||||
)
|
||||
NEWS_MAX_ITEMS: int = Field(15, env="NEWS_MAX_ITEMS")
|
||||
|
||||
Reference in New Issue
Block a user