Add RSS feed checker timer (#534) #592

Merged
Vylpes merged 6 commits from cursor/534-rss-feed-checker-timer into feature/epic-528-rss-feeds 2026-10-27 13:06:30 +00:00
Member

Summary

Implements the scheduled RSS feed checker for #534.

Changes

  • Add src/timers/RssTimer.ts — cron */15 * * * * (Europe/London) loads all RssFeed rows, fetches each feed, posts new items oldest-first, updates LastFetchedItemGuid after each successful post
  • On fetch/process failure: log via new AppLogger and send a danger embed to the feed channel
  • Register the timer next to AutoKick in src/client/client.ts
  • Add src/helpers/AppLogger.ts (minimal logger; AC requires AppLogger and none existed yet)
  • Tests in tests/timers/RssTimer.test.ts

Verification

  • yarn build PASS
  • yarn test PASS (8 suites / 97 tests)

Notes

  • Targets feature/epic-528-rss-feeds (RSS code is not on release/3.4.0 yet), same pattern as #583 / #584 / #531
  • Retry/disable/failed-attempt monitoring left for #535

Please review and merge when ready. Do not auto-close the ticket from this PR.

## Summary Implements the scheduled RSS feed checker for #534. ## Changes - Add `src/timers/RssTimer.ts` — cron `*/15 * * * *` (Europe/London) loads all `RssFeed` rows, fetches each feed, posts new items oldest-first, updates `LastFetchedItemGuid` after each successful post - On fetch/process failure: log via new `AppLogger` and send a danger embed to the feed channel - Register the timer next to AutoKick in `src/client/client.ts` - Add `src/helpers/AppLogger.ts` (minimal logger; AC requires `AppLogger` and none existed yet) - Tests in `tests/timers/RssTimer.test.ts` ## Verification - `yarn build` PASS - `yarn test` PASS (8 suites / 97 tests) ## Notes - Targets `feature/epic-528-rss-feeds` (RSS code is not on `release/3.4.0` yet), same pattern as #583 / #584 / #531 - Retry/disable/failed-attempt monitoring left for #535 Please review and merge when ready. Do not auto-close the ticket from this PR.
Vylpes requested changes 2026-10-26 21:31:26 +00:00
Dismissed
@ -0,0 +1,17 @@
/**
Owner

I don't like this, please remove this file. We will do proper logging in a future story

I don't like this, please remove this file. We will do proper logging in a future story
@ -0,0 +89,4 @@
}
}
async function resolveSendableChannel(
Owner

Let's put this into its own new helper class, ChannelHelper or something, so we can reuse it if we need to.

Are there any other places in the project this could be used? Highlight these to me on the ticket.

Let's put this into its own new helper class, ChannelHelper or something, so we can reuse it if we need to. Are there any other places in the project this could be used? Highlight these to me on the ticket.
@ -0,0 +103,4 @@
return channel;
}
function buildItemEmbed(feedTitle: string | undefined, item: RssFeedItem): EmbedBuilder {
Owner

Let's put this function into RssFeedHelper, so we can reuse it another time, let's say if we ever do a manual send command for example.

Let's put this function into RssFeedHelper, so we can reuse it another time, let's say if we ever do a manual send command for example.
Vylpes self-assigned this 2026-10-26 21:31:34 +00:00
- Remove AppLogger (defer proper logging)
- Extract ChannelHelper.ResolveSendable
- Move BuildItemEmbed into RssFeedHelper
Vylpes approved these changes 2026-10-27 13:06:27 +00:00
Vylpes merged commit 0f382428a7 into feature/epic-528-rss-feeds 2026-10-27 13:06:30 +00:00
Vylpes deleted branch cursor/534-rss-feed-checker-timer 2026-10-27 13:06:30 +00:00
Sign in to join this conversation.
No description provided.