using HyperBooru.ApiModels; using System.Net.Http.Json; namespace HyperBooru.ApiClient; public class Feed { private HBSession session; internal Feed(HBSession session) => this.session = session; public async Task LoadChunkAsync( bool selectIngest = false, bool includeNsfw = false, int count = 50, SortOrder sortOrder = SortOrder.ObjectId, Guid? continuationToken = null ) => await LoadChunkAsync(new FeedRequest { SelectIngest = selectIngest, IncludeNsfw = includeNsfw, Count = count, SortOrder = sortOrder, ContinuationToken = continuationToken }); public async Task LoadChunkAsync( Guid tagId, bool selectIngest = false, bool includeNsfw = false, int count = 50, SortOrder sortOrder = SortOrder.ObjectId, Guid? continuationToken = null ) => await LoadChunkAsync(new FeedTagRequest { SelectIngest = selectIngest, IncludeNsfw = includeNsfw, Count = count, SortOrder = sortOrder, ContinuationToken = continuationToken, TagId = tagId }); public async Task LoadChunkAsync( string query, bool selectIngest = false, bool includeNsfw = false, int count = 50, SortOrder sortOrder = SortOrder.ObjectId, Guid? continuationToken = null ) => await LoadChunkAsync(new FeedSearchRequest { SelectIngest = selectIngest, IncludeNsfw = includeNsfw, Count = count, SortOrder = sortOrder, ContinuationToken = continuationToken, Query = query }); public async Task LoadChunkAsync(FeedRequest feedRequest) { var response = await session.HttpClient.PostAsJsonAsync("/api/feed", feedRequest); return (await response.Content.ReadFromJsonAsync())!; } }