public bool BlockUser(string message) { SpeechWordHandler speechWordHandler = new SpeechWordHandler(); string[] messages; //First try splitting the message to check whether there is an username available try { messages = message.Split(' '); } catch { return(false); } if (messages.Length > 2) { return(false); } string user = messages[1]; if (speechWordHandler.CheckBlocked(user)) { return(false); } File.AppendAllLines(speechWordHandler.GetBlockListLocation(), new string[] { "\n", user }); return(true); }
public bool UnblockUser(string message) { SpeechWordHandler speechWordHandler = new SpeechWordHandler(); string[] messages; //First try splitting the message to check whether there is an username available try { messages = message.Split(' '); } catch { return(false); } if (messages.Length > 2) { return(false); } string user = messages[1]; //If user is not in blocked list, return. if (!speechWordHandler.CheckBlocked(user)) { return(false); } var lines = File.ReadAllLines(speechWordHandler.GetBlockListLocation()); //Remove user for (int i = 0; i < lines.Length; i++) { if (lines[i] == user) { lines[i] = lines[i].Replace(user, ""); break; } } //firstly, remove WhiteSpace and then replace old file with new file var newLines = lines.Where(arg => !string.IsNullOrWhiteSpace(arg)); File.WriteAllLines(speechWordHandler.GetBlockListLocation(), newLines); return(true); }
private void OnMessageReceived(object sender, OnMessageReceivedArgs e) { CommandHandler commandHandler = new CommandHandler(); Console.WriteLine($"{e.ChatMessage.Username}:{e.ChatMessage.Message}"); string newUsername = speechWordHandler.ContainsUsername(e.ChatMessage.Username); if (e.ChatMessage.Username == e.ChatMessage.BotUsername) //Ignore TTS-Bot. { return; } if (e.ChatMessage.IsModerator || e.ChatMessage.IsBroadcaster) { if (e.ChatMessage.Message.StartsWith("!block")) { bool blocked = commandHandler.BlockUser(e.ChatMessage.Message); if (blocked) { client.SendMessage(config.GetChannel(), "The user has been successfully blocked."); } else { client.SendMessage(config.GetChannel(), "The user is already blocked or the input was wrong."); } } else if (e.ChatMessage.Message.StartsWith("!unblock")) { bool unblocked = commandHandler.UnblockUser(e.ChatMessage.Message); if (unblocked) { client.SendMessage(config.GetChannel(), "The user has been successfully unblocked."); } else { client.SendMessage(config.GetChannel(), "The user isn't blocked or the input was wrong."); } } } if (speechWordHandler.CheckBlocked(e.ChatMessage.Username)) //Ignore blocked users { return; } if (e.ChatMessage.Message.StartsWith("!")) //Ignore Commands starting with ! { return; } //Check if URL is in Message Regex UrlMatch = new Regex(@"(http:\/\/www\.|https:\/\/www\.|http:\/\/|https:\/\/)?[a-z0-9]+([\-\.]{1}[a-z0-9]+)*\.[a-z]{2,5}(:[0-9]{1,5})?(\/.*)?"); Match url = UrlMatch.Match(e.ChatMessage.Message); //Create a List for multiple bad Words in sentence //Add first replaced sentence //Get first replaced sentence and replace it and continue this loop for each bad word. List <string> badWords = new List <string>(); badWords = speechWordHandler.ContainsBadWord(e.ChatMessage.Message); string newMessageEdited = e.ChatMessage.Message; if (url.Success) //Check if contains URL { newMessageEdited = e.ChatMessage.Message.Replace(url.Value, "url"); } if (badWords.Count != 0) //Check if containing bad words { for (int i = 0; i < badWords.Count; i++) { newMessageEdited = newMessageEdited.Replace(badWords.ElementAt(i), antiswear); } } if (maxWordLength <= newMessageEdited.Length && maxWordLength != 0) //Check if Sentence is too long { newMessageEdited = newMessageEdited.Substring(0, Math.Min(newMessageEdited.Length, maxWordLength)) + "....... " + longMessage; speechHelper.Speak($"{newUsername} {messageConnector} {newMessageEdited}"); return; } speechHelper.Speak($"{newUsername} {messageConnector} {newMessageEdited}"); }