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(); } }