Compare commits

...

3 Commits

4 changed files with 30 additions and 4 deletions

View File

@@ -20,8 +20,14 @@
systemd.services.alan = {
wantedBy = ["networking-online.target"];
enable = true;
path = [
pkgs.newalan
];
environment = {
DING_SOUND = "${pkgs.new_alan}/share/sounds/ding.mp3";
};
script = ''
${pkgs.new_alan}/bin/new_alan
${pkgs.new_alan}/bin/new_alan
'';
};
})

BIN
ding.mp3 Normal file

Binary file not shown.

View File

@@ -66,6 +66,10 @@
# artifacts from above.
newalan = craneLib.buildPackage (commonArgs // {
inherit cargoArtifacts;
postInstall = ''
mkdir -p $out/share/sounds
cp ding.mp3 $out/share/sounds/
'';
});
in rec {
checks = pkgs.lib.optionalAttrs (system == "x86_64-linux") {

View File

@@ -3,6 +3,8 @@ use std::sync::Arc;
use std::time::{Duration, Instant};
use rand::prelude::*;
use serenity::Client;
use songbird::error::JoinError;
use songbird::{ffmpeg, create_player};
use songbird::id::ChannelId;
use std::thread::sleep;
use std::collections::HashMap;
@@ -45,7 +47,7 @@ async fn popin(ctx: Context, guild: Guild) {
most = Some(id);
}
},
Err(error) => {
Err(_error) => {
}
};
@@ -60,13 +62,27 @@ async fn popin(ctx: Context, guild: Guild) {
Some(chan) => {
let manager = songbird::get(&ctx).await
.expect("Songbird: intialization");
let (_,_status) = manager.join(guild.id, chan).await;
let (call,status) = manager.join(guild.id, chan).await;
match status {
Ok(_) => {
let mut call = call.lock().await;
let ding_src = std::env::var("DING_SOUND")
.expect("DING not found in DING_SOUND");
let ding = ffmpeg(ding_src)
.await
.expect("no ding.");
let (mut audio, handle) = create_player(ding);
call.play(audio);
},
Err(_err) => {
println!("Error joining channel")
}
}
},
None => {
println!("No good channel to join")
}
}
()
}
async fn popin_soon(ctx: Context, guild: Guild) {