public static Func <Session, string, string, bool> GetReplaceAction(ReplaceAction action) { var methodName = "util" + action; Func <Session, string, string, bool> result = (s, key, value) => { switch (action) { case ReplaceAction.ReplaceInRequest: return(s.utilReplaceInRequest(key, value)); case ReplaceAction.ReplaceTagsInRequest: return(s.utilReplaceInRequest(BuildKey(key), value)); case ReplaceAction.ReplaceInResponse: return(s.utilReplaceInResponse(key, value)); case ReplaceAction.ReplaceOnceInResponse: return(s.utilReplaceOnceInResponse(key, value, false)); case ReplaceAction.ReplaceRegexInResponse: return(s.utilReplaceRegexInResponse(key, value)); default: throw new ArgumentOutOfRangeException(nameof(action), action, null); } }; return(result); }
void Replace(ReplaceAction replace, string channel, string invoker) { foreach (var item in history.GetMessages(channel)) { string replacedMsg; switch (replace.TryReplace(item.Message, out replacedMsg)) { case ReplaceResult.NoMatch: continue; case ReplaceResult.RegexTimeout: irc.SendNotice(invoker, "Your regular expression timed out."); return; case ReplaceResult.Success: if (FoulPlay(replacedMsg)) { irc.SendNotice(invoker, "Replaced message was too long, not outputting to prevent spam."); } else { irc.SendMessage(channel, "<{0}> {1}", item.Nick, replacedMsg); } return; } // switch } // foreach }
public void HandleMessage(IChannelMsg e) { var replace = new ReplaceAction(e.Message); if (replace.ParseSuccess) { Replace(replace, e.Channel, e.Nick); } else { history.AddMessage(e.Channel, e.Nick, e.Message); } }
public static ReplaceAction ToggleDollar(string line, int cursor) { var fail = new ReplaceAction { do_nothing = true }; var max_index = Math.Min(line.Length - 1, cursor); var index_of_left_quote = line.LastIndexOf('"', max_index); if (index_of_left_quote < 0) { return(fail); } var index_of_dollar = index_of_left_quote > 0 && line[index_of_left_quote - 1] == '@' ? index_of_left_quote - 1 : index_of_left_quote; if (index_of_dollar == 0 || line[index_of_dollar - 1] != '$') { return(new ReplaceAction { replace_start = index_of_dollar, replace_length = 0, substitution = "$", cursor_offset = +1 }); } else { return(new ReplaceAction { replace_start = index_of_dollar - 1, replace_length = 1, substitution = "", cursor_offset = -1 }); } }
public ReplaceDecoratorBase(ReplaceAction replaceAction) { _replaceAction = replaceAction; }
public ReplaceDecoratorBase(Dictionary <string, string> dict, ReplaceAction replaceAction) { Dict = dict; _replaceAction = replaceAction; }
private void ExportButton_Click(object sender, RoutedEventArgs e) { var screen = new OpenFileDialog(); if (screen.ShowDialog() == true) { var url = screen.FileName; using (StreamReader sr = new StreamReader(url)) { while (sr.Peek() >= 0) { string[] tokens_sub = sr.ReadLine().Split(new string[] { " - " }, StringSplitOptions.None); string[] tokens_space = tokens_sub[0].Split(new string[] { " " }, StringSplitOptions.None); string[] tokens_Args = tokens_sub[1].Split(new string[] { " " }, StringSplitOptions.None); string first_word = tokens_space[0]; if (first_word == "Replace") { var _replaceArgs = new ReplaceArgs(); _replaceArgs.Needle = tokens_Args[1]; _replaceArgs.Hammer = tokens_Args[3]; var _action = new ReplaceAction(); var _replacAction = _action as StringAction; var _cloneReplaceAction = _replacAction.Clone(); _cloneReplaceAction.Args = _replaceArgs; ActionListBox.Items.Add(_cloneReplaceAction); } else if (first_word == "New") { var _newcaseArgs = new NewCaseArgs(); _newcaseArgs.Needle = tokens_Args[3]; var _action = new NewCaseAction(); var _newcaseAction = _action as StringAction; var _cloneNewCaseAction = _newcaseAction.Clone(); _cloneNewCaseAction.Args = _newcaseArgs; ActionListBox.Items.Add(_cloneNewCaseAction); } else if (first_word == "Fullname") { var _fullnameArgs = new FullnameNormalizeArgs(); _fullnameArgs.Needle = tokens_Args[3]; var _action = new FullnameNormalizeAction(); var _fullnameAction = _action as StringAction; var _cloneFullNameAction = _fullnameAction.Clone(); _cloneFullNameAction.Args = _fullnameArgs; ActionListBox.Items.Add(_cloneFullNameAction); } else if (first_word == "Move") { var _moveArgs = new MoveArgs(); _moveArgs.Needle = tokens_Args[2]; var _action = new MoveAction(); var _moveAction = _action as StringAction; var _cloneMoveAction = _moveAction.Clone(); _cloneMoveAction.Args = _moveArgs; ActionListBox.Items.Add(_cloneMoveAction); } else if (first_word == "Unique") { var _uniqueArgs = new UniqueNameArgs(); _uniqueArgs.Needle = tokens_Args[1]; _uniqueArgs.Hammer = tokens_Args[3]; var _action = new UniqueName(); var _uniqueAction = _action as StringAction; var _cloneUniqueAction = _uniqueAction.Clone(); _cloneUniqueAction.Args = _uniqueArgs; ActionListBox.Items.Add(_cloneUniqueAction); } else { var _removeArgs = new RemoveActionArgs(); _removeArgs.Needle = tokens_Args[2]; var _action = new RemoveAction(); var _removeAction = _action as StringAction; var _cloneRemoveAction = _removeAction.Clone(); _cloneRemoveAction.Args = _removeArgs; ActionListBox.Items.Add(_cloneRemoveAction); } } } System.Windows.MessageBox.Show("Exported!"); } }