Une bibliothèque Rust pour interagir avec imgchest.com. Il implémente l'intégralité de l'API tout en fournissant également certaines fonctionnalités basées sur le scraping sans connexion.
# [ 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 ( ( ) )
}
Dans le passé, cette bibliothèque tentait d'éviter complètement l'utilisation de l'API officielle. Cela était dû aux 2 raisons suivantes :
Bien que les limites de débit semblent avoir été mises à jour pour être tolérables (60 requêtes par minute), la récupération des publications nécessite toujours une connexion. En conséquence, la prise en charge des API a été ajoutée à cette bibliothèque tout en essayant également de fournir des alternatives basées sur le scraping lorsque cela est possible. Il est suggéré d'utiliser la fonctionnalité basée sur le scraping lorsque cela est possible pour éviter d'avoir à utiliser un jeton API et pour éviter la limite de débit.
Les objets API récupérés dans cette bibliothèque sont adaptés pour correspondre autant que possible aux API officielles, bien que certains champs soient manquants.
L'API est limitée de plusieurs manières. Cette bibliothèque peut bénéficier de davantage de fonctionnalités basées sur le scraping pour contourner ces limitations. Ces limitations sont classées par gravité.