Manual search link paste: clean error on unresolvable link, don't search the raw URL (#813 lock-in)

A parsed link is unambiguously a Tidal/Qobuz /track/ URL (no false positives),
so if its source isn't connected or the track can't be resolved, return a clear
400 ("Tidal isn't connected — … or search by name") instead of silently
running a useless search of the raw URL text. The frontend already surfaces the
400's error message in the modal.
This commit is contained in:
BoulderBadgeDad 2026-06-08 15:14:47 -07:00
parent cea0e9d63c
commit c654deac17

View file

@ -7155,14 +7155,22 @@ def manual_search_for_task(task_id):
link_track_id = None
if link:
_src, _tid = link
if _src in valid_source_ids:
clean_q, link_err = _resolve_link_track_query(_src, _tid)
if clean_q:
query = clean_q
source = _src
link_source, link_track_id = _src, _tid
else:
logger.info(f"[Manual Search] link resolve fell back: {link_err}")
# A parsed link is unambiguously a Tidal/Qobuz track URL, never a
# name a user would type — so if we can't use it, say why clearly
# instead of running a useless search of the raw URL text.
if _src not in valid_source_ids:
return jsonify({
"error": f"{_src.title()} isn't connected — can't resolve a "
f"{_src.title()} link. Connect it in Settings, or search by name."
}), 400
clean_q, link_err = _resolve_link_track_query(_src, _tid)
if not clean_q:
return jsonify({
"error": link_err or f"Couldn't resolve that {_src.title()} link."
}), 400
query = clean_q
source = _src
link_source, link_track_id = _src, _tid
if source != 'all':
if source not in valid_source_ids: