trying to get handler to pause/play
This commit is contained in:
21
Dockerfile
21
Dockerfile
@@ -19,25 +19,18 @@ WORKDIR /packages
|
||||
|
||||
ARG TARGETPLATFORM
|
||||
|
||||
RUN apt-get update && apt-get install -y curl tar xz-utils && \
|
||||
if [ "$TARGETPLATFORM" = "linux/arm/v7" ]; then \
|
||||
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_armv7l > yt-dlp && \
|
||||
chmod +x yt-dlp; \
|
||||
elif [ "$TARGETPLATFORM" = "linux/aarch64" ]; then \
|
||||
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_aarch64 > yt-dlp && \
|
||||
chmod +x yt-dlp; \
|
||||
elif [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
|
||||
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux_aarch64 > yt-dlp && \
|
||||
RUN apt-get update && apt-get install -y python3 curl tar xz-utils && \
|
||||
# Download the platform-independent yt-dlp binary
|
||||
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp > yt-dlp && \
|
||||
# Make yt-dlp executable
|
||||
chmod +x yt-dlp && \
|
||||
# Install ffmpeg for media conversions
|
||||
if [ "$TARGETPLATFORM" = "linux/arm64" ]; then \
|
||||
curl -L https://github.com/yt-dlp/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linuxarm64-gpl.tar.xz > ffmpeg.tar.xz && \
|
||||
tar -xJf ffmpeg.tar.xz --wildcards */bin/ffmpeg --transform='s/^.*\///' && rm ffmpeg.tar.xz; \
|
||||
elif [ "$TARGETPLATFORM" = "linux/x86_64" ] | [ "$TARGETPLATFORM" = "linux/amd64" ]; then \
|
||||
curl -L https://github.com/yt-dlp/yt-dlp/releases/latest/download/yt-dlp_linux > yt-dlp && \
|
||||
chmod +x yt-dlp && \
|
||||
elif [ "$TARGETPLATFORM" = "linux/x86_64" ] || [ "$TARGETPLATFORM" = "linux/amd64" ]; then \
|
||||
curl -L https://github.com/yt-dlp/FFmpeg-Builds/releases/download/latest/ffmpeg-master-latest-linux64-gpl.tar.xz > ffmpeg.tar.xz && \
|
||||
tar -xJf ffmpeg.tar.xz --wildcards */bin/ffmpeg --transform='s/^.*\///' && rm ffmpeg.tar.xz; \
|
||||
else \
|
||||
echo "Unsupported platform: $TARGETPLATFORM" && false; \
|
||||
fi
|
||||
|
||||
# =========
|
||||
|
||||
4
Makefile
4
Makefile
@@ -15,9 +15,13 @@ help: ## Help command
|
||||
backend-up: ## Start the backend containers
|
||||
@docker compose --profile backend up -d
|
||||
|
||||
up-backend: backend-up
|
||||
|
||||
backend-down: ## Stop the backend containers
|
||||
@docker compose --profile backend down
|
||||
|
||||
down-backend: backend-down
|
||||
|
||||
run: ## Run the project
|
||||
@echo "Running project..."
|
||||
@cargo run
|
||||
|
||||
@@ -13,6 +13,7 @@ use songbird::Songbird;
|
||||
|
||||
use crate::error::{SirenResult, Error as SirenError};
|
||||
|
||||
pub mod mute;
|
||||
pub mod pause;
|
||||
pub mod play;
|
||||
pub mod resume;
|
||||
|
||||
@@ -29,7 +29,9 @@ pub async fn run(ctx: &Context, command: &CommandInteraction) {
|
||||
// Pause the track
|
||||
if let Some(handler_lock) = manager.get(guild_id.to_owned()) {
|
||||
let handler = handler_lock.lock().await;
|
||||
match handler.queue().pause() {
|
||||
match handler.queue().current() {
|
||||
Some(track) => {
|
||||
match track.pause() {
|
||||
Ok(_) => {
|
||||
log::debug!("<{guild_id}> Paused the track");
|
||||
edit_response(&ctx, &command, format!("Pausing the track")).await;
|
||||
@@ -38,6 +40,11 @@ pub async fn run(ctx: &Context, command: &CommandInteraction) {
|
||||
edit_response(&ctx, &command, format!("Failed to pause: {}", err)).await;
|
||||
}
|
||||
}
|
||||
},
|
||||
None => {
|
||||
edit_response(ctx, command, format!("No track currently being played")).await;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -29,7 +29,9 @@ pub async fn run(ctx: &Context, command: &CommandInteraction) {
|
||||
// Resume the track
|
||||
if let Some(handler_lock) = manager.get(guild_id.to_owned()) {
|
||||
let handler = handler_lock.lock().await;
|
||||
match handler.queue().resume() {
|
||||
match handler.queue().current() {
|
||||
Some(track) => {
|
||||
match track.play() {
|
||||
Ok(_) => {
|
||||
log::debug!("<{guild_id}> Resumed the track");
|
||||
edit_response(&ctx, &command, format!("Resuming the track")).await;
|
||||
@@ -39,6 +41,12 @@ pub async fn run(ctx: &Context, command: &CommandInteraction) {
|
||||
}
|
||||
}
|
||||
}
|
||||
None => {
|
||||
edit_response(&ctx, &command, format!("No track is currently playing")).await;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
pub fn register() -> CreateCommand {
|
||||
|
||||
@@ -165,12 +165,12 @@ async fn generate_thread_name(oai: &OAI, s: &str, max_chars: usize) -> String {
|
||||
let message = ChatCompletionMessage {
|
||||
role: GPTRole::User,
|
||||
content: format!(
|
||||
"---\n{}\n---\nSummarize the message above into a concise Discord thread title",
|
||||
s
|
||||
"---\n{}\n---\nSummarize the message above into a concise Discord thread title with {} max characters",
|
||||
s, max_chars
|
||||
),
|
||||
};
|
||||
let request = ChatCompletionRequest {
|
||||
model: oai.default_model.clone(),
|
||||
model: "gpt-4o-mini".to_string(),
|
||||
messages: vec![message],
|
||||
temperature: Some(0.5),
|
||||
top_p: None,
|
||||
|
||||
@@ -52,6 +52,7 @@ impl EventHandler for Handler {
|
||||
"stop" => commands::audio::stop::run(&ctx, &command).await,
|
||||
"pause" => commands::audio::pause::run(&ctx, &command).await,
|
||||
"resume" => commands::audio::resume::run(&ctx, &command).await,
|
||||
"mute" => commands::audio::mute::run(&ctx, &command).await,
|
||||
"skip" => commands::audio::skip::run(&ctx, &command).await,
|
||||
"volume" => commands::audio::volume::run(&ctx, &command).await,
|
||||
"schedule" => commands::event::schedule::run(&ctx, &command).await,
|
||||
@@ -92,6 +93,7 @@ impl EventHandler for Handler {
|
||||
commands::audio::stop::register(),
|
||||
commands::audio::pause::register(),
|
||||
commands::audio::resume::register(),
|
||||
commands::audio::mute::register(),
|
||||
commands::audio::skip::register(),
|
||||
commands::audio::volume::register(),
|
||||
commands::event::schedule::register(),
|
||||
|
||||
@@ -10,7 +10,6 @@ use crate::bot::handler::Handler;
|
||||
|
||||
mod bot;
|
||||
mod data;
|
||||
mod dnd;
|
||||
mod error;
|
||||
|
||||
pub struct HttpKey;
|
||||
|
||||
Reference in New Issue
Block a user