cleaner job send function
This commit is contained in:
+20
-24
@@ -10,7 +10,7 @@ use serenity::{
|
||||
async_trait,
|
||||
};
|
||||
use songbird::SerenityInit;
|
||||
use types::jobs::{JobResponse, Jobs};
|
||||
use types::jobs::{JobResponse, JobsMap, JobsResponseMap};
|
||||
use which::which;
|
||||
use yt_dlp::{Downloader, client::Libraries};
|
||||
|
||||
@@ -36,36 +36,32 @@ impl EventHandler for Handler {
|
||||
while let Some(message) = subscriber.next().await {
|
||||
println!("Received message {:?}", message);
|
||||
|
||||
let subject = message.subject.split(".").collect::<Vec<&str>>()[1];
|
||||
// let subject = message.subject.split(".").collect::<Vec<&str>>()[1];
|
||||
let payload: JobsMap = from_bytes(&message.payload).unwrap();
|
||||
|
||||
let result = match subject {
|
||||
"download" => workers::download::download(
|
||||
&self.downloader,
|
||||
from_bytes(&message.payload).unwrap(),
|
||||
)
|
||||
.await
|
||||
.map(|res| JobResponse {
|
||||
content: res.content.map(Jobs::Download),
|
||||
error: res.error,
|
||||
}),
|
||||
"play" => {
|
||||
workers::play::play(&voice_manager, from_bytes(&message.payload).unwrap())
|
||||
let result =
|
||||
match payload {
|
||||
JobsMap::Download(payload) => {
|
||||
workers::download::download(&self.downloader, payload)
|
||||
.await
|
||||
.map(|res| JobResponse {
|
||||
content: res.content.map(JobsResponseMap::Download),
|
||||
error: res.error,
|
||||
})
|
||||
}
|
||||
JobsMap::Play(payload) => workers::play::play(&voice_manager, payload)
|
||||
.await
|
||||
.map(|res| JobResponse {
|
||||
content: res.content.map(Jobs::Play),
|
||||
content: res.content.map(JobsResponseMap::Play),
|
||||
error: res.error,
|
||||
})
|
||||
}
|
||||
"search" => {
|
||||
workers::search::search(&self.downloader, from_bytes(&message.payload).unwrap())
|
||||
}),
|
||||
JobsMap::Search(payload) => workers::search::search(&self.downloader, payload)
|
||||
.await
|
||||
.map(|res| JobResponse {
|
||||
content: res.content.map(Jobs::Search),
|
||||
content: res.content.map(JobsResponseMap::Search),
|
||||
error: res.error,
|
||||
})
|
||||
}
|
||||
_ => Err(format!("subject {subject} does not exists")),
|
||||
};
|
||||
}),
|
||||
};
|
||||
|
||||
let response = match result {
|
||||
Ok(response) => response,
|
||||
|
||||
Reference in New Issue
Block a user