summaryrefslogtreecommitdiff
path: root/Feed.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Feed.cs')
-rw-r--r--Feed.cs63
1 files changed, 63 insertions, 0 deletions
diff --git a/Feed.cs b/Feed.cs
new file mode 100644
index 0000000..e6492ff
--- /dev/null
+++ b/Feed.cs
@@ -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[]>())!;
+ }
+}