summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--HyperBooru.cs26
-rw-r--r--Statistics.cs14
2 files changed, 31 insertions, 9 deletions
diff --git a/HyperBooru.cs b/HyperBooru.cs
index b07351d..99fd38a 100644
--- a/HyperBooru.cs
+++ b/HyperBooru.cs
@@ -5,11 +5,12 @@ using System.Net.Http.Json;
namespace HyperBooru.ApiClient;
public sealed class HBSession : IDisposable {
- public Media Media { get; private init; }
- public Tag Tag { get; private init; }
- public Feed Feed { get; private init; }
- public User User { get; private init; }
- public Uri BaseUri { get; private init; }
+ public Media Media { get; private init; }
+ public Tag Tag { get; private init; }
+ public Feed Feed { get; private init; }
+ public User User { get; private init; }
+ public Statistics Statistics { get; private init; }
+ public Uri BaseUri { get; private init; }
internal HttpClient HttpClient { get; private init; }
@@ -35,10 +36,11 @@ public sealed class HBSession : IDisposable {
BaseAddress = BaseUri
};
- Media = new(this);
- Tag = new(this);
- Feed = new(this);
- User = new(this);
+ Media = new(this);
+ Tag = new(this);
+ Feed = new(this);
+ User = new(this);
+ Statistics = new(this);
}
public async Task LoginAsync(string username, string password) {
@@ -55,6 +57,12 @@ public sealed class HBSession : IDisposable {
var content = await resp.Content.ReadAsStringAsync();
throw new Exception($"Unknown error while logging in: {content}");
}
+
+ Media = new(this);
+ Tag = new(this);
+ Feed = new(this);
+ User = new(this);
+ Statistics = new(this);
}
public async Task LogoutAsync() =>
diff --git a/Statistics.cs b/Statistics.cs
new file mode 100644
index 0000000..74871f2
--- /dev/null
+++ b/Statistics.cs
@@ -0,0 +1,14 @@
+using HyperBooru.ApiModels;
+using System.Net.Http.Json;
+
+namespace HyperBooru.ApiClient;
+
+public class Statistics {
+ private HBSession session;
+
+ internal Statistics(HBSession session) =>
+ this.session = session;
+
+ public async Task<IngestStatistics> GetIngestStatisticsAsync() =>
+ (await session.HttpClient.GetFromJsonAsync<IngestStatistics>("/api/stats/ingest"))!;
+}