RSS Add Command #531

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

Epic: #528
Story Points:


Create a slash command for moderators to subscribe to RSS feeds

Acceptance Criteria

GIVEN I am a moderator
WHEN I run /rss add url:<URL> channel:<CHANNEL>
THEN a new rss subscription will be added to the database for the feed url <URL> and will be sent to the channel <CHANNEL>

GIVEN I am a moderator
WHEN I run /rss add ...
AND the feed is already added to the channel
THEN an error will occur

GIVEN I am a moderator
WHEN I run /rss add ...
AND the feed can't be fetched
THEN an error will occur

Subtasks

  • Create /rss add command in src/commands/
  • Validate RSS feed URL and test connectivity
  • Save feed subscription to database
  • Send confirmation embed to user
  • Add error handling for duplicate feeds and invalid URLs
  • Update tests

Notes

  • /rss add parameters are: url (string, required), channel (channel, required)
  • Only a moderator can use this command
Epic: #528 Story Points: --- Create a slash command for moderators to subscribe to RSS feeds ## Acceptance Criteria GIVEN I am a moderator WHEN I run `/rss add url:<URL> channel:<CHANNEL>` THEN a new rss subscription will be added to the database for the feed url `<URL>` and will be sent to the channel `<CHANNEL>` GIVEN I am a moderator WHEN I run `/rss add ...` AND the feed is already added to the channel THEN an error will occur GIVEN I am a moderator WHEN I run `/rss add ...` AND the feed can't be fetched THEN an error will occur ## Subtasks - [ ] Create `/rss add` command in `src/commands/` - [ ] Validate RSS feed URL and test connectivity - [ ] Save feed subscription to database - [ ] Send confirmation embed to user - [ ] Add error handling for duplicate feeds and invalid URLs - [ ] Update tests ## Notes - `/rss add` parameters are: `url` (string, required), `channel` (channel, required) - Only a moderator can use this command
Vylpes added this to the 3.4.0 milestone 2025-11-24 22:17:40 +00:00
Vylpes stopped working 2026-10-22 16:41:26 +01:00
15 minutes 52 seconds
Smithy-bot removed their assignment 2026-10-23 12:03:51 +01:00
Vylpes removed their assignment 2026-10-23 12:11:35 +01:00
Member

QA results (step/testing → step/uat)

Branch: feature/epic-528-rss-feeds @ 32efe30 (PR #591 merge — Create /rss add command)

Note: code is on the epic feature branch, not yet on release/3.4.0.

Automated

  • yarn install --frozen-lockfile PASS
  • yarn build (tsc) PASS
  • yarn test PASS — 7 suites / 90 tests / 2 snapshots
    • tests/commands/rss.test.ts covers AC: moderator-only /rss add (url + channel), duplicate feed/channel error, fetch failure error, save + confirmation embed, latest-item guid seeding
    • Related: RssFeedHelper + RssFeed entity suites also PASS
  • yarn lint N/A (no lint script on this branch)

Acceptance Criteria check

  • GIVEN moderator /rss add url:<URL> channel:<CHANNEL> → subscription saved + confirmation embed — covered by tests
  • GIVEN feed already on channel → error, no save — covered
  • GIVEN feed cannot be fetched → error, no save — covered
  • Command registered in src/registry.ts as rss
  • Subtasks in description (command, validate/fetch, DB save, embed, errors, tests) match landed code

Left for human UAT

  • Live Discord /rss add against a real feed + channel (moderator permission, duplicate + bad-URL paths)

Moving to step/uat and assigning @Vylpes.

## QA results (step/testing → step/uat) **Branch:** `feature/epic-528-rss-feeds` @ `32efe30` (PR #591 merge — Create /rss add command) Note: code is on the epic feature branch, not yet on `release/3.4.0`. ### Automated - `yarn install --frozen-lockfile` PASS - `yarn build` (`tsc`) PASS - `yarn test` PASS — **7 suites / 90 tests / 2 snapshots** - `tests/commands/rss.test.ts` covers AC: moderator-only `/rss add` (`url` + `channel`), duplicate feed/channel error, fetch failure error, save + confirmation embed, latest-item guid seeding - Related: `RssFeedHelper` + `RssFeed` entity suites also PASS - `yarn lint` N/A (no lint script on this branch) ### Acceptance Criteria check - GIVEN moderator `/rss add url:<URL> channel:<CHANNEL>` → subscription saved + confirmation embed — covered by tests - GIVEN feed already on channel → error, no save — covered - GIVEN feed cannot be fetched → error, no save — covered - Command registered in `src/registry.ts` as `rss` - Subtasks in description (command, validate/fetch, DB save, embed, errors, tests) match landed code ### Left for human UAT - Live Discord `/rss add` against a real feed + channel (moderator permission, duplicate + bad-URL paths) Moving to **step/uat** and assigning @Vylpes.
Smithy-bot stopped working 2026-10-25 11:01:57 +00:00
50 seconds
Smithy-bot removed their assignment 2026-10-25 11:01:57 +00:00
Vylpes 2026-10-25 13:02:41 +00:00
  • closed this issue
  • removed the
    step
    uat
    label
Sign in to join this conversation.
No milestone
No project
No assignees
2 participants
Notifications
Total time spent: 16 minutes 42 seconds
Vylpes
15 minutes 52 seconds
Smithy-bot
50 seconds
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Blocks
#532 RSS Remove Command
RabbitLabs/vylbot-app
#533 RSS List Command
RabbitLabs/vylbot-app
Depends on
#530 RSS Feed Parser Service
RabbitLabs/vylbot-app
Reference
RabbitLabs/vylbot-app#531
No description provided.