tidal: honor manually entered artist and album search terms
- Dominant language
- Python
- Stars
- 15.7k
- Forks
- 2.1k
- Avg merge
- 5d 4h
- Merged PRs (30d)
- 35
Description
### Problem
The Tidal plugin ignores the artist and album entered through the importer's `Enter search` action. Beets passes these values to `TidalPlugin.candidates()`, but the plugin builds its queries from the existing item tags via `_album_queries(items)` instead.
This makes manual search repeat the original, incorrect search when users are trying to correct bad or missing tags. The singleton path has the same problem: `item_candidates()` ignores its artist and title arguments and uses `_item_queries(item)`.
To reproduce:
1. Enable the Tidal plugin and import an album with incorrect artist or album tags.
2. Choose `Enter search`.
3. Enter a different artist and album.
4. Observe that Tidal searches using the original tags rather than the entered values.
### Expected behavior
Tidal should use the manually entered artist and album or track title when Beets supplies explicit search terms.
### Suggested fix
Build Tidal text queries from the artist and album/title arguments accepted by `candidates()` and `item_candidates()`, while retaining barcode and ISRC lookup precedence. Add focused regression tests proving that explicit search terms override item metadata for both albums and singletons.
Contributor guide
Research direction
Start with TidalPlugin.candidates() and item_candidates(), then trace _album_queries(items) and _item_queries(item) to see how metadata currently becomes search text. Add focused regression tests for albums and singletons showing explicit artist, album, or title terms override item metadata while barcode and ISRC lookup precedence remains unchanged.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- python
- Domain
- cli, search
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 68/100