Skip to content

Commit 4b1e0d8

Browse files
committed
Use the actual JSON response
1 parent e18e422 commit 4b1e0d8

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

Cargo.toml

+2
Original file line numberDiff line numberDiff line change
@@ -11,3 +11,5 @@ path = "src/main.rs"
1111
reqwest = "^0.8.5"
1212
clap = "^2.31.2"
1313
url = "^1.7.0"
14+
serde = "^1.0.64"
15+
serde_derive = "^1.0.64"

src/main.rs

+20-2
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,32 @@
11
extern crate clap;
22
extern crate reqwest;
33
extern crate url;
4+
#[macro_use]
5+
extern crate serde_derive;
46

57
use url::Url;
68

9+
#[derive(Deserialize)]
10+
struct Tracks {
11+
tracks: Vec<Track>,
12+
}
13+
14+
#[derive(Deserialize)]
15+
struct Track {
16+
path: String,
17+
artist: String,
18+
title: String,
19+
album: String,
20+
}
21+
722
fn cmd_list(endpoint: &str, album: bool) {
823
let base_url = Url::parse(endpoint).unwrap();
924
let tracks_url = base_url.join("/aura/tracks").unwrap();
10-
let res = reqwest::get(tracks_url.as_str()).unwrap().text().unwrap();
11-
println!("{} {}", album, res);
25+
let tracks: Tracks = reqwest::get(tracks_url.as_str()).unwrap()
26+
.json().unwrap();
27+
for track in tracks.tracks {
28+
println!("{} - {} - {}", track.artist, track.album, track.title);
29+
}
1230
}
1331

1432
fn main() {

0 commit comments

Comments
 (0)