Feeds 2/5: fetch feed items in the API with cache and per-feed errors

Abierto
#232 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Los mantenedores suelen responder en 1 día

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
4/5
Tiempo estimado
3-5 días
Aptitud para principiantes
28/100
Tipo de issue
Nueva funcionalidad
Claridad
Bastante claro
Estado de actividad
Activo
Stack tecnológico
csharp
Área
api, backend

Línea de trabajo

This is part 2 of 5 and depends on part 1, so start with the data model that part 1 introduces and with the parent issue #230. The work is a fetch-and-cache service behind an API endpoint, with RSS and Atom parsing through System.ServiceModel.Syndication, a 10 s per-feed timeout, and per-feed error results. Done means the unit tests with fake feed XML pass: RSS, Atom, a failing feed, a timeout, and script-tag sanitizing, plus the 30-day, already-a-Post and Added/Skipped filters working.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

enhancement in-progress ready-for-agent

Sub-issue of #230, written with an AI assistant. Part 2 of 5, depends on part 1.

Goal

An API endpoint that returns the current feed items for all feeds, one group, or one feed.

Scope

  • Fetch RSS and Atom in parallel (System.ServiceModel.Syndication or equivalent), 10 s timeout per feed.
  • In-memory cache of about 15 minutes per feed; a refresh=true parameter bypasses it.
  • Per-feed result: feed id, items, and an error message when the fetch failed (other feeds still return).
  • Item: Url, Title, FeedId, FeedTitle, Published, one-line Excerpt, LeadImageUrl, sanitized HTML Body.
  • Filters: drop items older than 30 days, items whose URL already exists as a Post, items with an Added/Skipped state.
  • Pending counts per group and per feed (for the left pane).
  • Unit tests with fake feed XML (RSS and Atom, a failing feed, a timeout, sanitizing script tags).

Out of scope

UI, background polling.

Lenguaje dominante
C#
Estrellas
13
Forks
3
Merge medio
12 h 33 min
PR fusionados (30 d)
13

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de fboucher/NoteBookmark

Todos los issues de fboucher/NoteBookmark

Issues similares

Más issues de C#

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.