summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorYuval Adam <_@yuv.al>2024-05-31 15:50:42 +0200
committerYuval Adam <_@yuv.al>2024-05-31 15:50:42 +0200
commit2354a93e358961aaf3e0aaf826620dbb30c33ede (patch)
treeb788b749ecb9ef9ef81d49012dc653d2b40c6939 /src
parentf210f63d25dff0fef56b058a027720e81ea7b163 (diff)
Extract get_playlist()
Diffstat (limited to 'src')
-rw-r--r--src/channels.rs6
-rw-r--r--src/main.rs4
2 files changed, 8 insertions, 2 deletions
diff --git a/src/channels.rs b/src/channels.rs
index 1c7ed3c..09d7fc0 100644
--- a/src/channels.rs
+++ b/src/channels.rs
@@ -9,6 +9,12 @@ pub struct Channel {
pub image: String,
}
+impl Channel {
+ pub fn get_playlist(&self) -> String {
+ format!("https://api.somafm.com/{}.pls", self.id)
+ }
+}
+
impl fmt::Display for Channel {
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> std::fmt::Result {
write!(f, "{}: {}", self.title, self.description)
diff --git a/src/main.rs b/src/main.rs
index 9b98c2d..10c7d6f 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -18,8 +18,8 @@ async fn main() {
match ans {
Ok(ch) => {
let mut sp = Spinner::new(Spinners::Dots, "Fetching channel streams...".into());
- let pls = format!("https://api.somafm.com/{}.pls", ch.id);
- let url = get_stream_url(&pls).await.unwrap();
+ let playlist = ch.get_playlist();
+ let url = get_stream_url(&playlist).await.unwrap();
sp.stop_with_newline();
let _sp = Spinner::new(Spinners::Arrow3, format!("Playing {}", ch.title));