scene: stagedirection: switch to a generic playlist name based interface to mixxx, instead of PWM episode numbers

This commit is contained in:
2026-06-16 11:29:48 +02:00
parent 359941c094
commit 0a2a09eb3c
4 changed files with 14 additions and 16 deletions
+5 -11
View File
@@ -16,7 +16,7 @@ const SYSTEM_PROMPT: &str = include_str!("system-prompt.txt");
#[derive(Debug, Clone)]
pub enum PredictionAction {
ConversationAppend(ConversationEntry),
SetEpisodeNumber(u32),
SetPlaylist(String),
GeneratePredictions,
SetNarrative(String),
SetShowEndTime(DateTime<Utc>)
@@ -417,19 +417,13 @@ pub async fn start_prediction(saved_session: SaveData, mut messages: tokio::sync
do_regen
},
PredictionAction::SetEpisodeNumber(num) => {
session.direction.episode_number = num;
match MixxxDB::load(num) {
PredictionAction::SetPlaylist(playlist_name) => {
match MixxxDB::load(&playlist_name) {
Err(err) => log::info!("Failed to load mixxx playlist: {:?}.", err),
Ok(playlist) => {
for track in &playlist {
if let Some(merge_target) = session.scenery.artifacts.iter_mut().find(|a| { *a == track }) {
merge_target.merge(track.clone());
} else {
session.scenery.artifacts.push(track.clone());
}
}
session.scenery.artifacts.merge(playlist.clone());
session.scenery.current_playlist = playlist;
session.direction.playlist = playlist_name;
log::info!("Mixxx playlist reloaded.");
}
}