RSS Feed Parser Service #530

Closed
opened 2025-11-24 21:46:37 +00:00 by Vylpes · 1 comment
Owner

Epic: #528
Story Points:


Create a service to fetch and parse RSS feeds

Acceptance Criteria

No acceptance criteria

Subtasks

  • Create RssFeedHelper in src/helpers
  • Implement fetchFeed(url: string) method using rss-parser
  • Implement getNewItems(feed, lastGuid) method to filter new entries
  • Add error handling for invalid URLs and feed parsing failures
  • Update tests

Notes

No notes

Epic: #528 Story Points: --- Create a service to fetch and parse RSS feeds ## Acceptance Criteria *No acceptance criteria* ## Subtasks - [ ] Create `RssFeedHelper` in `src/helpers` - [ ] Implement `fetchFeed(url: string)` method using `rss-parser` - [ ] Implement `getNewItems(feed, lastGuid`) method to filter new entries - [ ] Add error handling for invalid URLs and feed parsing failures - [ ] Update tests ## Notes *No notes*
Vylpes added this to the 3.4.0 milestone 2025-11-24 22:17:40 +00:00
Vylpes self-assigned this 2026-09-17 18:08:09 +01:00
Vylpes removed their assignment 2026-09-17 18:23:12 +01:00
Smithy-bot removed their assignment 2026-09-18 12:12:08 +01:00
Vylpes removed their assignment 2026-09-18 14:45:44 +01:00
Vylpes added this to the 3.3 Sprint 9 project 2026-09-23 18:39:13 +01:00
Member

QA results — PASS

Tested on feature/epic-528-rss-feeds @ c52f462 (PR #579 merged into the epic feature branch; not yet on release/3.4.0).

Checks

Check Result
yarn install --frozen-lockfile PASS
yarn build (tsc) PASS
yarn test PASS — 5 suites / 63 tests / 2 snapshots
lint N/A (no lint script on this branch)

Subtask coverage

  • RssFeedHelper in src/helpers
  • FetchFeed(url) via rss-parser (^3.13.0)
  • GetNewItems(feed, lastGuid) filters newer items, returns oldest-first
  • Error handling for invalid URLs + fetch/parse failures
  • Tests — tests/helpers/RssFeedHelper.test.ts 16/16 PASS (invalid URL matrix, parse errors, lastGuid edge cases, link-as-guid fallback)

Note for UAT

Work currently lives on feature/epic-528-rss-feeds, not release/3.4.0. Manual smoke against a live feed (if desired) is left to human UAT.

Moving step/testing → step/uat and assigning @Vylpes.

## QA results — PASS Tested on `feature/epic-528-rss-feeds` @ `c52f462` (PR #579 merged into the epic feature branch; **not** yet on `release/3.4.0`). ### Checks | Check | Result | | --- | --- | | `yarn install --frozen-lockfile` | PASS | | `yarn build` (`tsc`) | PASS | | `yarn test` | PASS — 5 suites / 63 tests / 2 snapshots | | lint | N/A (no lint script on this branch) | ### Subtask coverage - [x] `RssFeedHelper` in `src/helpers` - [x] `FetchFeed(url)` via `rss-parser` (`^3.13.0`) - [x] `GetNewItems(feed, lastGuid)` filters newer items, returns oldest-first - [x] Error handling for invalid URLs + fetch/parse failures - [x] Tests — `tests/helpers/RssFeedHelper.test.ts` **16/16 PASS** (invalid URL matrix, parse errors, lastGuid edge cases, link-as-guid fallback) ### Note for UAT Work currently lives on `feature/epic-528-rss-feeds`, not `release/3.4.0`. Manual smoke against a live feed (if desired) is left to human UAT. Moving `step/testing` → `step/uat` and assigning @Vylpes.
Smithy-bot removed their assignment 2026-09-25 12:11:06 +01:00
Vylpes 2026-09-25 12:34:57 +01:00
  • closed this issue
  • removed the
    step
    uat
    label
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Blocks
#531 RSS Add Command
RabbitLabs/vylbot-app
Depends on
#529 RSS Feed Database Schema
RabbitLabs/vylbot-app
Reference
RabbitLabs/vylbot-app#530
No description provided.