public static Task DeleteIllustBookmarkAsync(this PixivClient client, IllustID id)
 {
     client.RequireAuth();
     return(client.PostAsync("/v1/illust/bookmark/delete", new HttpForm {
         { "illust_id", id }
     }));
 }
 // TODO support tag
 public static Task AddIllustBookmarkAsync(this PixivClient client, IllustID id, Restrict restrict = Restrict.Public)
 {
     client.RequireAuth();
     return(client.PostAsync("/v2/illust/bookmark/add", new HttpForm {
         { "illust_id", id }, { "restrict", restrict.GetSymbol() }
     }));
 }
 public static Task <IllustsPage> GetIllustRelatedAsync(this PixivClient client, IllustID id)
 {
     return(client.GetAsync <IllustsPage>("/v2/illust/related", new HttpForm {
         { "user_id", id }
     }));
 }
 public static Task <CommentPage> GetIllustCommentsAsync(this PixivClient client, IllustID id, int offset = 0, bool includeTotalComments = true)
 {
     return(client.GetAsync <CommentPage>("/v1/illust/comments", new HttpForm
     {
         { "illust_id", id },
         { "offset", offset.ToString() },
         { "include_total_comments", includeTotalComments.ToString().ToLower() }
     }));
 }
 public static Task <BookmarkDetail> GetIllustBookmarkDetailAsync(this PixivClient client, IllustID id)
 {
     return(client.GetAsync <BookmarkDetail>("/v2/illust/bookmark/detail", new HttpForm {
         { "illust_id", id }
     }));
 }
 public static Task <IllustData> GetIllustDetailAsync(this PixivClient client, IllustID id)
 {
     return(client.GetAsync <IllustData>("/v1/illust/detail", new HttpForm {
         { "illust_id", id }
     }));
 }
 public static Task <UgoiraData> GetUgoiraMetadataAsync(this PixivClient client, IllustID id)
 {
     return(client.GetAsync <UgoiraData>("/v1/ugoira/metadata", new HttpForm {
         { "illust_id", id }
     }));
 }