[geneators] llama4 is not showtime

This commit is contained in:
2026-06-26 12:04:57 -04:00
parent 9016fe75f1
commit 8a772fb01c

View File

@ -189,53 +189,34 @@ def build_smart_queue_tracks(
seed = seed_tracks[0] if seed_tracks else None
if seed:
- genres = [g.strip() for g in (seed.genre or "").split("/") if g.strip()]
- if genres:
- other_genre = random.choice(genres)
- variety = _search(core, "genre", other_genre, uris=uris)
- else:
- variety = _search(core, "artist", seed.artists[0].name if seed.artists else "", uris=uris)
+ potential_attributes: list[tuple[str, str]] = [] # [(attribute_type, attribute_value)]
+ genres = [g.strip() for g in (seed.genre or "").split("/") if g.strip()]
+ if genres:
+ potential_attributes.extend([("genre", g) for g in genres])
+
+ artist_names = [a_ref.name for a_ref in seed.artists if a_ref.name]
+ if artist_names:
+ potential_attributes.extend([("artist", name) for name in artist_names])
+
+ variety: list[Track] = []
+ for attr_type, attr_value in potential_attributes:
+ try:
+ if attr_type == "genre":
+ search_result_tracks = _search(core, "genre", attr_value, uris=uris)
+ elif attr_type == "artist":
+ search_result_tracks = _search(core, "artist", attr_value, uris=uris)
+ else:
+ continue
+
+ for t in search_result_tracks:
+ if t.uri and t.uri != seed_uri and t not in variety:
+ variety.append(t)
+ except Exception as e:
+ logger.warning("Could not generate variety for %s=%s: %s", attr_type, attr_value, str(e))
potential_attributes: list[tuple[str, str]] = []
genres = [g.strip() for g in (seed.genre or "").split("/") if g.strip()]
if genres:
potential_attributes.extend([("genre", g) for g in genres])
- random.shuffle(variety)
- variety = variety[:variety_count]
+ # Shuffle all collected unique tracks and cap at the required count
+ variety = list(set(variety)) # Ensure uniqueness first
+ random.shuffle(variety)
+ variety = variety[:variety_count]
artist_names = [a_ref.name for a_ref in seed.artists if a_ref.name]
if artist_names:
potential_attributes.extend([("artist", name) for name in artist_names])
if seed:
genres = [g.strip() for g in (seed.genre or "").split("/") if g.strip()]
- if genres:
- other_genre = random.choice(genres)
- variety = _search(core, "genre", other_genre, uris=uris)
- else:
- variety = _search(core, "artist", seed.artists[0].name if seed.artists else "", uris=uris)
- random.shuffle(variety)
- variety = variety[:variety_count]
variety: list[Track] = []
for attr_type, attr_value in potential_attributes:
try:
if attr_type == "genre":
search_result_tracks = _search(core, "genre", attr_value, uris=uris)
elif attr_type == "artist":
search_result_tracks = _search(core, "artist", attr_value, uris=uris)
else:
continue
for t in search_result_tracks:
if t.uri and t.uri != seed_uri and t not in variety:
variety.append(t)
except Exception as e:
logger.warning("Could not generate variety for %s=%s: %s", attr_type, attr_value, str(e))
variety = list(set(variety))
random.shuffle(variety)
variety = variety[:variety_count]
result = instant + variety
random.shuffle(result)