aboutsummaryrefslogtreecommitdiff
path: root/Sites/PagerMon.cs
diff options
context:
space:
mode:
Diffstat (limited to 'Sites/PagerMon.cs')
-rw-r--r--Sites/PagerMon.cs36
1 files changed, 36 insertions, 0 deletions
diff --git a/Sites/PagerMon.cs b/Sites/PagerMon.cs
new file mode 100644
index 0000000..fb25323
--- /dev/null
+++ b/Sites/PagerMon.cs
@@ -0,0 +1,36 @@
+namespace PagerParser.Sites;
+
+// Interface class for fetching pager messages from PagerMon
+// sites such as Jobyyy over HTTP.
+public class PagerMon {
+ public record PagerMonMessage {
+ public long Timestamp { get; set; }
+ public string Message { get; set; }
+ }
+
+ public record PagerMonQueryResponse {
+ public PagerMonMessage[] Messages { get; set; }
+ }
+
+ private const string QueryUrl =
+ "https://jobyyy.net/api/messageSearch?alias=6&limit=100";
+
+ private HttpClient httpClient = new();
+
+ public PagerMessage[] Fetch() {
+ List<PagerMessage> messages = new();
+
+ var result = httpClient
+ .GetFromJsonAsync<PagerMonQueryResponse>(QueryUrl)
+ .GetAwaiter()
+ .GetResult();
+
+ if(result is null)
+ return Array.Empty<PagerMessage>();
+
+ return result.Messages.Select(m => new PagerMessage() {
+ Timestamp = DateTimeOffset.FromUnixTimeSeconds(m.Timestamp).DateTime.ToUniversalTime(),
+ Message = m.Message
+ }).ToArray();
+ }
+} \ No newline at end of file