Ideas y Mejoras

Anota ideas, sugerencias y mejoras para el monitor
PDF Markdown
Todas Pendientes En progreso Completadas Descartadas
Todos Usuario Claude
Bot TG: /trending con tendencias por hora Completada

Mostrar que categorias estan subiendo en las ultimas 3 horas vs promedio, detectar spikes de noticias

claude · 19-02-2026 21:04hs · Resuelta: 20-02-2026 00:21hs
Bot TG: /resumen_dia a las 21hs Completada

Resumen automatico diario a las 21hs con top 5 noticias del dia, stats y comparacion con dia anterior

claude · 19-02-2026 21:04hs · Resuelta: 20-02-2026 00:21hs
Bot TG: Notificacion automatica de noticias score >= 8 Completada

Enviar automaticamente al chat personal cuando una noticia supere score 8, con boton para ver detalle completo

claude · 19-02-2026 21:04hs · Resuelta: 20-02-2026 00:21hs
Widget integridad: grafico sparkline 7 dias Completada

Agregar un mini-grafico (sparkline SVG) al widget de integridad del dashboard que muestre la tendencia de editadas/borradas de los ultimos 7 dias. Permite ver si hay un patron de censura en ciertos dias/horarios.

Anonimo · 19-02-2026 19:02hs · Resuelta: 20-02-2026 00:21hs
Fuentes caidas: auto-desactivar despues de 50 errores Completada

Cuando una fuente RSS acumula 50+ errores consecutivos, desactivarla automaticamente (activa=0) y enviar alerta de desactivacion. Evita que el scraper pierda tiempo con fuentes permanentemente rotas.

Anonimo · 19-02-2026 19:02hs · Resuelta: 20-02-2026 00:21hs
Resumen Telegram: separador visual entre categorias Completada

Agregar una linea separadora fina (unicode) entre bloques de categoria en el resumen Telegram para mejorar la legibilidad. Actualmente los bloques se pegan entre si.

Anonimo · 19-02-2026 19:02hs · Resuelta: 20-02-2026 00:21hs
Imagen RRSS: programar envio automatico diario Completada

Agregar scheduler que envie la imagen resumen por Telegram automaticamente a las 23:00hs cada dia, sin necesidad de llamar al endpoint manualmente

Claude · 19-02-2026 17:15hs · Resuelta: 19-02-2026 14:21hs
Imagen RRSS: modo story vertical 1080x1920 Pendiente

Agregar parametro ?formato=story que genere la imagen en formato vertical Instagram Stories (1080x1920) con layout adaptado y mas espacio para contenido

Claude · 19-02-2026 17:15hs
Imagen RRSS: top 3 noticias con thumbnails Pendiente

Descargar y redimensionar thumbnails de las 3 noticias mas importantes para incluirlas como imagenes pequenas dentro de la card de resumen

Claude · 19-02-2026 17:15hs
Imagen RRSS: grafico de barras inline por categoria Pendiente

Agregar micro-barras horizontales en la seccion de categorias mostrando proporcion relativa de cada una, tipo sparkline visual

Claude · 19-02-2026 17:15hs
Imagen RRSS: comparativa con dia anterior Pendiente

Mostrar variacion porcentual respecto al dia anterior (mas/menos noticias, nuevas categorias, etc) como indicadores delta junto al hero stat

Claude · 19-02-2026 17:15hs
Heatmap temporal animado Pendiente

Agregar un slider temporal al heatmap que muestre la evolución de la densidad de noticias hora por hora. Permitiría ver patrones temporales de eventos noticiosos en el mapa.

Claude · 19-02-2026 15:48hs
Geo-alertas por zona Pendiente

Permitir configurar alertas cuando se detecten N+ noticias en una zona específica del mapa en un período corto (ej: 3+ noticias policiales en Centro en 2 horas). Posible cluster detection.

Claude · 19-02-2026 15:48hs
API de noticias geolocalizadas Pendiente

Endpoint /api/geo-noticias que retorne noticias con coordenadas en GeoJSON para integración con otros sistemas o mapas externos.

Claude · 19-02-2026 15:48hs
Mapa de barrios con estadísticas Pendiente

Overlay de polígonos de barrios de MdP con estadísticas agregadas: total noticias, categoría predominante, tendencia (más/menos noticias que semana anterior).

Claude · 19-02-2026 15:48hs
Clustering automático de markers Completada

Implementar MarkerCluster de Leaflet para agrupar markers cercanos en clusters con número. Mejoraría la visualización cuando hay muchos markers en la misma zona.

Claude · 19-02-2026 15:48hs · Resuelta: 20-02-2026 00:21hs
resumen rrss Descartada

quiero ver de alguna forma grafica el avance del dia

Anonimo · 19-02-2026 14:33hs
Content Tracker: screenshot antes del borrado Completada

Cuando se detecta que una nota esta por ser borrada (primer 404), tomar screenshot con Playwright y guardarlo como evidencia antes de que desaparezca del cache de Google.

Claude · 19-02-2026 13:41hs · Resuelta: 20-02-2026 00:22hs
Content Tracker: reporte semanal de integridad Completada

Generar un reporte semanal con estadisticas: cuantas notas fueron editadas/borradas, que fuentes borran mas contenido, patrones temporales de edicion.

Claude · 19-02-2026 13:41hs · Resuelta: 20-02-2026 00:22hs
Content Tracker: alertas configurables por fuente Completada

Permitir configurar que fuentes monitorear mas intensamente (cada 2h en vez de 6h) y cuales ignorar. Ej: monitorear La Capital mas seguido que Google News.

Claude · 19-02-2026 13:41hs · Resuelta: 20-02-2026 00:22hs
Content Tracker: diff de contenido editado Completada

Cuando se detecta una edicion, guardar tambien el texto anterior y el nuevo para mostrar un diff visual en el dashboard (que cambio exactamente en la nota).

Claude · 19-02-2026 13:41hs · Resuelta: 20-02-2026 00:22hs
Content Tracker: panel visual en dashboard Completada

Agregar seccion en el dashboard web con tabla de noticias editadas/borradas, graficos de integridad, y filtros por fuente/estado. Endpoint /content-tracking ya tiene la API obtener_stats_tracking().

Claude · 19-02-2026 13:41hs · Resuelta: 19-02-2026 14:21hs
agrega la hora de cada nota en el resumen de Telegram Completada
carlosmdq · 19-02-2026 13:01hs
Estado scraper: historial de rendimiento Completada

Guardar metricas historicas del scraper (noticias/hora, errores/dia) para poder ver tendencias a lo largo del tiempo en un grafico.

Claude · 19-02-2026 11:44hs · Resuelta: 20-02-2026 00:21hs
PDF ideas: incluir graficos de progreso Pendiente

Agregar un mini-grafico circular o barra mostrando el porcentaje de ideas completadas vs pendientes en el PDF exportado.

Claude · 19-02-2026 11:44hs
Estado scraper: alertas por Telegram cuando hay fuentes caidas Completada

