Clippy ftw
This commit is contained in:
		
							
								
								
									
										99
									
								
								src/main.rs
									
									
									
									
									
								
							
							
						
						
									
										99
									
								
								src/main.rs
									
									
									
									
									
								
							| @@ -13,8 +13,8 @@ use tokio::{ | |||||||
|     sync::oneshot::{self, channel}, |     sync::oneshot::{self, channel}, | ||||||
| }; | }; | ||||||
|  |  | ||||||
| const DISCORD_APP_ID: &'static str = env!("DISCORD_APP_ID", "Missing DISCORD_APP_ID in env"); | const DISCORD_APP_ID: &str = env!("DISCORD_APP_ID", "Missing DISCORD_APP_ID in env"); | ||||||
| const LFM_API_KEY: &'static str = env!("LASTFM_API_KEY", "Missing LASTFM_API_KEY in env"); | const LFM_API_KEY: &str = env!("LASTFM_API_KEY", "Missing LASTFM_API_KEY in env"); | ||||||
|  |  | ||||||
| #[tokio::main] | #[tokio::main] | ||||||
| async fn main() -> Result<(), Box<dyn std::error::Error>> { | async fn main() -> Result<(), Box<dyn std::error::Error>> { | ||||||
| @@ -36,67 +36,58 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> { | |||||||
|  |  | ||||||
|     tokio::spawn(async move { |     tokio::spawn(async move { | ||||||
|         let user_url = format!("https://www.last.fm/user/{}", lfm_username); |         let user_url = format!("https://www.last.fm/user/{}", lfm_username); | ||||||
|         loop { |         while let Err(oneshot::error::TryRecvError::Empty) = recv_stop.try_recv() { | ||||||
|             match recv_stop.try_recv() { |             let tracks_result = lfm | ||||||
|                 Err(oneshot::error::TryRecvError::Empty) => { |                 .recent_tracks(&lfm_username) | ||||||
|                     let tracks_result = lfm |                 .await | ||||||
|                         .recent_tracks(&lfm_username) |                 .with_limit(1) | ||||||
|                         .await |                 .send() | ||||||
|                         .with_limit(1) |                 .await; | ||||||
|                         .send() |  | ||||||
|                         .await; |  | ||||||
|  |  | ||||||
|                     if let Ok(tracks) = tracks_result { |             if let Ok(tracks) = tracks_result { | ||||||
|                         let last_track = &tracks.tracks[0]; |                 let last_track = &tracks.tracks[0]; | ||||||
|                         match &last_track.attrs { |                 match &last_track.attrs { | ||||||
|                             Some(_) => { |                     Some(_) => { | ||||||
|                                 let details = |                         let details = format!("{} - {}", &last_track.artist.name, last_track.name); | ||||||
|                                     format!("{} - {}", &last_track.artist.name, last_track.name); |  | ||||||
|  |  | ||||||
|                                 println!( |                         println!( | ||||||
|                                     "{} Currently playing: {:#?}", |                             "{} Currently playing: {:#?}", | ||||||
|                                     Local::now().format("%Y/%m/%d %H:%M:%S"), |                             Local::now().format("%Y/%m/%d %H:%M:%S"), | ||||||
|                                     details |                             details | ||||||
|                                 ); |                         ); | ||||||
|  |  | ||||||
|                                 let album_name: String = if last_track.album.name.is_empty() { |                         let album_name: String = if last_track.album.name.is_empty() { | ||||||
|                                     last_track.name.clone() |                             last_track.name.clone() | ||||||
|                                 } else { |                         } else { | ||||||
|                                     last_track.album.name.clone() |                             last_track.album.name.clone() | ||||||
|                                 }; |                         }; | ||||||
|  |  | ||||||
|                                 let album_art = if last_track.images[2].image_url.is_empty() { |                         let album_art = if last_track.images[2].image_url.is_empty() { | ||||||
|                                     "https://lastfm.freetls.fastly.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png" |                             "https://lastfm.freetls.fastly.net/i/u/174s/2a96cbd8b46e442fc41c2b86b821562f.png" | ||||||
|                                 } else { |                         } else { | ||||||
|                                     last_track.images[2].image_url.as_str() |                             last_track.images[2].image_url.as_str() | ||||||
|                                 }; |                         }; | ||||||
|  |  | ||||||
|                                 let state = format!("on {}", album_name); |                         let state = format!("on {}", album_name); | ||||||
|                                 let assets = |                         let assets = Assets::new().large_image(album_art).large_text(&details); | ||||||
|                                     Assets::new().large_image(&album_art).large_text(&details); |                         let activity = Activity::new() | ||||||
|                                 let activity = Activity::new() |                             .assets(assets) | ||||||
|                                     .assets(assets) |                             .details(details.as_str()) | ||||||
|                                     .details(details.as_str()) |                             .state(state.as_str()) | ||||||
|                                     .state(state.as_str()) |                             .buttons(vec![Button::new("Profile", &user_url)]); | ||||||
|                                     .buttons(vec![Button::new("Profile", &user_url)]); |  | ||||||
|  |  | ||||||
|                                 let mut ipc_client = _ipc_client2.lock().unwrap(); |                         let mut ipc_client = _ipc_client2.lock().unwrap(); | ||||||
|                                 ipc_client.set_activity(activity).unwrap(); |                         ipc_client.set_activity(activity).unwrap(); | ||||||
|                             } |                     } | ||||||
|                             None => { |                     None => { | ||||||
|                                 println!( |                         println!( | ||||||
|                                     "{}: Current not playing...", |                             "{}: Current not playing...", | ||||||
|                                     Local::now().format("%Y/%m/%d %H:%M:%S"), |                             Local::now().format("%Y/%m/%d %H:%M:%S"), | ||||||
|                                 ); |                         ); | ||||||
|                             } |  | ||||||
|                         } |  | ||||||
|                     } |                     } | ||||||
|                     thread::sleep(Duration::seconds(5).to_std().unwrap()); |  | ||||||
|                 } |  | ||||||
|                 _ => { |  | ||||||
|                     break; |  | ||||||
|                 } |                 } | ||||||
|             } |             } | ||||||
|  |             thread::sleep(Duration::seconds(5).to_std().unwrap()); | ||||||
|         } |         } | ||||||
|     }); |     }); | ||||||
|  |  | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user