pub struct Lastfm { /* private fields */ }Implementations§
Source§impl Lastfm
impl Lastfm
Sourcepub fn builder() -> LastfmBuilder
pub fn builder() -> LastfmBuilder
Examples found in repository?
examples/auth_get_token.rs (line 11)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 let response = lastfm.auth().get_token().send().await?;
17
18 let token = match response {
19 APIResponse::Success(value) => value.token,
20 APIResponse::Error(err) => {
21 format!("Error: {} - {}", err.error, err.message)
22 }
23 };
24 println!("Token: {}", token);
25
26 Ok(())
27}More examples
examples/album_search.rs (line 11)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 let response = lastfm
17 .album()
18 .search()
19 .album("HIT ME HARD AND SOFT")
20 .limit(30)
21 .page(1)
22 .send()
23 .await?;
24
25 match response {
26 APIResponse::Success(value) => {
27 println!("{}", value);
28 }
29 APIResponse::Error(err) => {
30 println!("Error: {} - {}", err.error, err.message);
31 }
32 }
33
34 Ok(())
35}examples/album_get_top_tags.rs (line 11)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 let response = lastfm
17 .album()
18 .get_top_tags()
19 .artist("Billie Eilish")
20 .album("HIT ME HARD AND SOFT")
21 .autocorrect(true)
22 .send()
23 .await?;
24
25 match response {
26 APIResponse::Success(value) => {
27 println!("{:?}", value);
28 }
29 APIResponse::Error(err) => {
30 println!("Error: {} - {}", err.error, err.message);
31 }
32 }
33
34 Ok(())
35}examples/album_get_info.rs (line 11)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 let response = lastfm
17 .album()
18 .get_info()
19 .artist("Billie Eilish")
20 .album("HIT ME HARD AND SOFT")
21 .username("uppercase_")
22 .autocorrect(true)
23 .send()
24 .await?;
25
26 match response {
27 APIResponse::Success(value) => {
28 println!("{:?}", value.album);
29 }
30 APIResponse::Error(err) => {
31 println!("Error: {} - {}", err.error, err.message);
32 }
33 }
34
35 Ok(())
36}examples/album_get_tags.rs (line 11)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 let response = lastfm
17 .album()
18 .get_tags()
19 .artist("Billie Eilish")
20 .album("HIT ME HARD AND SOFT")
21 .user("uppercase_")
22 .autocorrect(true)
23 .send()
24 .await?;
25
26 match response {
27 APIResponse::Success(value) => {
28 println!("{}", serde_json::json!(value));
29 }
30 APIResponse::Error(err) => {
31 println!("Error: {} - {}", err.error, err.message);
32 }
33 }
34
35 Ok(())
36}examples/auth_get_session.rs (line 11)
6async fn main() -> Result<(), Box<dyn std::error::Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 // Request token
17 let response = lastfm.auth().get_token().send().await?;
18
19 let token = match response {
20 APIResponse::Success(value) => value.token,
21 APIResponse::Error(err) => {
22 return Err(Box::new(err) as Box<dyn Error>);
23 }
24 };
25
26 println!("Token: {}", token);
27
28 // Authorize the token
29 lastfm.auth().pls_authorize(token.to_string());
30
31 // Get session key
32 let response = lastfm.auth().get_session().token(&token).send().await?;
33
34 println!("Session: {}", response);
35
36 Ok(())
37}Additional examples can be found in:
pub fn get_client(&self) -> &ReqwestClient
pub fn get_api_key(&self) -> String
pub fn get_api_secret(&self) -> String
pub fn get_base_url(&self) -> &String
pub fn get_sk(&self) -> String
pub fn set_sk(&mut self, sk: String) -> &mut Self
pub fn sign_api(&self, params: &mut HashMap<String, String>) -> String
pub async fn send_request<T>(
&self,
method: LastfmMethod,
params: &mut HashMap<String, String>,
http_method: Method,
) -> Result<APIResponse<T>>where
T: for<'de> Deserialize<'de>,
Sourcepub fn album(&self) -> Album<'_>
pub fn album(&self) -> Album<'_>
Creates a new Album instance for interacting with album-related methods.
Examples found in repository?
examples/album_search.rs (line 17)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 let response = lastfm
17 .album()
18 .search()
19 .album("HIT ME HARD AND SOFT")
20 .limit(30)
21 .page(1)
22 .send()
23 .await?;
24
25 match response {
26 APIResponse::Success(value) => {
27 println!("{}", value);
28 }
29 APIResponse::Error(err) => {
30 println!("Error: {} - {}", err.error, err.message);
31 }
32 }
33
34 Ok(())
35}More examples
examples/album_get_top_tags.rs (line 17)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 let response = lastfm
17 .album()
18 .get_top_tags()
19 .artist("Billie Eilish")
20 .album("HIT ME HARD AND SOFT")
21 .autocorrect(true)
22 .send()
23 .await?;
24
25 match response {
26 APIResponse::Success(value) => {
27 println!("{:?}", value);
28 }
29 APIResponse::Error(err) => {
30 println!("Error: {} - {}", err.error, err.message);
31 }
32 }
33
34 Ok(())
35}examples/album_get_info.rs (line 17)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 let response = lastfm
17 .album()
18 .get_info()
19 .artist("Billie Eilish")
20 .album("HIT ME HARD AND SOFT")
21 .username("uppercase_")
22 .autocorrect(true)
23 .send()
24 .await?;
25
26 match response {
27 APIResponse::Success(value) => {
28 println!("{:?}", value.album);
29 }
30 APIResponse::Error(err) => {
31 println!("Error: {} - {}", err.error, err.message);
32 }
33 }
34
35 Ok(())
36}examples/album_get_tags.rs (line 17)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 let response = lastfm
17 .album()
18 .get_tags()
19 .artist("Billie Eilish")
20 .album("HIT ME HARD AND SOFT")
21 .user("uppercase_")
22 .autocorrect(true)
23 .send()
24 .await?;
25
26 match response {
27 APIResponse::Success(value) => {
28 println!("{}", serde_json::json!(value));
29 }
30 APIResponse::Error(err) => {
31 println!("Error: {} - {}", err.error, err.message);
32 }
33 }
34
35 Ok(())
36}examples/album_add_tags.rs (line 22)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10 let sk = std::env::var("SK").expect("SK env variable is required");
11
12 let lastfm = Lastfm::builder()
13 .api_key(api_key)
14 .api_secret(api_secret)
15 .session_key(sk)
16 .build()?;
17
18 lastfm.auth();
19 // lastfm.set_sk(sk);
20
21 let response = lastfm
22 .album()
23 .add_tags()
24 .artist("Billie Eilish")
25 .album("HIT ME HARD AND SOFT")
26 .tags("aoty")
27 .send()
28 .await?;
29
30 match response {
31 APIResponse::Success(value) => {
32 println!("{}", value);
33 }
34 APIResponse::Error(err) => {
35 println!("Error: {} - {}", err.error, err.message);
36 }
37 }
38
39 Ok(())
40}examples/album_remove_tags.rs (line 22)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10 let sk = std::env::var("SK").expect("SK env variable is required");
11
12 let lastfm = Lastfm::builder()
13 .api_key(api_key)
14 .api_secret(api_secret)
15 .session_key(sk)
16 .build()?;
17
18 let _sk = lastfm.auth();
19 // lastfm.set_sk(sk);
20
21 let response = lastfm
22 .album()
23 .remove_tag()
24 .artist("Billie Eilish")
25 .album("HIT ME HARD AND SOFT")
26 .tag("aoty")
27 .send()
28 .await?;
29
30 match response {
31 APIResponse::Success(value) => {
32 println!("{}", value);
33 }
34 APIResponse::Error(err) => {
35 println!("Error: {} - {}", err.error, err.message);
36 }
37 }
38
39 Ok(())
40}Sourcepub fn artist(&self) -> Artist<'_>
pub fn artist(&self) -> Artist<'_>
Creates a new Artist instance for interacting with artist-related methods.
Sourcepub fn auth(&self) -> Auth<'_>
pub fn auth(&self) -> Auth<'_>
Creates a new Auth instance for interacting with auth-related methods.
Examples found in repository?
examples/auth_get_token.rs (line 16)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 let response = lastfm.auth().get_token().send().await?;
17
18 let token = match response {
19 APIResponse::Success(value) => value.token,
20 APIResponse::Error(err) => {
21 format!("Error: {} - {}", err.error, err.message)
22 }
23 };
24 println!("Token: {}", token);
25
26 Ok(())
27}More examples
examples/auth_get_session.rs (line 17)
6async fn main() -> Result<(), Box<dyn std::error::Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10
11 let lastfm = Lastfm::builder()
12 .api_key(api_key)
13 .api_secret(api_secret)
14 .build()?;
15
16 // Request token
17 let response = lastfm.auth().get_token().send().await?;
18
19 let token = match response {
20 APIResponse::Success(value) => value.token,
21 APIResponse::Error(err) => {
22 return Err(Box::new(err) as Box<dyn Error>);
23 }
24 };
25
26 println!("Token: {}", token);
27
28 // Authorize the token
29 lastfm.auth().pls_authorize(token.to_string());
30
31 // Get session key
32 let response = lastfm.auth().get_session().token(&token).send().await?;
33
34 println!("Session: {}", response);
35
36 Ok(())
37}examples/album_add_tags.rs (line 18)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10 let sk = std::env::var("SK").expect("SK env variable is required");
11
12 let lastfm = Lastfm::builder()
13 .api_key(api_key)
14 .api_secret(api_secret)
15 .session_key(sk)
16 .build()?;
17
18 lastfm.auth();
19 // lastfm.set_sk(sk);
20
21 let response = lastfm
22 .album()
23 .add_tags()
24 .artist("Billie Eilish")
25 .album("HIT ME HARD AND SOFT")
26 .tags("aoty")
27 .send()
28 .await?;
29
30 match response {
31 APIResponse::Success(value) => {
32 println!("{}", value);
33 }
34 APIResponse::Error(err) => {
35 println!("Error: {} - {}", err.error, err.message);
36 }
37 }
38
39 Ok(())
40}examples/album_remove_tags.rs (line 18)
6async fn main() -> Result<(), Box<dyn Error>> {
7 dotenv().ok();
8 let api_key = std::env::var("API_KEY").expect("API_KEY env variable is required");
9 let api_secret = std::env::var("API_SECRET").expect("API_SECRET env variable is required");
10 let sk = std::env::var("SK").expect("SK env variable is required");
11
12 let lastfm = Lastfm::builder()
13 .api_key(api_key)
14 .api_secret(api_secret)
15 .session_key(sk)
16 .build()?;
17
18 let _sk = lastfm.auth();
19 // lastfm.set_sk(sk);
20
21 let response = lastfm
22 .album()
23 .remove_tag()
24 .artist("Billie Eilish")
25 .album("HIT ME HARD AND SOFT")
26 .tag("aoty")
27 .send()
28 .await?;
29
30 match response {
31 APIResponse::Success(value) => {
32 println!("{}", value);
33 }
34 APIResponse::Error(err) => {
35 println!("Error: {} - {}", err.error, err.message);
36 }
37 }
38
39 Ok(())
40}Sourcepub fn chart(&self) -> Chart<'_>
pub fn chart(&self) -> Chart<'_>
Creates a new Chart instance for interacting with chart-related methods.
Sourcepub fn geo(&self) -> Geo<'_>
pub fn geo(&self) -> Geo<'_>
Creates a new Geo instance for interacting with geo-related methods.
Sourcepub fn library(&self) -> Library<'_>
pub fn library(&self) -> Library<'_>
Creates a new Library instance for interacting with library-related methods.
Sourcepub fn tag(&self) -> Tag<'_>
pub fn tag(&self) -> Tag<'_>
Creates a new Tag instance for interacting with tag-related methods.
Trait Implementations§
Auto Trait Implementations§
impl Freeze for Lastfm
impl !RefUnwindSafe for Lastfm
impl Send for Lastfm
impl Sync for Lastfm
impl Unpin for Lastfm
impl !UnwindSafe for Lastfm
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more