Implement library watchlist management in shanty-watch
#6
Notifications
Total Time Spent: 17 minutes
connor
17 minutes
No due date set.
Dependencies
No dependencies set.
Reference: Shanty/Main#6
Reference in New Issue
Block a user
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?
The
shanty-watchcrate manages the user's "library" — the collection of artists, albums, and individual songs they want to have. This is what makes Shanty more than just a tagger/organizer — it tracks what the user wants and compares it against what they have. Unlike Lidarr, Shanty supports monitoring at the individual song level, not just artist/album.This issue covers the MVP watchlist functionality:
Adding items to the library — the user should be able to add:
Each item can be in one of these states:
wanted,available(found online but not downloaded),downloaded,owned(already in the local library)Matching against existing library — when an item is added to the watchlist, check if it already exists in the database (from indexing). If so, mark it as
owned. This cross-referencing should use fuzzy matching (artist name + title similarity) since local files may not match online metadata exactly.Listing/querying the watchlist — provide functions to:
CLI interface — the
shanty-watchbinary should accept:add artist <name>— add an artist to the watchlistadd album <artist> <album>— add a specific albumadd track <artist> <title>— add a specific tracklist [--status <status>] [--artist <name>]— list watchlist itemsremove <id>— remove an item from the watchliststatus— show a summary of the library stateDesign Considerations
shanty-search), so the library API should be clean and JSON-serializable.Acceptance Criteria
wanted,available,downloaded,owned)ownedshanty-dbDependencies