imgchest rs
1.0.0
一个与 imgchest.com 交互的 Rust 库。它实现了整个 API,同时还提供了一些基于抓取的功能,无需登录。
# [ tokio :: main ]
async fn main ( ) -> anyhow :: Result < ( ) > {
let client = imgchest :: Client :: new ( ) ;
client . set_token ( "TOKEN" ) ;
let mut builder = imgchest :: CreatePostBuilder :: new ( ) ;
builder
. title ( "test title" )
. nsfw ( false )
. image ( imgchest :: UploadPostFile :: from_path ( "img.png" ) . await ? ) ;
let post = client . create_post ( builder ) . await ? ;
dbg ! ( &post ) ;
Ok ( ( ) )
}
# [ tokio :: main ]
async fn main ( ) -> anyhow :: Result < ( ) > {
let client = imgchest :: Client :: new ( ) ;
let post = client
. get_post ( "3qe4gdvj4j2" )
. await ? ;
dbg ! ( &post ) ;
Ok ( ( ) )
}
# [ tokio :: main ]
async fn main ( ) -> anyhow :: Result < ( ) > {
let client = imgchest :: Client :: new ( ) ;
let post = client
. get_scraped_post ( "3qe4gdvj4j2" )
. await ? ;
dbg ! ( &post ) ;
Ok ( ( ) )
}
过去,这个库试图完全避免使用官方 API。这是由于以下两个原因:
虽然速率限制似乎已更新到可以容忍的程度(每分钟 60 个请求),但获取帖子仍然需要登录。因此,该库中添加了 API 支持,同时还尝试在可能的情况下提供基于抓取的替代方案。建议尽可能使用基于抓取的功能,以避免需要使用 API 令牌并避免速率限制。
该库中的抓取 API 对象经过定制,尽可能与官方 API 相匹配,但缺少一些字段。
API 在几个方面受到限制。该库可能会获得更多基于抓取的功能来解决这些限制。这些限制按严重程度排序。