#api-bindings #api #api-client #bindings #listen-brainz #http-api #api-url

listenbrainz_rs_nova

ListenBrainz API的Rust绑定

2个版本

0.7.2 2024年5月30日
0.7.1 2024年3月10日

#342 in 音频

Download history 55/week @ 2024-04-23 53/week @ 2024-04-30 448/week @ 2024-05-28 128/week @ 2024-06-04 94/week @ 2024-06-11 82/week @ 2024-06-18 7/week @ 2024-06-25 65/week @ 2024-07-02 47/week @ 2024-07-09 5/week @ 2024-07-16 12/week @ 2024-07-23 8/week @ 2024-07-30 26/week @ 2024-08-06

每月51次下载
用于 listenbrainz-cli-tools

MIT 许可证

67KB
1.5K SLoC

不要使用这个

请使用 listenbrainz-rs 代替

这是一个临时分支,其中包含了一些合并的拉取请求,以便允许 listenbrainz-cli-tools 的CI运行。将其视为 https://github.com/InputUsername/listenbrainz-rs 的精选功能合并的夜间版本。

我会打破兼容性,并且不会在意你的crates。listenbrainz-rs仍在积极维护中,所以请使用它。


lib.rs:

ListenBrainz的API绑定。

这个crate旨在成为ListenBrainz HTTP API(版本1)的惯用包装器。它包含在 [raw] 模块中直接访问API的功能,以及一个更方便的 ListenBrainz 客户端,更容易使用。

通常,使用raw功能比较繁琐,因为它的类型和函数与HTTP API的JSON输入和响应数据一一对应。因此,建议使用ListenBrainz类型。

示例

将当前播放的歌曲提交到ListenBrainz.org

#
let mut client = ListenBrainz::new();

client.authenticate("LISTENBRAINZ TOKEN")
    .expect("Could not authenticate with ListenBrainz");

client.playing_now("The Beatles", "Here Comes the Sun", Some("Abbey Road"))
    .expect("Could not submit 'playing now' request");

使用自定义API URL,例如提交歌曲到Maloja

#
let mut client = ListenBrainz::new_with_url("http://maloja.example.com/apis/listenbrainz");

client.authenticate("MALOJA API KEY")
    .expect("Could not authenticate with Maloja");

client.listen("Lymbyc Systym", "Split Stones", None)
    .expect("Could not submit listen");

依赖项

~2.5–4MB
~98K SLoC