Uma biblioteca Rust para interagir com imgchest.com. Ele implementa toda a API ao mesmo tempo que fornece algumas funcionalidades baseadas em scraping sem um 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 ( ( ) )
}
No passado, esta biblioteca tentava evitar completamente o uso oficial da API. Isto ocorreu devido aos seguintes 2 motivos:
Embora os limites de taxa pareçam ter sido atualizados para serem toleráveis (60 solicitações por minuto), a busca de postagens ainda requer um login. Como resultado, o suporte de API foi adicionado a esta biblioteca ao mesmo tempo que tenta fornecer alternativas baseadas em scraping sempre que possível. Sugere-se usar a funcionalidade baseada em scraping quando possível para evitar a necessidade de usar um token de API e evitar o limite de taxa.
Os objetos de API copiados nesta biblioteca são adaptados para corresponder ao máximo possível às APIs oficiais, embora alguns campos estejam faltando.
A API é limitada em alguns aspectos. Esta biblioteca pode ganhar mais funcionalidades baseadas em scraping para contornar essas limitações. Essas limitações são ordenadas por gravidade.