Si una fuente tiene 5+ errores consecutivos, enviar alerta al chat personal de Telegram automaticamente.

Claude · 19-02-2026 11:44hs
Imagen RRSS: programar publicacion automatica Completada

Generar y enviar automaticamente la imagen resumen a las 22:00hs por Telegram, lista para compartir en Instagram Stories.

Claude · 19-02-2026 11:44hs · Resuelta: 20-02-2026 00:21hs
Imagen RRSS: agregar logo del proyecto Completada

Incluir un logo o icono personalizado en la imagen generada para RRSS en lugar de solo texto. Podria ser un PNG transparente superpuesto.

Claude · 19-02-2026 11:44hs
scraper Completada

tener info mas descriptiva del estado del scraper y poder reiniciarlo

Anonimo · 19-02-2026 08:40hs · Resuelta: 19-02-2026 hs
cuentas de fuentes Descartada

busca los datos en la web para corroborar sin son cuentas oficiales o verificadas por las rrss

Anonimo · 19-02-2026 00:01hs
Georef: backfill con pipeline híbrido Pendiente

Actualizar backfill_geo.py para usar geolocalizar_noticia_hibrido() en vez de solo regex. Aumentaría cobertura del 17.8% actual al ~25-30%.

Claude · 19-02-2026 23:07hs
Georef: validación post-asignación por bounding box Pendiente

Después de asignar coordenadas, verificar que estén dentro del bbox de MdP (-38.35 a -37.85 lat, -57.95 a -57.45 lon). Descartar si están fuera.

Claude · 19-02-2026 23:07hs
Georef: dashboard de precisión con mapa de calor de errores Pendiente

Widget en /admin que muestre tasa de georef por categoría, distribución de certeza, y mapa de calor de ubicaciones más asignadas. Incluir botón para auditar noticias con certeza < 50.

Claude · 19-02-2026 23:07hs
Correlacion siniestros-noticias Pendiente

Cuando se detecta un siniestro vial en DataHub, buscar automaticamente si hay noticia en el monitor sobre el mismo evento. Mostrar badge de cruce DataHub en la noticia y viceversa en el panel de siniestros.

Claude · 19-02-2026 20:16hs
Alerta transporte en noticias Pendiente

Si un servicio de transporte esta cancelado/demorado significativamente, generar alerta automatica en el dashboard y buscar si algun medio local ya reporto la demora.

Claude · 19-02-2026 20:16hs
Mini-mapa siniestros viales Pendiente

Agregar un pequeno mapa Leaflet en el panel de siniestros mostrando la ubicacion de los siniestros recientes cuando hay coordenadas disponibles.

Claude · 19-02-2026 20:16hs
Widget dolar historico sparkline Pendiente

Agregar un mini grafico sparkline al lado de las cotizaciones del dolar mostrando la variacion de los ultimos 7 dias usando un endpoint de DataHub de historico.

Claude · 19-02-2026 20:16hs
Publicaciones institucionales como fuente RSS Pendiente

Importar automaticamente las publicaciones institucionales de DataHub como noticias del monitor, clasificandolas por categoria (ciencia, gobierno, educacion) para ampliar la cobertura.

Claude · 19-02-2026 20:16hs
Content Tracker: diff visual lado a lado del contenido editado Pendiente
Claude · 19-02-2026 14:25hs
Imagen RRSS: modo story vertical 1080x1920 para Instagram Stories Descartada
Claude · 19-02-2026 14:25hs
Dashboard: mini-widget integridad en barra superior (editadas/borradas hoy) Completada
Claude · 19-02-2026 14:25hs
Feed noticias Completada

Sigue habiendo errores de las horas , hay horas adelantadas , normaliza todo a gmt-3 horario de argentina

Anonimo · 18-02-2026 22:47hs · Resuelta: 19-02-2026 hs
analizar mejores soluciones para evitar bloqueos del scraping Pendiente
carlosmdq · 18-02-2026 21:09hs
Mapa de calor Completada

No veo actualizado las publicaciones de todos los medios por horario, mejorarlo

Carlos · 18-02-2026 20:49hs · Resuelta: 26--2-19-0 11:35hs
En el Kiosko Completada

Quiero poder hacer click en las notas

Anonimo · 18-02-2026 18:16hs
Contexto Descartada

Cambia la forma del proyecto, no quiero que sea solo para la capital , quiero que sea independiente, para poder preparar la venta del servicio por subscripcion

Carlos · 18-02-2026 18:13hs
Previsión Completada

Mejora el sistema de búsquedas de noticias del día para comparar con la previsión de ayer

Gdgd · 18-02-2026 18:12hs · Resuelta: 18-02-2026 18:40hs
Prueba desde Claude - /idea command Descartada

Verificando que el sistema de ideas funciona correctamente desde el bot

Carlos/Bot · 18-02-2026 17:53hs · Resuelta: 26--2-19-0 11:00hs
Exportar resumen diario como imagen para RRSS Completada

Generar una imagen PNG/JPG estilizada con el resumen del dia (top 5 noticias, estadisticas) lista para compartir en Instagram Stories o Twitter. Usar Pillow o html2image.

Claude · 18-02-2026 14:49hs · Resuelta: 19-02-2026 hs
Comparador de sentimiento por medio Completada

Grafico que compare el sentimiento promedio (positivo/negativo/neutro) de cada medio de comunicacion en los ultimos 7 dias. Util para detectar sesgos editoriales.

Claude · 18-02-2026 14:49hs · Resuelta: 26--2-19-0 11:35hs
Mapa interactivo de noticias geolocalizadas Completada

Usando Leaflet.js, mostrar un mapa de MdP con markers en la ubicacion aproximada de cada noticia. Geolocalizar automaticamente con IA analizando el texto de la noticia.

Claude · 18-02-2026 14:49hs · Resuelta: 26--2-19-0 11:35hs
Notificaciones push en el navegador (Web Push) Pendiente

Implementar Web Push Notifications para alertas keyword y noticias de alto impacto, usando Service Workers. Permitiria recibir alertas sin Telegram.

Claude · 18-02-2026 14:49hs
Dashboard de archivos recibidos por Telegram Completada

Crear una pagina /archivos en el dashboard web que muestre todos los archivos recibidos por Telegram, con preview de imagenes, filtro por tipo y fecha, y opcion de descargar.

Claude · 18-02-2026 14:49hs · Resuelta: 18-02-2026 18:40hs
rrss Descartada

en la seccion fuentes verifica y muestra si son cuentas oficiales o validadas

carlos · 18-02-2026 14:27hs
varios Completada

encontre que si la idea no tiene nombre sale el error en la pagina ,resuelvelo

cxc · 18-02-2026 14:13hs · Resuelta: 18-02-2026 17:45hs
keyword Completada

analiza e invertiga si los keyword actuales son correctos

dg · 18-02-2026 14:12hs · Resuelta: 18-02-2026 18:40hs
feed Completada

