pub(crate) async fn resolve_pending_download_urls<F, Fut>(
db_service: &Arc<RusqliteService>,
target_dir: &str,
only_ids: Option<&[i64]>,
resolve: F,
) -> Result<ResumeQueuedResult, String>Expand description
Core of resume_queued_downloads, factored out for testing: select every
pending/stream_url IS NULL row, resolve each via resolve (returning
None leaves the row pending), and heal the row so the pump can start it.
The resolve closure receives (item_id, media_type, quality_preset).
only_ids restricts the sweep to specific download rows. Reconnect passes
None and heals everything; a bulk enqueue (an album, say) passes the rows
it just created, so clicking download on one album cannot also start every
unrelated row that has been sitting pending.