#pixiv-api #pixiv

pixiv

非官方的Pixiv API的Rust库

6个版本

使用旧的Rust 2015

0.2.0 2018年10月1日
0.1.4 2018年3月30日

696图像

每月下载 27

MIT 许可证

42KB
840 代码行

pixiv

crates.io docs.rs

非官方的Pixiv API的Rust库。

查看文档以获取示例和用法。

贡献

任何帮助都受欢迎!这个crate的作者对Rust非常陌生(@fairingrey),因此请随时提出任何有用的建议或在项目中提出问题。


lib.rs:

pixiv

pixiv crate为Pixiv API提供了一个非官方库。

此crate使用reqwestserde_json crates。

身份验证

要身份验证,您需要创建一个新的Pixiv struct,并传入一个reqwest::Client,然后使用用户名和密码登录。

    let client = Client::new();

    let mut pixiv: Pixiv = Pixiv::new(&client);
    pixiv.login("username", "password");

如果您的访问令牌已过期,您应使用refresh_auth()login()方法。

或者,如果您已经将访问令牌和/或请求令牌缓存起来以供重用

    let client = Client::new();

    let mut pixiv: Pixiv = Pixiv::new(&client);

    let my_access_token = String::from("supersecret");
    *pixiv.access_token_mut() = my_access_token;

提供了一些访问器方法,如access_token()refresh_token(),用于这些目的。

发送请求

此crate依赖于构建器模式来使用和修改请求。一个典型的请求可能看起来像这样

    let work: Value = pixiv
        .work(66024340)
        .send()
        .expect("Request failed.")
        .json()
        .expect("Failed to parse as json.");

更复杂的响应可能看起来像这样

    let following_works: Value = pixiv
       .following_works()
       .image_sizes(&["large"])
       .include_sanity_level(false)
       .send()
       .expect("Request failed.")
       .json()
       .expect("Failed to parse as json.");

由于workserde_json::Value类型,因此您需要自己决定如何解析此响应以供您的程序使用。

您可能想参考这里了解Pixiv响应可能的样子。

未来支持(可能)

  • 更多示例!
  • 更灵活地处理和解析响应(而不仅仅是原始响应)
  • 更多API支持(尽管据我所知,pixiv没有在任何地方文档化他们的公共API...)

依赖关系

~21MB
~449K SLoC