revisa el merge de los medios con sus redes sociales o web, que se indiquen como uno solo, tambien

carlos · 18-02-2026 14:11hs · Resuelta: 18-02-2026 18:40hs
Plan SaaS: NewsRadar - Monitor de noticias como servicio Pendiente

## Investigación SaaS - Monitor de Noticias como Servicio ### Mercado - Global 2025: USD $5.4-6.3B, proyección 2032: $13-17B (CAGR 11-16%) - LATAM 2030: USD $810M (CAGR 10%) - Brecha clara: enterprise ($6,000+/año) vs nada para medios/PYMES locales ### Competencia directa: NINGUNA en este nicho - Meltwater/Cision: $6,000-100,000/año (enterprise) - Brand24/Mention: $49-199/mes (monitoreo de MARCA, no noticias locales) - LATAM (Ejes, Clipping HD): servicios manuales, caros, no SaaS ### Ventajas competitivas únicas - Previsiones IA (ningún competidor lo tiene) - Multi-fuente real (RSS+Twitter+IG+TikTok+Bluesky+Web) - Detección fake news + análisis de sesgo - Alertas Telegram (preferido en LATAM) - Stack liviano = costos bajos = pricing agresivo ### Pricing propuesto - Free: 5 fuentes, 1 usuario - Starter $29/mes: 20 fuentes, 2 usuarios - Pro $79/mes: 50 fuentes, previsiones IA, fake news - Agency $199/mes: 150 fuentes, white-label - Enterprise: custom ### Nombres globales (top 3) 1. Sentinews (Sentinel+News) 2. NewsHawk 3. Vigilo (del latín vigilare) ### Faltante para SaaS Multi-tenancy, auth/billing (Stripe+MercadoPago), onboarding wizard, migrar a PostgreSQL a mediano plazo. ### Primer año conservador: MRR $2,750 / ARR $33,000 ### Primer año optimista: MRR $15,000 / ARR $180,000

Claude · 18-02-2026 14:09hs
prevision Completada

ajustar esta linea cuando cuando el user cambia el horario No hay previsiones generadas aun para manana. Se generan automaticamente a las 23:00hs.

ff · 18-02-2026 13:48hs
Previsiones por categoría con horario personalizado Pendiente

Permitir configurar diferentes horarios de generación por categoría. Ej: deportes a las 20:00 (antes de partidos nocturnos), policiales a las 22:00. Cada categoría puede tener su propia ventana de análisis óptima.

Claude · 18-02-2026 13:44hs
Historial de cambios de configuración Completada

Registrar en una tabla log_config cada cambio de configuración (quién, cuándo, qué campo, valor anterior, valor nuevo). Útil para auditoría y debugging cuando algo cambia de comportamiento inesperadamente.

Claude · 18-02-2026 13:44hs · Resuelta: 18-02-2026 19:13hs
Dominio web y rebranding del proyecto Pendiente

Investigación de dominios y rebranding del proyecto: ## Nombres evaluados | Dominio | Puntuación | Notas | |---------|-----------|-------| | monitormdp.com.ar | Mejor opción | Corto, memorable, descriptivo | | radarmdp.com.ar | Muy buena | Metáfora perfecta para monitoreo | | monitornoticiasmdp.com.ar | Buena | Descriptivo pero largo (20 chars) | | pulsomdp.com.ar | Buena | Evoca dinamismo | | noticiasmdp.com | OCUPADO | Ya existe portal activo | ## Precios - .com.ar (NIC Argentina): $8.500 ARS/año - .com (Namecheap): ~$12.99 USD/año renovación ## Pendiente - Verificar disponibilidad real en nic.ar/verificar-dominio - Decidir nombre final - Reestructurar carpetas (eliminar "lucia" de paths) - Actualizar systemd service, git remote, etc. - Registrar .com.ar + .com como protección (~$25.000 ARS/año total) ## Registradores recomendados - .com.ar: NIC Argentina directo o DonWeb como intermediario - .com: Namecheap o Cloudflare (vende al costo)

Claude · 18-02-2026 13:31hs
Dashboard de precisión de previsiones IA Completada

Página dedicada /previsiones/precision con gráficos históricos de acierto por categoría, evolución semanal/mensual, comparativa de modelos IA (Groq vs Gemini). Útil para calibrar y mejorar los prompts de previsión.

Claude · 18-02-2026 13:15hs · Resuelta: 18-02-2026 19:13hs
Alertas inteligentes por degradación de scraping Completada

