private async Task CheckForCsgoUpdate() { //Only check every 5 minutes (So Valve doesnt get mad at me) if (DateTime.Now.Minute % 5 == 0) { try { var result = await _httpHandler.Get("https://blog.counter-strike.net/index.php/category/updates/"); var resultString = await result.Content.ReadAsStringAsync(); HtmlDocument pageDocument = new HtmlDocument(); pageDocument.LoadHtml(resultString); var linkElement = pageDocument.DocumentNode.SelectSingleNode("//*[@id=\"post_container\"]/div[1]/h2/a"); var newestCsUpdate = linkElement.InnerText; string dateString = Regex.Replace(newestCsUpdate, "[^(0-9/).]", ""); string lastCsUpdate = (await _dapperDB.LoadFromDBStorage("lastCsgoUpdate")).value; var link = linkElement.Attributes[0].Value; if (lastCsUpdate != dateString) { await _dapperDB.SaveToDBStorage(new DBStorage() { key = "lastCsgoUpdate", value = dateString }); var firstUpdateLogs = pageDocument.DocumentNode.SelectSingleNode("//*[@id=\"post_container\"]/div[1]"); string releaseNotes = "Release Notes:\n"; foreach (var element in firstUpdateLogs.ChildNodes) { if (element.Name == "p") { releaseNotes += element.InnerText + "\n"; } } releaseNotes = HttpUtility.HtmlDecode(releaseNotes); var subs = await _dapperDB.GetAllCsgoUpdateSubscriber(); foreach (var sub in subs) { await _telegram.SendMessage(sub.chatId, "<b>New CS:GO release for " + dateString + "</b>\n" + link + "\n\nAll past updates: https://blog.counter-strike.net/index.php/category/updates/ \n\n" + releaseNotes); } } } catch (Exception e) { _dapperDB.WriteEventLog("Init", "Error", "Could not check for CS updates - Exception: " + e.Message); _telegram.SendErrorMessage("There is something wrong with the CSUpdate checker - FIX IT!"); _telegram.SendErrorMessage("Error was: " + e.Message); } } }
public async Task AddRoleToUser(ulong userId, ulong roleId) { var url = $"https://discordtlgrmmiddleware.azurewebsites.net/api/users/{userId}/roles/{roleId}"; try { await _client.PostAsync(url, null); } catch (Exception e) { _dapperDB.WriteEventLog("Discord API Com", "Error", e.Message); _telegram.SendErrorMessage($"Error while communicating with DC API {e.Message}"); } }