diff --git a/src/commands/lyrics.rs b/src/commands/lyrics.rs index 12e9733..e4b732a 100644 --- a/src/commands/lyrics.rs +++ b/src/commands/lyrics.rs @@ -1,7 +1,7 @@ use percent_encoding::{percent_encode, NON_ALPHANUMERIC}; use serde::Deserialize; use serenity::{ - framework::standard::{macros::command, Args, CommandResult}, + framework::standard::{macros::command, Args, CommandError, CommandResult}, model::channel::Message, prelude::*, }; @@ -24,24 +24,19 @@ async fn lyrics(ctx: &Context, message: &Message, args: Args) -> CommandResult { // TODO: use https://orion.apiseeds.com/api/music/lyric/:artist/:track instead let mut url = String::from("https://mourits.xyz:2096/?q="); // check if input is not empty - let input = match args.rest().trim() { - "" => { - return Err("Called without input!".into()); - } - v => v, - }; + let input = args.rest().trim(); + if input.is_empty() { + return Err("Called without input!".into()); + } // encode into url url += &s!(percent_encode(input.as_bytes(), NON_ALPHANUMERIC)); - let request = match reqwest::get(&url).await { - Ok(v) => v, - Err(e) => return Err(e.into()), - }; + let request = reqwest::get(&url).await?; - let resp: Response = match request.json().await { - Ok(v) => v, - Err(_) => return Err("Could not find lyrics".into()), - }; + let resp: Response = request + .json() + .await + .map_err(|_| CommandError::from("Could not find lyrics"))?; let _ = message .channel_id .send_message(&ctx.http, |m| {