public async Task <bool> TrySendDnsStatistics(SummarizedDnsServerStatistics summarizedDnsServerStatistics, string printableTimeSpan) { try { var requestUrl = $"{_telegramSettings.TelegramUrl}/bot{_telegramSettings.Token}/sendMessage"; var queriesRequested = summarizedDnsServerStatistics.QueriesRequested.ToString("n0", new CultureInfo("en-US")); var queriesBlocked = summarizedDnsServerStatistics.QueriesBlocked.ToString("n0", new CultureInfo("en-US")); var message = $"During the last {printableTimeSpan}, <a href=\"https://ahadns.com\">AhaDNS.com</a> has served <b>{queriesRequested}</b> DNS requests and protected our users from <b>{queriesBlocked}</b> malicious requests!"; var requestBody = new StringContent(JsonConvert.SerializeObject(new TelegramRequest(_telegramSettings.TelegramChannel, "HTML", message)), Encoding.UTF8, "application/json"); var telegramResponse = await _httpClient.PostAsync(requestUrl, requestBody); return(telegramResponse.IsSuccessStatusCode); } catch (Exception e) { _logger.Error(e, "Got an exception while sending DNS statistics alert to Telegram"); return(false); } }
public async Task <bool> TrySendDnsStatistics(SummarizedDnsServerStatistics summarizedDnsServerStatistics, string printableTimeSpan) { try { var queriesRequested = summarizedDnsServerStatistics.QueriesRequested.ToString("n0", new CultureInfo("en-US")); var queriesBlocked = summarizedDnsServerStatistics.QueriesBlocked.ToString("n0", new CultureInfo("en-US")); var message = $"During the last {printableTimeSpan}, AhaDNS.com has served {queriesRequested} DNS requests and protected our users from {queriesBlocked} malicious requests!"; // For now, just hard-code a few hashtags. Make these configurable later message += "\n\n#AhaDNS #EncryptedDNS #AdBlockDNS #DNS #DNSoverHTTPS #DNSoverTLS #DoH #DoT #adblock #Privacy #Ads #FOSS"; _ = await _twitterClient.Tweets.PublishTweetAsync(message); return(true); } catch (Exception e) { _logger.Error(e, "Got an exception while sending DNS statistics alert to Twitter"); return(false); } }