3个不稳定版本

0.2.0 2024年2月12日
0.1.1 2023年11月20日
0.1.0 2023年9月10日

#169 in HTTP客户端

每月21次下载

MIT/Apache

73KB
1K SLoC

Crates.io

tumblr_api

对Tumblr API的Rust实现。

这仍然非常处于测试阶段!请参阅主要计划/未实现功能

示例

使用客户端创建一个简单的帖子

use tumblr_api::{npf, client::Client, auth::Credentials};
let client = Client::new(Credentials::new(
    "your consumer key",
    "your consumer secret",
));
client
    .create_post(
        "blog-name",
        vec![npf::ContentBlockText::builder("hello world").build()],
    )
    .send()
    .await?;

创建一个更复杂的帖子

use tumblr_api::client::CreatePostState;
// load the image that we'll be attaching to the post.
let my_image = std::fs::read("path/to/my_image.jpg")?;
// (currently, you need to manually create the reqwest::Body to pass in. that'll probably
//  change in a future version.)
let my_image = reqwest::Body::from(my_image);
client
    .create_post(
        "blog-name",
        vec![
            npf::ContentBlockText::builder("hello world").build(),
            npf::ContentBlockImage::builder(vec![npf::MediaObject::builder(
                npf::MediaObjectContent::Identifier("my-image-identifier".into()),
            )
            .build()])
            .build(),
            npf::ContentBlockText::builder("some bold text in a heading")
                .subtype(npf::TextSubtype::Heading1)
                .formatting(vec![npf::InlineFormat {
                    start: 5,
                    end: 9,
                    format: npf::InlineFormatType::Bold,
                }])
                .build(),
        ],
    )
    .add_attachment(my_image, "image/jpeg", "my-image-identifier")
    // add tags to your post
    // (this is currently a string since that's what the underlying api takes.
    //  Being able to pass a Vec<String> instead is a planned feature but hasn't been
    //  implemented quite yet.)
    .tags("tag_1,tag_2,tag_3")
    // add the post to your queue instead of immediately posting it
    .initial_state(CreatePostState::Queue)
    .send()
    .await?;

模块与功能标志

这个库被分割成多个模块 - clientapinpfauth - 每个模块都有同名功能标志来控制是否启用。它们默认都启用,但如果您只需要某些功能(例如,仅npf解析),您可以选择只启用这些功能。

主要计划/未实现功能

  • 实现剩余的API端点(目前只是帖子创建和其他几个)

许可证

根据您的要求,受以下任一许可证的约束:

任选其一。

贡献

除非您明确声明,否则您有意提交的任何贡献,根据Apache-2.0许可证的定义,应按上述方式双重许可,不附加任何额外条款或条件。

依赖

~1–14MB
~176K SLoC