Skip to content

feat: auto-download missing queue tracks and add library play actions - #1195

Open
zirkyspeng wants to merge 2 commits into
Nezreka:devfrom
zirkyspeng:feat-queue-auto-download-play-actions
Open

feat: auto-download missing queue tracks and add library play actions#1195
zirkyspeng wants to merge 2 commits into
Nezreka:devfrom
zirkyspeng:feat-queue-auto-download-play-actions

Conversation

@zirkyspeng

@zirkyspeng zirkyspeng commented Aug 27, 2026

Copy link
Copy Markdown

Summary

This PR aims to add 2 new related features:

  • feat(playback): auto-download missing queue tracks
    • Automatically acquire missing playback-queue tracks through SoulSync's existing enabled download sources.
    • Preserve queue order with one active queue download so the next unavailable track is prepared first.
    • Reconcile completed downloads with their imported library files so queue entries become playable instead of remaining Missing.
  • feat(library): add artist and album play actions
    • Add Play actions for artists in Library that adds top tracks to the player's queue (and download missing tracks with auto-download enabled)
    • For albums on artist pages, add a play button that adds all tracks to the queue and start playing the albums (and download missing tracks with auto-download enabled)

Behavior

  • Queue auto-download is disabled by default and stored per profile.
  • Existing library files and active or completed queue downloads are reused.
  • Missing tracks expose queued, searching, downloading, verifying, and error states.
  • The first unavailable queue track waits for its verified import while later missing tracks remain ordered behind it.
  • Downloads use SoulSync's existing source-selection, matching, download, verification, and import pipeline.
  • Artist Play queues the artist's top tracks; album Play queues its tracks in album order.

Testing

  • python -m ruff check --output-format=github .
  • python -m compileall api core database services scripts web_server.py wsgi.py beatport_unified_scraper.py
  • Targeted Python tests: 103 passed.
  • Full Python suite: 15,133 passed; three unrelated failures were reproduced unchanged on dev.
  • Targeted WebUI tests: 153 passed.
  • Full WebUI suite: 8,032 passed.
  • WebUI production build completed successfully.
  • Changed WebUI sources pass formatting and type-aware lint with no errors.
  • The repository-wide WebUI format check is already failing on dev (36 pre-existing files); this branch reduces that count and introduces no formatting failure in its changed sources.

Screenshots

Library artist Play action

Library artist Play action

Artist-page album Play action

Artist-page album Play action

Ordered queue auto-download states

Ordered queue auto-download states

@zirkyspeng
zirkyspeng force-pushed the feat-queue-auto-download-play-actions branch from 1781ea9 to 84c9871 Compare August 27, 2026 17:29
@zirkyspeng
zirkyspeng marked this pull request as ready for review August 27, 2026 20:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant