feat: rework !similar to build and play discovery playlists
Default !similar now discovers similar artists/tracks, resolves each against YouTube in parallel via ThreadPoolExecutor, fades out current playback, and starts the new playlist. Old display behavior moves to !similar list subcommand. New helpers: _search_queries() normalizes Last.fm/MB results into search strings, _resolve_playlist() resolves queries to _Track objects in parallel. Falls back to display mode when music plugin not loaded. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
16
TASKS.md
16
TASKS.md
@@ -1,6 +1,19 @@
|
||||
# derp - Tasks
|
||||
|
||||
## Current Sprint -- Enhanced Help with FlaskPaste (2026-02-23)
|
||||
## Current Sprint -- Discovery Playlists (2026-02-23)
|
||||
|
||||
| Pri | Status | Task |
|
||||
|-----|--------|------|
|
||||
| P0 | [x] | `!similar` default: discover + resolve + play (playlist mode) |
|
||||
| P0 | [x] | `!similar list` subcommand for display-only (old default) |
|
||||
| P0 | [x] | `_search_queries()` normalizes Last.fm/MB results to search strings |
|
||||
| P0 | [x] | `_resolve_playlist()` parallel yt-dlp resolution via ThreadPoolExecutor |
|
||||
| P1 | [x] | Playback transition: fade out, clear queue, load playlist, fade in |
|
||||
| P1 | [x] | Fallback to display when music plugin not loaded |
|
||||
| P1 | [x] | Tests: 11 new cases (81 total in test_lastfm.py, 1949 suite total) |
|
||||
| P2 | [x] | Documentation update (USAGE.md, CHEATSHEET.md, TASKS.md) |
|
||||
|
||||
## Previous Sprint -- Enhanced Help with FlaskPaste (2026-02-23)
|
||||
|
||||
| Pri | Status | Task |
|
||||
|-----|--------|------|
|
||||
@@ -319,6 +332,7 @@
|
||||
|
||||
| Date | Task |
|
||||
|------|------|
|
||||
| 2026-02-23 | `!similar` discovery playlists (parallel resolve, fade transition, list subcommand) |
|
||||
| 2026-02-23 | Enhanced `!help` with FlaskPaste detail pages (docstrings, grouped reference) |
|
||||
| 2026-02-23 | MusicBrainz fallback for `!similar` and `!tags` (no Last.fm key required) |
|
||||
| 2026-02-22 | v2.3.0 (voice profiles, rubberband FX, multi-bot, self-mute, container tools) |
|
||||
|
||||
Reference in New Issue
Block a user