InputUsername / listenbrainz-rs

ListenBrainz API bindings for Rust
https://crates.io/crates/listenbrainz
MIT License
11 stars 6 forks source link

Implement additional API endpoints #4

Open InputUsername opened 3 years ago

InputUsername commented 3 years ago

A large number of new endpoints have been added to the ListenBrainz API since the release of listenbrainz-rs v0.3.0:

Core API Endpoints

Playlists API Endpoints

Feedback API Endpoints

Recording Recommendation API Endpoints

Recording Recommendation Feedback API Endpoints

User Timeline API Endpoints

Social API Endpoints

Pinned Recording API Endpoints

Stats API Endpoints

shymega commented 3 years ago

Alright, good list - time to get crackin! Targeting to for v0.4.0, right?

InputUsername commented 3 years ago

Sure, although #2 and #3 are of higher priority (in my opinion).

shymega commented 3 years ago

2 closed now, #3 next priority. I'd say that #3 is a blocker for this issue.

InputUsername commented 3 years ago

2 closed now, #4 next priority. I'd say that #4 is a blocker for this issue.

Do you mean #3? Working on that right now, it might take a while because attohttpc doesn't match ureq's API/behavior completely

shymega commented 3 years ago

Oh, derp yeah - #3. GitHub selected the wrong one with the menu...edited.

InputUsername commented 2 years ago

I've started implementing a few endpoints on the feature/new-endpoints branch - the "core" endpoints are done.

ListenBrainz and MusicBrainz use the JSPF format to represent playlists (specifically, their own variant which has some extensions), which I've implemented in the raw::jspf module, so we can use those types for the other playlist endpoints as well.

InputUsername commented 2 years ago

Pushing this back to a future version so v0.4.0 can be included in the next release of rescrobbled.

Kernald commented 7 months ago

I believe GET /1/playlist/(playlist_mbid) is missing from that list - simple download of a playlist through its mbid.

Kernald commented 6 months ago

19 is adding the endpoint I mentioned above - with that said, I'm curious about the status of this issue, as #19 builds upon a fairly old branch.

RustyNova016 commented 6 months ago

There is also GET /1/stats/release-group/(release_group_mbid)/listeners missing.

I have already started implementing it in my own branch, but I didn't see I needed to be on feature/new-endpoints so should I move it there or just do the pull request like that?

I'm also waiting on confirmation for the JSON format, so it's not 100% ready yet

InputUsername commented 6 months ago

@RustyNova016 feature/new-endpoints is really old at the moment but we're going to rebase it to main, so you should be able to create a PR from your own branch against that branch whenever you are ready :smile:

RustyNova016 commented 6 months ago

I'm going to make a it a draft so it can be reviewed, apart from the schema that may need some Option<>s. Sadly, other libraries didn't bother implementing it either, so I can't copy from there

shymega commented 6 months ago

No objection for a draft from me.