Una biblioteca de Rust para interactuar con imgchest.com. Implementa toda la API y al mismo tiempo proporciona algunas funciones basadas en scraping sin necesidad de iniciar sesión.
# [ 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 ( ( ) )
}
En el pasado, esta biblioteca intentó evitar por completo el uso oficial de API. Esto se debió a las siguientes 2 razones:
Si bien los límites de velocidad parecen haberse actualizado para que sean tolerables (60 solicitudes por minuto), para recuperar publicaciones aún es necesario iniciar sesión. Como resultado, se agregó compatibilidad con API a esta biblioteca y, al mismo tiempo, se intenta proporcionar alternativas basadas en scraping siempre que sea posible. Se sugiere utilizar la funcionalidad basada en scraping cuando sea posible para evitar la necesidad de utilizar un token API y evitar el límite de velocidad.
Los objetos API extraídos de esta biblioteca están diseñados para coincidir lo más posible con las API oficiales, aunque faltan algunos campos.
La API está limitada de varias maneras. Esta biblioteca puede obtener más funciones basadas en scraping para solucionar estas limitaciones. Estas limitaciones están ordenadas por gravedad.