diff options
Diffstat (limited to 'Feed.cs')
| -rw-r--r-- | Feed.cs | 63 |
1 files changed, 63 insertions, 0 deletions
@@ -0,0 +1,63 @@ +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<Guid[]> 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<Guid[]> 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<Guid[]> 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<Guid[]> LoadChunkAsync(FeedRequest feedRequest) { + var response = await session.HttpClient.PostAsJsonAsync("/api/feed", feedRequest); + + return (await response.Content.ReadFromJsonAsync<Guid[]>())!; + } +} |
