Perpustakaan Rust untuk berinteraksi dengan imgchest.com. Ini mengimplementasikan seluruh API sekaligus menyediakan beberapa fungsionalitas berbasis scraping tanpa login.
# [ 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 ( ( ) )
}
Di masa lalu, perpustakaan ini berusaha menghindari penggunaan API resmi. Hal ini disebabkan oleh 2 alasan berikut:
Meskipun batas kecepatan tampaknya telah diperbarui agar dapat ditoleransi (60 permintaan per menit), pengambilan postingan masih memerlukan login. Hasilnya, dukungan API telah ditambahkan ke perpustakaan ini sambil juga mencoba memberikan alternatif berbasis scraping jika memungkinkan. Disarankan untuk menggunakan fungsionalitas berbasis scraping jika memungkinkan untuk menghindari kebutuhan menggunakan token API dan untuk menghindari batas kecepatan.
Objek API yang tergores di perpustakaan ini disesuaikan agar sebisa mungkin cocok dengan API resmi, meskipun beberapa bidang tidak ada.
API dibatasi dalam beberapa hal. Pustaka ini mungkin mendapatkan lebih banyak fungsionalitas berbasis pengikisan untuk mengatasi keterbatasan ini. Batasan ini diurutkan berdasarkan tingkat keparahannya.