Crate pixivr

Crate pixivr 

Source
Expand description

Pixiv API Rust Client

This is a Rust client library for interacting with Pixiv API, providing authentication, network requests and other features.

§Features

  • OAuth2 password credential authentication
  • Automatic token refresh
  • Support for multiple runtimes (tokio/async-std/smol)
  • Comprehensive error handling
  • Detailed logging
  • SNI bypass support (for bypassing network restrictions)

§Quick Start

use pixiv_rs::auth::AuthClient;

#[tokio::main]
async fn main() -> Result<(), Box<dyn std::error::Error>> {
    // Initialize logging
    tracing_subscriber::fmt::init();

    // Create authentication client
    let mut auth_client = AuthClient::new()?;

    // Login with username and password
    let auth_response = auth_client.login("your_username", "your_password").await?;

    println!("Login successful! User ID: {}", auth_response.user.id);

    Ok(())
}

Re-exports§

pub use auth::AuthClient;
pub use auth::AuthResponse;
pub use auth::User as AuthUser;
pub use client::app::AppClient;
pub use client::public::PublicClient;
pub use client::bypass_sni::BypassSniAppClient;
pub use error::ApiErrorCode;
pub use error::ApiErrorDetails;
pub use error::PixivError;
pub use error::Result;
pub use models::app::Comment;
pub use models::app::CommentAccessControl;
pub use models::app::CommentsResponse;
pub use models::app::ContentType;
pub use models::app::Duration;
pub use models::app::Filter;
pub use models::app::FollowRestrict;
pub use models::app::Illust;
pub use models::app::IllustBookmarkResponse;
pub use models::app::IllustDetail;
pub use models::app::IllustFollowResponse;
pub use models::app::ImageUrls;
pub use models::app::MetaPage;
pub use models::app::MetaSinglePage;
pub use models::app::ProfileImageUrls;
pub use models::app::RankingLabel;
pub use models::app::RankingMode;
pub use models::app::RankingResponse;
pub use models::app::RecommendedResponse;
pub use models::app::RestrictionAttributes;
pub use models::app::SearchIllustResponse;
pub use models::app::SearchTarget;
pub use models::app::Series;
pub use models::app::Sort;
pub use models::app::Tag;
pub use models::app::TrendingTag;
pub use models::app::TrendingTagsResponse;
pub use models::app::UgoiraFrame;
pub use models::app::UgoiraMetadata;
pub use models::app::UgoiraMetadataResponse;
pub use models::app::User as AppUser;
pub use models::app::UserFollowerResponse;
pub use models::app::UserFollowingResponse;
pub use models::app::UserMypixivResponse;
pub use models::app::UserPreview;
pub use models::app::ZipUrls;
pub use models::public::PublicIllust;
pub use models::public::PublicUser;
pub use models::public::PublicSearchResponse;
pub use models::public::PublicUserDetail;
pub use models::public::PublicUserIllusts;
pub use models::public::PublicUserBookmarks;
pub use models::public::PublicSearchResponse as PublicSearchIllustResponse;
pub use models::public::SearchTarget as PublicSearchTarget;
pub use models::public::Sort as PublicSort;
pub use models::public::Restrict as PublicRestrict;
pub use models::public::ContentType as PublicContentType;
pub use models::public::Duration as PublicDuration;
pub use models::public::Filter as PublicFilter;
pub use network::HttpClient;
pub use utils::download;
pub use utils::extract_extension;
pub use utils::format_file_size;
pub use utils::parse_qs;
pub use utils::safe_filename;
pub use utils::set_accept_language;

Modules§

auth
client
error
models
network
utils
Utility module

Constants§

NAME
Library name
VERSION
Library version information

Functions§

init_logging
Initialize logger