RSS Feed Checker Timer #534
Labels
No labels
blocked
duplicate
high priority
needs
approval
needs
criteria
needs
estimate
needs
tests
question
step
doing
step
review
step
testing
step
todo
step
uat
type
admin
type
alert
type
bug
type
change
type
defect
type
dependencies
type
development
type
documentation
type
epic
type
idea
type
incident
type
investigation
type
spike
type
story
type
tests
won't fix
No project
No assignees
2 participants
Notifications
Total time spent: 19 minutes 43 seconds
Due date
Smithy-bot
9 minutes 43 seconds
Vylpes
10 minutes
No due date set.
Blocks
#536 RSS Testing & Documentation
RabbitLabs/vylbot-app
Reference
RabbitLabs/vylbot-app#534
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Epic: #528
Story Points:
Implement a scheduled task to check all RSS feeds every 15 minutes
Acceptance Criteria
GIVEN I am a member
AND a channel I can view has a feed subscribed to
WHEN it reaches 15 minutes of the hour (n:00, n:15, n:30, n:45)
THEN each feed in that channel will be fetched and sent
GIVEN I am a member
WHEN a feed fails to be fetched
THEN an error is logged via the
AppLoggerAND an error is sent to the channel in an embed
Subtasks
RssTimer.tsinsrc/timers/*/15 * * * *)lastFetchedItemGuidto identify new entrieslastFetchedItemGuidin database after successful postNotes
No notes
Implemented on
cursor/534-rss-feed-checker-timer(fromfeature/epic-528-rss-feeds).PR ready for review: #592
*/15 * * * *Europe/London viaRssTimerLastFetchedItemGuidafter each successful postAppLogger.error+ danger embed in the feed channelyarn build/yarn testPASS (8 suites / 97 tests)Moved to
step/reviewand assigned to @Vylpes. Retry/disable monitoring left for #535.@Smithy-bot I've left some comments on the PR for you to resolve.
Addressed the PR review comments on #592 (commit
850da44):AppLogger— deletedsrc/helpers/AppLogger.ts. Errors now useconsole.error(same pattern asAutoKick). Proper logging deferred to a future story.ChannelHelper.ResolveSendable— new helper atsrc/helpers/ChannelHelper.ts;RssTimeruses it for feed + error posting.RssFeedHelper.BuildItemEmbed— item embed builder moved out of the timer for reuse (e.g. a future manual send command).Local:
yarn build+yarn testPASS (9 suites / 102 tests).Other places
ChannelHelpercould be reusedClosest match (resolve by id + sendable check), same pattern as the extracted helper:
src/timers/AutoKick.ts— notice channel lookup ×2 (guild.channels.cache.find/fetch+isSendable)Related but different today (lookup by name, then cast to
TextChannel— would need a name-based helper or ID migration first):src/commands/ban.ts,kick.ts,warn.ts,timeout.tsGuildMemberAdd,GuildMemberRemove,NicknameChanged,MessageDelete,MessageUpdateVerificationCheckverification channel lookupHappy to refactor
AutoKickontoChannelHelperin a follow-up if you want that in this PR instead.Leaving at
step/reviewfor you — did not approve or merge.Opened follow-up for ChannelHelper reuse: #593
QA on
feature/epic-528-rss-feeds@0f38242(PR #592 merged).Results
yarn install --frozen-lockfilePASSyarn build(tsc) PASSyarn testPASS — 9 suites / 102 tests / 2 snapshotstests/timers/RssTimer.test.tscovers AC: cron-driven fetch of all feeds, post new items oldest-first withLastFetchedItemGuidupdates, fetch failure →console.error+ danger embed (AppLogger removed per review; logging deferred)src/client/client.ts:AddTimer("*/15 * * * *", "Europe/London", RssTimer, false)yarn lintscript)Note: Code is on the epic feature branch, not yet on
release/3.4.0.Moving
step/testing→step/uat. Live Discord 15-minute feed smoke left for human UAT.