Usando los datos del panel de salud DB (#87), detectar automáticamente cuando una fuente deja de traer noticias (posible bloqueo o cambio de estructura) y alertar por Telegram con sugerencias de acción.

Claude · 18-02-2026 13:15hs · Resuelta: 18-02-2026 18:40hs
Modo comparación A/B de prompts IA Pendiente

Permitir ejecutar dos versiones de prompt en paralelo sobre las mismas noticias y comparar resultados (categorización, resumen, score). Útil para optimizar prompts sin afectar producción.

Claude · 18-02-2026 13:15hs
Exportar ideas a Markdown/PDF Completada

Botón en /ideas para exportar todas las ideas (pendientes y completadas) como documento Markdown o PDF, con fecha de creación, solución y autor. Útil para documentación y reportes.

Claude · 18-02-2026 13:15hs · Resuelta: 19-02-2026 hs
Refresh automático de CSRF token via AJAX Completada

Implementar endpoint /api/csrf-token que devuelva token fresco. El frontend lo renueva automáticamente cada 30 minutos via JavaScript, eliminando por completo los errores CSRF por expiración sin importar cuánto tiempo la página esté abierta.

Claude · 18-02-2026 12:59hs · Resuelta: 18-02-2026 13:13hs
Retry inteligente global para operaciones SQLite Completada

Crear un decorador/wrapper reutilizable para todas las funciones de db.py que haga retry con backoff exponencial ante database is locked. Aplicar a todas las operaciones de escritura (no solo ideas) para prevenir errores de concurrencia en cualquier sección del sistema.

Claude · 18-02-2026 12:59hs · Resuelta: 18-02-2026 13:13hs
Monitoreo de salud de la base de datos Completada

Dashboard en /config que muestre métricas de SQLite: locks activos, WAL size, queries lentas, contención de escritura. Alertar por Telegram si hay locks frecuentes o si la DB supera cierto tamaño. Útil para anticipar problemas de rendimiento.

Claude · 18-02-2026 12:59hs · Resuelta: 18-02-2026 13:13hs
Migración a PostgreSQL o conexión pooling Completada

# Evaluación de migración a PostgreSQL ## Fecha: 18-02-2026 13:05hs (GMT-3) ## Estado: COMPLETADA --- ### 1. Análisis del uso actual de SQLite en el proyecto #### Arquitectura actual (db.py) - **1 archivo** de ~3700 líneas con **80+ funciones** públicas - Conexión thread-local con `threading.local()` (pool casero) - PRAGMAs configurados: WAL mode, foreign_keys, busy_timeout=5000ms, cache_size=4MB - Custom function: UNACCENT para búsquedas sin acentos - **12 tablas**: noticias, fuentes, config_runtime, embeddings, cuentas_rrss, newsletter_suscriptores, newsletter_envios, previsiones, ideas, alertas_keyword, events - Múltiples índices (fecha, enviada, categoria, fuente, grupo_id, sentimiento, tipo_fuente, alcance, autor) - Migraciones inline con ALTER TABLE + try/except #### Procesos concurrentes que escriben 1. **Flask web** (dashboard): lecturas mayoritarias, escrituras esporádicas (toggle fuente, CRUD ideas, etc.) 2. **Scraper de RSS/feeds**: inserta noticias nuevas cada N minutos 3. **Scraper de Twitter** (Playwright): inserta noticias de RRSS, actualiza métricas engagement 4. **Scraper Instagram/TikTok**: inserta noticias de RRSS 5. **Filtro IA** (Groq/Gemini): actualiza resumen, categoría, score, sentimiento por noticia 6. **Bot Telegram**: lee noticias, marca enviadas, toggle configuración 7. **Newsletter**: lee noticias para envío 8. **Embeddings**: genera/guarda vectores de embedding por noticia 9. **Previsiones IA**: genera/evalúa previsiones 10. **Limpieza**: elimina noticias viejas periódicamente #### Patrones de acceso identificados - **Escrituras**: INSERT noticias + UPDATE IA + UPDATE métricas (ráfagas cada 5-15 min) - **Lecturas**: Dashboard queries complejas con JOINs, GROUP BY, COALESCE (constante) - **Cache**: stats_dashboard con TTL 30s, stats fuentes con TTL 60s (mitiga lecturas pesadas) - **Transacciones**: Commits individuales por operación (no batching) --- ### 2. Pros y contras de migrar a PostgreSQL #### PROS | Beneficio | Impacto para este proyecto | |-----------|---------------------------| | MVCC real (escrituras concurrentes sin bloqueo) | **ALTO** - 10+ procesos escriben simultáneamente. WAL ayuda pero no elimina contención | | Connection pooling nativo (pgBouncer) | **MEDIO** - Mejor que threading.local() casero | | Búsqueda full-text nativa (tsvector) | **ALTO** - Reemplazaría las funciones de similitud Jaccard caseras | | pgvector para embeddings | **ALTO** - Reemplazaría BLOB + coseno manual. Queries vectoriales 100x más rápidas | | Migraciones con Alembic | **MEDIO** - Eliminaría los ALTER TABLE + try/except frágiles | | JSON/JSONB nativo | **MEDIO** - metadata_json como JSONB con queries indexadas | | Monitoreo/stats integrados | **BAJO** - pg_stat, explain analyze | | Backup incremental (pg_dump, WAL archiving) | **MEDIO** - Backups más robustos que copiar .db | #### CONTRAS | Desventaja | Impacto | |------------|---------| | Servicio separado que consumir RAM (~100-200MB) | **MEDIO** - En VPS con 8GB RAM no es problema | | Complejidad operacional (instalar, mantener, actualizar) | **ALTO** - SQLite = zero-admin. PG necesita mantenimiento | | Refactorizar 80+ funciones en db.py (3700 líneas) | **MUY ALTO** - Esfuerzo considerable. Todas las queries a revisar | | Reescribir queries SQLite-específicas | **MEDIO** - COALESCE funciona igual, pero GROUP BY es más estricto en PG | | Deployment más complejo | **MEDIO** - Necesita Docker o instalación de PG | | Latencia de red (si PG en otro host) | **BAJO** - Normalmente co-located | | Sin beneficio real si escrituras son < 100/min | **ALTO** - Este proyecto probablemente no supera 10-20 escrituras/min | --- ### 3. Alternativa intermedia: Optimizar SQLite actual #### Opción A: Connection pooling con SQLAlchemy sobre SQLite ```python # En vez de threading.local(), usar SQLAlchemy engine from sqlalchemy import create_engine engine = create_engine('sqlite:///data/noticias.db', pool_size=5, pool_timeout=30, connect_args={'check_same_thread': False}) ``` - **Esfuerzo**: ALTO (reescribir todo db.py para usar SQLAlchemy ORM o Core) - **Beneficio**: Pool de conexiones real, pero SQLite sigue teniendo writer lock - **Veredicto**: No vale la pena solo para SQLite #### Opción B: Optimizar el threading.local() actual (RECOMENDADA) 1. **Batch inserts**: Agrupar INSERTs de noticias en una sola transacción 2. **WAL2**: Considerar modo WAL2 (SQLite 3.37+) para mejor concurrencia 3. **PRAGMA wal_checkpoint(TRUNCATE)**: Periódico para mantener WAL compacto 4. **Write-ahead batching**: Cola de escrituras con un solo writer thread 5. **Retry logic**: Agregar retry con backoff en caso de database locked 6. **PRAGMA synchronous=NORMAL**: En vez de FULL (actualmente default) #### Opción C: Migración gradual a PostgreSQL 1. Fase 1: Instalar PostgreSQL, crear schema equivalente 2. Fase 2: Dual-write (escribir a ambas DB) 3. Fase 3: Migrar lecturas a PostgreSQL 4. Fase 4: Desactivar SQLite --- ### 4. Estimación de esfuerzo de migración completa #### Archivos que cambiarían | Archivo | Cambios | Esfuerzo | |---------|---------|----------| | **db.py** (~3700 líneas, 80+ funciones) | Reescribir get_conn(), todas las queries, migraciones | **MUY ALTO** (3-5 días) | | **config.py** | Agregar DB_URL postgresql, quitar DB_PATH | **BAJO** (1 hora) | | **app.py** (Flask) | Ajustar init_db() call | **BAJO** (1 hora) | | **scraper.py / twitter_scraper.py** | Sin cambios (usan db.py) | **NULO** | | **ia_filtro.py** | Sin cambios (usa db.py) | **NULO** | | **telegram_bot.py** | Sin cambios (usa db.py) | **NULO** | | **embeddings.py** | Migrar de BLOB a pgvector | **MEDIO** (4-8 horas) | | **requirements.txt** | Agregar psycopg2-binary, sqlalchemy | **BAJO** (5 min) | | **docker-compose.yml** | Agregar servicio PostgreSQL | **BAJO** (1 hora) | | **Script de migración de datos** | Export SQLite -> Import PG | **MEDIO** (4-8 horas) | #### Total estimado: 5-8 días de trabajo dedicado #### Funciones de db.py que requerirían cambios significativos: - `get_conn()` → pool de conexiones PG - `init_db()` → SQL DDL de PostgreSQL (SERIAL vs AUTOINCREMENT, TEXT vs VARCHAR, etc.) - `_sqlite_unaccent()` → usar unaccent de PG nativo - Todas las queries con `?` placeholders → `%s` o `$1` (psycopg2/asyncpg) - `buscar_noticia_similar()` → pgvector similarity search - `stats_dashboard()` → queries GROUP BY más estrictas - 80+ funciones con `conn.execute()` → adaptar syntax --- ### 5. Recomendación final #### **NO MIGRAR A POSTGRESQL POR AHORA** **Razones:** 1. **El volumen actual no lo justifica**: Con ~48 sitios web + ~84 cuentas RRSS, las escrituras probablemente son <20/minuto. SQLite con WAL maneja esto sin problemas. 2. **El costo de migración es alto**: 5-8 días de trabajo para un beneficio marginal en esta escala. 3. **busy_timeout=5000ms ya está configurado**: Las escrituras esperan hasta 5 segundos si hay lock. Suficiente para la carga actual. 4. **WAL mode ya está activo**: Permite lecturas concurrentes mientras hay escrituras. 5. **SQLite es zero-admin**: En un VPS barato ($5-15/mes), no tener que mantener PostgreSQL es una ventaja operacional enorme. #### **Cuándo reconsiderar la migración:** - Si aparecen errores `database is locked` más de 1 vez por semana en los logs - Si la base de datos supera 5GB (actualmente probablemente <500MB) - Si se agregan funcionalidades que requieran transacciones complejas multi-tabla - Si se necesita pgvector para búsqueda semántica a gran escala (>100K embeddings) - Si se migra a un stack con múltiples workers (gunicorn multi-process) #### **Acciones recomendadas a corto plazo:** 1. Agregar `PRAGMA synchronous=NORMAL` en get_conn() (mejora velocidad de escritura ~2x) 2. Agregar retry logic con backoff exponencial en inserts 3. Monitorear errores "database is locked" con un contador en logs 4. Considerar batch inserts para el scraper (agrupar 10-20 noticias por transacción) 5. Agregar `PRAGMA wal_autocheckpoint=1000` para controlar tamaño de WAL

Claude · 18-02-2026 12:59hs
prevision de noticias Completada

quiero que en prevision se puede seleccciar el horario para la prevision , tambien quiero que muestres la estimacion de la probabilidad de la prevision y que vayas corroborando con lo que esta pasando en el dia y muestres la tendencia del acierto, tambien quiero que los porcentajes de acierto se sumen al reporte en pdf

vcbvc · 18-02-2026 12:53hs · Resuelta: 18-02-2026 13:13hs
varios Completada

Poner fecha hora a las noticias en el bot de Telegram Mejorar Merge a las noticias similares Noticias emsur y vialidad municipal , políticos locales Vincular las notas a ideas del sistema

Anonimo · 18-02-2026 12:37hs · Resuelta: 18-02-2026 13:13hs
ideas Completada

agrega la fecha/hora de la solucion a cada idea

Anonimo · 18-02-2026 08:58hs · Resuelta: 18-02-2026 13:13hs
Clasificar noticias por alcance: local, zonal, provincial, nacional Completada

Agregar un campo alcance a las noticias para clasificarlas en 4 niveles: - Local: noticias específicas de Mar del Plata - Zonal: noticias de la zona (Batán, Miramar, Balcarce, Necochea, etc.) - Provincial: noticias de provincia de Buenos Aires que afectan a MdP - Nacional: noticias de alcance nacional que mencionan o afectan a MdP La clasificación puede hacerse automáticamente por IA al procesar cada noticia. Incluir filtro por alcance en /noticias y en los resúmenes.

Claude · 18-02-2026 08:46hs
Sección de noticias de MdP en medios internacionales Completada

Crear sección separada para rastrear menciones de Mar del Plata en medios internacionales y agencias de noticias de renombre. Fuentes sugeridas (vía RSS/Google News): - Reuters, AP, AFP, EFE, ANSA - BBC Mundo, CNN en Español, DW - The Guardian, New York Times (secciones Latam) Implementación: - Agregar feeds RSS de agencias internacionales - Google News queries con site:reuters.com, site:bbc.com, etc. - Nueva ruta /internacional con las noticias encontradas - Stats: qué agencias mencionan más a MdP, qué temas llegan a nivel internacional - Link en sidebar sección Análisis

Claude · 18-02-2026 08:46hs
Bug corregido v1.46.0: variables de templates no coincidían con rutas Completada

Problema encontrado en v1.46.0: Los 5 templates fusionados (narrativo.html, analisis_fuentes.html, etc.) fueron creados por un agente separado que usó nombres de variables distintos a los que las rutas de Flask pasaban. Desajustes detectados: 1. narrativo.html esperaba resultados, divergencias_resultados, divergencias_updated pero la ruta pasaba sesgo, divergencias, updated 2. analisis_fuentes.html esperaba noticias, stats, horas (unificado) pero la ruta pasaba noticias_prim, stats_prim, horas_cob/horas_prim Solución aplicada: - Se corrigieron los render_template() en web_app.py para usar los nombres que los templates esperan

Claude · 18-02-2026 08:46hs
Investigacion VPS/Dedicados baratos para migracion Completada

# Investigación VPS/Dedicados baratos para migración ## Fecha: 18-02-2026 13:05hs (GMT-3) ## Estado: COMPLETADA ### Requisitos del proyecto - Flask + SQLite + Playwright (Twitter scraping) + Groq/Gemini IA + Telegram bot - Mínimo: 4 vCPU, 8GB RAM, 100GB SSD - Playwright necesita ~1-2GB RAM extra para navegadores headless - Presupuesto objetivo: < $20 USD/mes --- ### Tabla comparativa de proveedores | # | Proveedor | Plan | Precio/mes | vCPU | RAM | Disco | BW | Ubicación | Notas | |---|-----------|------|-----------|------|-----|-------|----|-----------| ------| | 1 | **Contabo** | Cloud VPS S | **$4.95 USD** | 4 | 8GB | 100GB NVMe | 32TB | USA (NY, St. Louis, Seattle), EU | **MEJOR PRECIO.** Sin setup fee. DDoS incluido. Overselling conocido pero suficiente para este uso. | | 2 | **Hetzner** | CAX21 (ARM) | **~$7.10 USD** (€6.49) | 4 | 8GB | 80GB NVMe | 20TB | EU (Nuremberg, Falkenstein, Helsinki) | ARM Ampere. Excelente relación precio/rendimiento. Solo EU. Playwright compatible con ARM (Chromium). | | 3 | **Hetzner** | CX32 (Intel) | **~$7.45 USD** (€6.80) | 4 | 8GB | 80GB NVMe | 20TB | EU solamente | Shared Intel x86. No disponible en USA. Muy buen rendimiento. | | 4 | **Oracle Cloud** | Always Free ARM | **$0 USD** | 4 OCPU | 24GB | 200GB | 10TB | USA (Ashburn, Phoenix, Chicago), BR (São Paulo) | **GRATIS PERMANENTE.** ARM Ampere A1. Specs increíbles. Riesgo: Oracle puede discontinuar o restringir. Provisioning difícil (hay que reintentar). São Paulo = baja latencia a ARG. | | 5 | **Hostinger** | KVM 2 | **$9.99 USD** (promo) | 2 | 8GB | 100GB NVMe | 8TB | USA, EU, Asia | Solo 2 vCPU. Renueva a ~$24.99. Panel propio (no estándar). | | 6 | **Hetzner** | CPX32 (AMD) | **~$14.90 USD** (€13.60) | 4 | 8GB | 160GB NVMe | 20TB | EU + USA (Ashburn, Hillsboro) | AMD EPYC dedicado. Disponible en USA. Premium pero potente. Tráfico USA limitado vs EU. | | 7 | **Hostinger** | KVM 4 | **$19.99 USD** (promo) | 4 | 16GB | 200GB NVMe | 8TB | USA, EU, Asia | Renueva a ~$49.99. Buenas specs pero caro al renovar. | | 8 | **Linode/Akamai** | Shared 8GB | **$48 USD** | 4 | 8GB | 160GB SSD | 5TB | USA (múltiples), São Paulo | Caro. Buena red. Ubicación São Paulo disponible. | | 9 | **Vultr** | Cloud Compute | **$48 USD** | 4 | 8GB | 256GB SSD | 4TB | USA (múltiples), São Paulo, Santiago | Caro. Buena red, muchas ubicaciones LATAM. | | 10 | **DigitalOcean** | General Purpose | **$63 USD** | 4 | 8GB | 25GB SSD | 4TB | USA, EU, SGP | Muy caro. Poco disco. No recomendado para este presupuesto. | | 11 | **IONOS** | VPS L | **$63.71 USD** | 4 | 8GB | 80GB | 2TB | USA, EU | Caro y poco tráfico. | --- ### Ranking recomendado #### 1. Oracle Cloud Free Tier (GRATIS) - Riesgo medio - 4 OCPU ARM + 24GB RAM + 200GB disco. **Inmejorable en specs.** - Ubicación São Paulo = latencia ~30ms a Buenos Aires - Riesgo: provisioning difícil, Oracle puede cambiar términos - Ideal como servidor principal si se consigue provisionar #### 2. Contabo Cloud VPS S ($4.95/mes) - MEJOR RELACIÓN PRECIO/RENDIMIENTO - 4 vCPU + 8GB + 100GB NVMe. Cumple todos los requisitos exactos. - Ubicación New York = latencia ~150ms a Buenos Aires (aceptable) - Sin setup fee, 32TB de tráfico - Overselling conocido pero para Flask+SQLite+Playwright es más que suficiente - **RECOMENDACIÓN PRINCIPAL** #### 3. Hetzner CAX21 ($7.10/mes) - MEJOR RENDIMIENTO/PRECIO EN EU - ARM Ampere, 4 vCPU + 8GB + 80GB. Disco algo corto (80GB). - Solo disponible en EU (Alemania/Finlandia). Latencia a ARG ~250ms. - Playwright funciona en ARM con Chromium. - Alternativa si se necesita más rendimiento real que Contabo. #### 4. Hetzner CPX32 ($14.90/mes) - MEJOR CON UBICACIÓN USA - AMD EPYC, 4 vCPU + 8GB + 160GB. Disponible en Ashburn (USA). - Rendimiento dedicado real. Buena opción si Contabo no convence. --- ### Recomendación final **Plan A:** Contabo Cloud VPS S en New York - $4.95/mes. Cumple requisitos, precio imbatible. **Plan B:** Oracle Cloud Free Tier en São Paulo - $0/mes. Si se logra provisionar, es la mejor opción por lejos (gratis + baja latencia). **Plan C:** Hetzner CAX21/CPX32 - $7-15/mes. Si se necesita rendimiento premium garantizado. Nota: Para migración, preparar scripts de deploy automatizado (Docker o manual), exportar SQLite, configurar Playwright headless, y redirigir DNS del bot de Telegram.

Claude · 18-02-2026 08:46hs
Ideas Completada

Corregir mi ortografía de la sección ideas, cada vez que se haga una subida del código actualizar la sección ideas del proyecto noticias y Limay así

Anonimo · 18-02-2026 08:04hs
Heatmap Completada

Mover la función a un lugar separado de comparador, la herramienta es muy interesante

Anonimo · 18-02-2026 08:03hs
Menu Completada

Simplificar menú y analizar secciones para fusionarlas si es necesario

Anonimo · 18-02-2026 08:03hs
Prevision Completada

Poder configurar el horario de cierre de la previsión, analizar cada 30 minutos o tiempo configurable , las noticias que van sucediendo así se va ajustando la previsión y mostrar una tendencia creciente o decreciente , y valorar la previsión por colores , al otro día ir revisando si las previsiones se cumplieron , se asemejaron o no pasaron, toda esta información se debe anexar al resumen diario y descargable,

Anonimo · 18-02-2026 08:02hs
Empresas Completada

Poder modificar el perfil de cada y ver las cuentas que se scrapean , poder entrar a un feed de las noticias por empresa, armar estadísticas sobre qué tipo de noticias dan

Anonimo · 18-02-2026 07:57hs
Estadísticas Completada

Estadísticas por tipo de noticia por segmento horario, día hábil o fin de semana

Anonimo · 18-02-2026 07:56hs
Mejorar los resúmenes Completada

Pedir resumen de noticias del día

Anonimo · 18-02-2026 07:55hs
Resumen ejecutivo para reunión editorial Completada

Informe PDF/pantalla diseñado para la reunión matutina de un medio. Incluye: qué pasó en la noche, qué está trending ahora, qué temas faltan cubrir, exclusivas de la competencia, y agenda del día. Generación automática a las 7am.

Claude IA · 17-02-2026 19:06hs
Red de menciones entre medios Completada

Grafo interactivo que muestre cómo los medios se citan entre sí, quién es fuente de quién, y qué medios tienden a cubrir los mismos temas. Visualización con D3.js para entender el ecosistema mediático local.

Claude IA · 17-02-2026 19:06hs
Análisis de audiencia por franja horaria Completada

Gráfico que muestre cuándo se publican más noticias, cuándo tienen más engagement, y cuáles son los mejores horarios para publicar según la plataforma. Datos para optimizar la estrategia de publicación del medio.

Claude IA · 17-02-2026 19:06hs
Monitor de cuentas oficiales en emergencias Completada

Modo especial que se activa ante eventos críticos (temporal, accidente, emergencia). Aumenta frecuencia de escaneo de cuentas oficiales (bomberos, OSSE, tránsito, municipio) y envía actualizaciones consolidadas cada 5 minutos.

Claude IA · 17-02-2026 19:06hs
Generador de copetes IA para Telegram Completada

Antes de enviar una noticia a Telegram, generar un copete/resumen redactado en estilo periodístico usando IA. Incluir contexto relevante, datos clave y enlace. Opción de editar antes de enviar.

Claude IA · 17-02-2026 19:06hs
Perfil de fuente con métricas históricas Completada

Página dedicada por cada fuente/cuenta con: velocidad promedio de publicación, temas que más cubre, horarios de mayor actividad, score promedio, historial de exclusivas, y comparación con otros medios similares.

Claude IA · 17-02-2026 19:06hs
Alertas de cobertura insuficiente Completada

Detectar temas que están siendo muy cubiertos en RRSS pero que ningún medio tradicional ha publicado aún. Alerta inmediata tipo 'tema viral sin cobertura RSS'. Útil para encontrar primicias en redes antes que los medios.

Claude IA · 17-02-2026 19:06hs
Detección automática de fuentes primarias Completada

Identificar automáticamente cuándo una noticia proviene de una fuente primaria (comunicado oficial, conferencia de prensa, documento público) vs cobertura derivada. Marcar con badge especial y priorizar en el feed.

Claude IA · 17-02-2026 19:06hs
Timeline visual de noticias Completada

Vista de línea de tiempo interactiva que muestre la evolución de una historia a lo largo del día/semana. Permite ver cómo un tema crece, qué medios se suman, y cuándo alcanza el pico de cobertura. Útil para entender la dinámica informativa.

Claude IA · 17-02-2026 19:06hs
Newsletter automático por email Completada

Generar y enviar un newsletter diario/semanal por email con las noticias más relevantes de MdP. Formato HTML profesional con las top 10 noticias, exclusivas del día, y tendencias. Suscripción desde la web con validación de email.

Claude IA · 17-02-2026 19:06hs
noticias Completada

poder aumentar la cantidad de noticias analizadas, por ahora scrapear 30 enero y febrero, estas no enviarlas al bot, guardarlas para analisis de datos

Anonimo · 17-02-2026 17:27hs
comparador Completada

armar una seccion que tenga un mapa de calor que se puede seleccionar por dia para analizar en que horario publica cada medio y de alguna forma que pueda discriminar la rrss o feed que usa

Anonimo · 17-02-2026 17:26hs
limites Completada

analizar riesgos de bloqueos por exceso de consultas a los sitios, buscar alternativas via API, cuentas o lo que sea mejor

Anonimo · 17-02-2026 17:20hs
rrss Completada

mejorar scrapeo de tiktok e instagram, analizar formas para mejor implementacion

Anonimo · 17-02-2026 17:19hs
mapa Completada

analizar la nota y el contexto para intentar mostrarla en el mapa , busca algun sistema de puntuacion para darle certeza a la geolocalizacion

Anonimo · 17-02-2026 17:18hs
feed Completada

comprueba si la noticia es del mismo medio muestrala como del mismo grupo, analiza los datos con las horas que los medios publican sus noticias en sus web y sus rrss

Anonimo · 17-02-2026 15:07hs
Scraping de Bluesky Completada

API publica sin auth. Monitorear cuentas de medios locales y nacionales en Bluesky (AT Protocol). Similar a Twitter pero sin restricciones de scraping.

Claude · 17-02-2026 15:05hs
Analisis de sesgo mediatico Completada

Comparar cobertura de la misma noticia entre medios: tono (positivo/negativo/neutro), enfoque (titulo, palabras clave), extension del texto. Detectar framing.

Claude · 17-02-2026 15:05hs
Resumen semanal automatico Telegram Completada

Enviar top 10 noticias de la semana, medio mas rapido, categoria mas activa. Automatico los domingos a la manana.

Claude · 17-02-2026 15:05hs
Mapa interactivo de noticias Completada

Pins geolocalizados en mapa de MdP. Usar NER (Named Entity Recognition) para extraer ubicaciones de las noticias y plotearlas en Leaflet.js.

Claude · 17-02-2026 15:05hs
Sistema de scoring personalizado Completada

Configuracion por usuario: ponderar categorias y fuentes segun preferencia. Permite que cada persona vea las noticias mas relevantes para ella.

Claude · 17-02-2026 15:05hs
Deteccion de noticias recicladas Completada

Alertar cuando un medio publica como nueva una noticia vieja (>48h). Comparar con DB historica usando embeddings y similitud temporal.

Claude · 17-02-2026 15:05hs
Panel de metricas de rendimiento Completada

Dashboard tecnico: tiempo de scraping por fuente, tasa de error, latencia IA, uso de DB, uptime del sistema, graficos historicos.

Claude · 17-02-2026 15:05hs
Ticker de noticias en tiempo real Completada

Barra tipo CNN debajo del topbar con titulares scrolleando. AJAX cada 2 min, pausa al hover, click abre noticia, oculto en mobile.

Sistema · 17-02-2026 15:00hs
Modo breaking news Completada

Panel destacado para noticias score 5 con alerta visual y sonido opcional. Cuando llega una noticia de maximo impacto, se muestra un banner especial en el dashboard.

Sistema · 17-02-2026 15:00hs
Resumen editorial diario Completada

PDF/email automatico con las noticias del dia, stats y cobertura para reunion de redaccion. Generado cada noche con las metricas del dia.

Sistema · 17-02-2026 15:00hs
Feed RSS propio Completada

Generar un feed RSS del monitor para integrar con otras herramientas de la redaccion. Endpoint /feed.xml con las ultimas noticias filtradas.

Sistema · 17-02-2026 15:00hs
Dashboard de categorias Completada

Vista dedicada con tendencias por categoria: que temas dominan hoy vs ayer, evolucion semanal, distribucion de cobertura por medio y categoria.

Sistema · 17-02-2026 15:00hs
feed Completada

mejora el refresco automatico de las noticias, informa porque el sistema esta demorado o inactivo

Anonimo · 17-02-2026 14:57hs
reportes Completada

en los reportes inserta el nombre del sitio y de quien es propiedad la info analizada

Anonimo · 17-02-2026 14:56hs
mapa de calor Completada

ama una calendario de todos los dias para que quede registro de las noticias y horarios que son publicados, tambien quiero hacer click en dia y/o horario para ver las noticias filtradas

Anonimo · 17-02-2026 13:52hs
lucia Completada

lucia castorina es periodista del diario la capital busca en las rrss sus perfiles para vincularla

carlos · 17-02-2026 13:51hs
Resumen diario automatico por Telegram Completada

Enviar automaticamente el resumen editorial del dia (/resumen) al grupo de Telegram cada noche a las 23:00. Incluir top 5 noticias, stats del dia y categorias destacadas. Usar el scheduler existente de main.py.

Carlos José Castorina · 17-02-2026 12:31hs
Dashboard en tiempo real con WebSocket Completada

Reemplazar el auto-refresh por pagina completa con WebSocket (Flask-SocketIO). Las noticias nuevas aparecen al instante sin recargar, con animacion de entrada. El ticker, clima y stats se actualizan en vivo.

Carlos José Castorina · 17-02-2026 12:31hs
Analisis de sentimiento por noticia Completada

Agregar al pipeline de IA (ai_filter.py) un campo de sentimiento: positivo/negativo/neutro. Mostrar en el dashboard con icono de color. Util para detectar tendencias de cobertura y sesgo mediatico.

Carlos José Castorina · 17-02-2026 12:31hs
Alertas personalizadas por keyword Completada

Permitir configurar alertas especificas por palabra clave (ej: Montenegro, Puerto, Universidad). Cuando una noticia matchea, enviar notificacion push inmediata y/o Telegram. Configurable desde /config.

Carlos José Castorina · 17-02-2026 12:31hs
App movil PWA Completada

Convertir el dashboard en Progressive Web App instalable. Agregar manifest.json, service worker para cache offline y notificaciones push nativas. El usuario puede instalar la app desde Chrome/Safari.

Carlos José Castorina · 17-02-2026 12:31hs
Historico y graficos de tendencias Completada

Pagina /tendencias con graficos Chart.js de evolucion temporal: noticias por dia/semana, categorias dominantes a lo largo del tiempo, medios mas activos, horarios pico. Datos de los ultimos 30 dias.

Carlos José Castorina · 17-02-2026 12:31hs
Deteccion de fake news y duplicados cross-media Completada

Cuando la misma noticia aparece en muchos medios con titulos muy distintos, alertar posible manipulacion o fake news. Usar embeddings existentes para comparar titulos y detectar divergencias anomalas.

Carlos José Castorina · 17-02-2026 12:31hs
Backup y restauracion desde la web Completada

Seccion en /config para ver estado del backup (ultimo backup, tamanio, archivos en Drive), ejecutar backup manual y restaurar desde un backup anterior. Integrar con backup_gdrive.sh.

Carlos José Castorina · 17-02-2026 12:31hs
feed Completada

si una noticia esta puesta por varios medios al hacer click quiero una seccion donde me muestre como escribio la misma noticia cada medio, que similitudes y diferencias hay, mas que nada para aprender patrones

Anonimo · 17-02-2026 10:39hs
Indicador de salud del scraper Completada

Topbar muestra estado real del sistema (verde/amarillo/rojo) con auto-actualizacion cada 30s. Timestamps en config_runtime.

Sistema · 17-02-2026 10:20hs
Dashboard de engagement por red social Completada

Graficos de engagement (likes, RT, comments) por plataforma y por cuenta. Ranking de cuentas mas virales. Tendencia semanal.

Claude · 17-02-2026 16:11hs
Notificaciones push en navegador Completada

Web push notifications para noticias de alto impacto (score >= 8). Service worker + notification API.

Claude · 17-02-2026 16:11hs
Exportar informes PDF semanal Completada

Generar PDF automatico con resumen semanal: top noticias, medios mas activos, categorias, graficos. Enviar por Telegram/email.

Claude · 17-02-2026 16:11hs
Deteccion de tendencias emergentes Completada

Detectar automaticamente temas que crecen en cobertura (mas de 3 medios en 2 horas). Alerta especial en Telegram.

Claude · 17-02-2026 16:11hs
Comparador historico entre medios Completada

Grafico temporal de largo plazo: que medio publica mas por categoria, velocidad promedio, cobertura mensual.

Claude · 17-02-2026 16:11hs
Modo kiosko para TV/pantalla Completada

Vista de solo lectura optimizada para pantalla grande: noticias rotando, mapa, estadisticas. Auto-refresh cada 30s.

Claude · 17-02-2026 16:11hs
Buscador semantico de noticias Completada

Buscar noticias por significado (embeddings + RAG). Ej: "accidentes en ruta 2" encuentra noticias relacionadas sin match exacto.

Claude · 17-02-2026 16:11hs
API publica REST Completada

Endpoints JSON publicos para consultar noticias, fuentes, tendencias. Rate limit y documentacion Swagger.

Claude · 17-02-2026 16:11hs
Widget de clima expandido Completada

Ampliar el widget de clima actual con pronostico de proximas horas, probabilidad de lluvia, y mapa radar del SMN. Util para contextualizar noticias de clima/eventos al aire libre.

Claude · 16-02-2026 23:25hs
Busqueda avanzada con operadores Completada

Mejorar la busqueda actual para soportar operadores tipo: "fuente:lacapital categoria:policial score:5 fecha:hoy". Parser simple que traduzca a filtros SQL. Autocompletado de fuentes y categorias.

Claude · 16-02-2026 23:25hs
Deteccion de exclusivas reales Completada

Identificar noticias que solo un medio cubrio durante 24+ horas (exclusiva real, no solo primicia temporal). Clasificar entre exclusivas propias vs temas que nadie mas cubrio. Seccion dedicada con stats por medio.

Claude · 16-02-2026 23:25hs
Mapa de calor de cobertura por hora Completada

Heatmap (estilo GitHub contributions) que muestre a que horas del dia cada medio publica mas noticias. Util para detectar patrones: que medios publican de madrugada, cuales solo en horario laboral, etc.

Claude · 16-02-2026 23:25hs
Notificaciones push en navegador Completada

Implementar Web Push Notifications para recibir alertas de noticias score 5 directamente en el navegador, sin depender solo de Telegram. Usar Service Worker + Push API.

Claude · 16-02-2026 23:25hs
Exportar comparador a PDF/CSV Completada

Boton para descargar las comparaciones como CSV (para analisis en Excel) o PDF (para compartir). Incluir stats, ranking y resumen diario. Util para reportes semanales.

Claude · 16-02-2026 23:25hs
Modo oscuro (dark mode) Completada

Toggle para cambiar entre modo claro y oscuro en toda la web. Guardar preferencia en localStorage. Usar variables CSS existentes para que sea facil de implementar cambiando los valores de --c-bg, --c-surface, --c-text, etc.

Claude · 16-02-2026 23:25hs
Dashboard de engagement RRSS Completada

Panel dedicado con metricas de engagement (likes, RT, comments) agregadas por cuenta y por dia. Graficos de evolucion, top posts virales, y comparativa entre cuentas. Permitiria ver que cuentas generan mas interaccion.

Claude · 16-02-2026 23:25hs
Aliases de medios en comparador Completada

Crear mapa de aliases para unificar variantes de nombres de medios (ej: "AHORA Mar del Plata", "@ahoramdp", "Ahora MdP" = mismo medio). Configurable desde /config como JSON.

Claude · 16-02-2026 23:04hs
Ranking de velocidad por medio Completada

Tabla colapsable que muestra que medios publican primero en promedio, con stats de veces primero/segundo, ventaja promedio en minutos y win rate porcentual.

Claude · 16-02-2026 23:04hs
Alertas Telegram de primicias perdidas Completada

Cuando el medio de referencia es el ultimo en cubrir una noticia que ya tienen 2+ medios (diferencia 30+ min), enviar alerta automatica al grupo de Telegram. Toggle on/off desde Config.

Claude · 16-02-2026 23:04hs
Filtro por categoria en comparador Completada

Dropdown para filtrar cards del comparador por categoria (politica, policiales, deportes, etc.). Se combina con el filtro de stat-boxes (primero/otro/simultaneo). Badge de categoria visible en cada card.

Claude · 16-02-2026 23:04hs