Implement new release monitoring in shanty-watch #19

Closed
opened 2026-03-17 16:38:37 -04:00 by connor · 0 comments
Owner

Extend shanty-watch to periodically check for new releases from monitored artists. When a new release is detected, it should be added to the watchlist as "available" and optionally trigger a notification or automatic download.

  1. Release checking — periodically query MusicBrainz (or other configured provider) for each monitored artist's releases. Compare against what's already known in the database. New releases get added to the watchlist with status available.

  2. Scheduling — the check should run on a configurable schedule (e.g., daily, every 12 hours). Use a simple scheduler or cron-like system within the app.

  3. Auto-download option — if enabled, automatically add new releases to the download queue when detected.

  4. Notification hook — when a new release is detected, emit an event that shanty-notify can consume (or directly trigger a notification if the notify crate is available).

  5. Handling rate limits — if the user monitors hundreds of artists, checking all of them requires many API calls. Spread checks over time to stay within rate limits. Track when each artist was last checked to avoid redundant queries.

Acceptance Criteria

  • New releases are detected for monitored artists
  • Detected releases are added to the watchlist as available
  • Checking runs on a configurable schedule
  • Rate limits are respected even with many monitored artists
  • Auto-download option works when enabled
  • A notification event is emitted for new releases
  • Last-checked timestamp is stored per artist
  • Can trigger a manual check for a specific artist or all artists

Dependencies

  • Issue #6 (watchlist management)
  • Issue #14 (shared MusicBrainz client)
Extend `shanty-watch` to periodically check for new releases from monitored artists. When a new release is detected, it should be added to the watchlist as "available" and optionally trigger a notification or automatic download. 1. **Release checking** — periodically query MusicBrainz (or other configured provider) for each monitored artist's releases. Compare against what's already known in the database. New releases get added to the watchlist with status `available`. 2. **Scheduling** — the check should run on a configurable schedule (e.g., daily, every 12 hours). Use a simple scheduler or cron-like system within the app. 3. **Auto-download option** — if enabled, automatically add new releases to the download queue when detected. 4. **Notification hook** — when a new release is detected, emit an event that `shanty-notify` can consume (or directly trigger a notification if the notify crate is available). 5. **Handling rate limits** — if the user monitors hundreds of artists, checking all of them requires many API calls. Spread checks over time to stay within rate limits. Track when each artist was last checked to avoid redundant queries. ### Acceptance Criteria - [ ] New releases are detected for monitored artists - [ ] Detected releases are added to the watchlist as `available` - [ ] Checking runs on a configurable schedule - [ ] Rate limits are respected even with many monitored artists - [ ] Auto-download option works when enabled - [ ] A notification event is emitted for new releases - [ ] Last-checked timestamp is stored per artist - [ ] Can trigger a manual check for a specific artist or all artists ### Dependencies - Issue #6 (watchlist management) - Issue #14 (shared MusicBrainz client)
connor added the MediumPriority label 2026-03-19 12:29:11 -04:00
connor started working 2026-03-20 14:57:32 -04:00
connor worked for 1 hour 31 minutes 2026-03-20 16:28:47 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Total Time Spent: 1 hour 31 minutes
connor
1 hour 31 minutes
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Shanty/Main#19