blob: 325c5234b3a170c38a92ee9e07c0e2d83940381e (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
use percent_encoding::{utf8_percent_encode, NON_ALPHANUMERIC};
use std::io::Result;
mod genius;
use crate::Track;
use genius::{get_lyrics, search};
const GENIUS_CLIENT_TOKEN: &str = env!("LYRICLI_GENIUS_TOKEN");
const GENIUS_API_URL: &str = "https://api.genius.com/search";
pub async fn print_lyrics(track: Track, show_title: bool) -> Result<()> {
if show_title {
println!("{} - {}", track.artist, track.name);
}
let artist = utf8_percent_encode(&track.artist, NON_ALPHANUMERIC).to_string();
let name = utf8_percent_encode(&track.name, NON_ALPHANUMERIC).to_string();
let url = format!(
"{}?access_token={}&q={}%20{}",
GENIUS_API_URL, GENIUS_CLIENT_TOKEN, artist, name
);
let song_url = search(&url).await?;
let lyrics = get_lyrics(&song_url).await?;
println!("{}", lyrics);
Ok(())
}
|