INNER CODE UNIT · Rust
retrieve_lyric
aome510/spotify-player · lyric_finder/src/lib.rs:97
pub async fn retrieve_lyric(&self, url: &str) -> anyhow::Result<String> {
let html = self.http.get(url).send().await?.text().await?;
log::debug!("retrieve lyric from url={url}: html={html}");
let lyric = parse::parse(&html)?;
Ok(lyric.trim().to_string())
}
/// Process a lyric obtained by crawling the [Genius](https://genius.com) website.
///
/// The lyric received this way may have weird newline spacings between sections (*).
/// The below function tries an ad-hoc method to fix this issue.
///
/// (*): A section often starts with `[`.
fn process_lyric(lyric: &str) -> String {
// the below code modifies the `lyric` to make the newline between sections consistent
lyric.replace("\n\n[", "\n[").replace("\n[", "\n\n[")
}