about summary refs log tree commit diff stats
path: root/pkgs/by-name/mp/mpdpopm/src/messanges/mod.rs
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-02-19 22:38:14 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2026-02-19 22:38:14 +0100
commitc0a5deab2e4d4501e5a5d277c591bb444512613e (patch)
treec08c9005aa082f230eaef60a528df8c78df98fd5 /pkgs/by-name/mp/mpdpopm/src/messanges/mod.rs
parentpkgs/mpdpopmd: Don't add a new song to playlist for every event (diff)
downloadnixos-config-c0a5deab2e4d4501e5a5d277c591bb444512613e.zip
pkgs/mpdpopmd: Make the {positive,neutral,negative} chances configurable
Diffstat (limited to 'pkgs/by-name/mp/mpdpopm/src/messanges/mod.rs')
-rw-r--r--pkgs/by-name/mp/mpdpopm/src/messanges/mod.rs26
1 files changed, 23 insertions, 3 deletions
diff --git a/pkgs/by-name/mp/mpdpopm/src/messanges/mod.rs b/pkgs/by-name/mp/mpdpopm/src/messanges/mod.rs
index ac0b9cbe..7db75672 100644
--- a/pkgs/by-name/mp/mpdpopm/src/messanges/mod.rs
+++ b/pkgs/by-name/mp/mpdpopm/src/messanges/mod.rs
@@ -27,7 +27,19 @@ enum SubCommand {
 
 #[derive(Subcommand)]
 enum DjCommand {
-    Start {},
+    Start {
+        /// The chance to select a "positive" track
+        #[arg(long)]
+        positive_chance: f64,
+
+        /// The chance to select a "neutral" track
+        #[arg(long)]
+        neutral_chance: f64,
+
+        /// The chance to select a "negative" track
+        #[arg(long)]
+        negative_chance: f64,
+    },
     Stop {},
 }
 
@@ -101,9 +113,17 @@ impl MessageQueue {
 
         match args.command {
             SubCommand::Dj { command } => match command {
-                DjCommand::Start {} => {
+                DjCommand::Start {
+                    positive_chance,
+                    neutral_chance,
+                    negative_chance,
+                } => {
                     info!("Dj started");
-                    self.dj = Some(Dj::new(Discovery::new()));
+                    self.dj = Some(Dj::new(Discovery::new(
+                        positive_chance,
+                        neutral_chance,
+                        negative_chance,
+                    )));
                     self.advance_dj(client).await?;
                 }
                 DjCommand::Stop {} => {