about summary refs log tree commit diff stats
path: root/pkgs/by-name/mp/mpdpopm/src/messanges/mod.rs
diff options
context:
space:
mode:
Diffstat (limited to '')
-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 {} => {