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 사용을 완전히 피하려고 시도했습니다. 그 이유는 다음과 같은 2가지 때문이었습니다.
속도 제한은 허용 가능한 수준(분당 60개 요청)으로 업데이트된 것으로 보이지만 게시물을 가져오려면 여전히 로그인이 필요합니다. 결과적으로 API 지원이 이 라이브러리에 추가되었으며 가능한 경우 스크래핑 기반 대안을 제공하려고 시도했습니다. API 토큰을 사용할 필요와 속도 제한을 피하기 위해 가능하면 스크래핑 기반 기능을 사용하는 것이 좋습니다.
이 라이브러리의 스크랩된 API 객체는 공식 API와 최대한 일치하도록 맞춤화되었지만 일부 필드는 누락되었습니다.
API는 몇 가지 면에서 제한됩니다. 이 라이브러리는 이러한 제한 사항을 해결하기 위해 더 많은 스크래핑 기반 기능을 얻을 수 있습니다. 이러한 제한 사항은 심각도에 따라 정렬됩니다.