From 7c6009abd22d8461039be15d0fd069a460340585 Mon Sep 17 00:00:00 2001 From: Jake Mannens Date: Fri, 20 Sep 2024 16:13:30 +1000 Subject: v0.1 --- Sites/PagerMon.cs | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) create mode 100644 Sites/PagerMon.cs (limited to 'Sites') 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 messages = new(); + + var result = httpClient + .GetFromJsonAsync(QueryUrl) + .GetAwaiter() + .GetResult(); + + if(result is null) + return Array.Empty(); + + return result.Messages.Select(m => new PagerMessage() { + Timestamp = DateTimeOffset.FromUnixTimeSeconds(m.Timestamp).DateTime.ToUniversalTime(), + Message = m.Message + }).ToArray(); + } +} \ No newline at end of file -- cgit v1.3