diff options
| author | Jake Mannens <jake@asger.xyz> | 2024-09-20 16:13:30 +1000 |
|---|---|---|
| committer | Jake Mannens <jake@asger.xyz> | 2024-10-28 14:53:04 +1100 |
| commit | 7c6009abd22d8461039be15d0fd069a460340585 (patch) | |
| tree | 580890eacc1ae2d86ee3f95927e3aed47bb12c96 /Sites/PagerMon.cs | |
v0.1v0.1
Diffstat (limited to 'Sites/PagerMon.cs')
| -rw-r--r-- | Sites/PagerMon.cs | 36 |
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 |
