#ifndef E621_HPP #define E621_HPP // Includes #include // Defines #ifndef E621_HOST #define E621_HOST "https://e621.net" #endif #ifndef E621_URL_BUF_SIZE #define E621_URL_BUF_SIZE 2048 #endif // Structs typedef struct { unsigned int width; unsigned int height; char *ext; unsigned int size; char *md5; char *url; } e6_file_t; typedef struct { unsigned int width; unsigned int height; char *url; } e6_preview_t; typedef struct { bool has; unsigned int width; unsigned int height; char *url; } e6_sample_t; typedef struct { unsigned int up; unsigned int down; int total; } e6_score_t; typedef struct { char **general; int general_count; char **artist; int artist_count; char **contributor; int contributor_count; char **copyright; int copyright_count; char **character; int character_count; char **species; int species_count; char **invalid; int invalid_count; char **meta; int meta_count; char **lore; int lore_count; } e6_tags_t; typedef struct flags_t { bool pending; bool flagged; bool note_locked; bool status_locked; bool rating_locked; bool deleted; } e6_flags_t; typedef struct { unsigned int parent_id; bool has_children; bool has_active_children; int *children; } e6_relationships_t; typedef struct { unsigned int id; char *created_at; char *updated_at; e6_file_t file; e6_preview_t preview; e6_sample_t sample; e6_score_t score; e6_tags_t tags; char **locked_tags; int locked_tags_count; unsigned int change_seq; e6_flags_t flags; char *rating; unsigned int fav_count; int *pools; e6_relationships_t relationships; unsigned int approver_id; unsigned int uploader_id; char *description; unsigned int comment_count; bool is_favorited; } e6_post_t; typedef struct { char *username; char *api_key; char *project_name; float project_ver; } e6_auth_t; // Functions e6_post_t *E6List(e6_auth_t auth, char **tags, int tags_count, unsigned int page, unsigned int limit); #endif