public void FindAllHard4() { var lines = new string[] { "CHAT c0", "FIND {dev=1,!!day=fri}", "CHAT c1 {day=fri}", "CHAT c2 {dev=2,day=fri}", "CHAT c3 {}" }; var chats = ChatParser.ParseText(String.Join("\n", lines), NO_VALIDATORS); chats.ForEach(c => c.Resolve(null)); //chats.ForEach((ch) => Console.WriteLine(ch.ToTree())); var finder = chats[0].commands[0]; finder.Resolve(null); Assert.That(chats[0].commands[0].GetType(), Is.EqualTo(typeof(Find))); var mday = finder.GetMeta("day"); Assert.That(mday is Constraint, Is.True); var cons = (Constraint)mday; Assert.That(cons.type, Is.EqualTo(ConstraintType.Absolute)); Assert.That(cons.IsStrict(), Is.True); chats = new ChatRuntime(chats).DoFindAll((Find)finder, null); //chats.ForEach((obj) => Console.WriteLine(obj.text)); Assert.That(chats, Is.Not.Null); Assert.That(chats.Count, Is.EqualTo(1)); Assert.That(chats[0], Is.Not.Null); Assert.That(chats[0].text, Is.EqualTo("c1")); }
public ChatClient(List <IChatClient> _parent, string bot_token, ulong[] channel_ids) : base(_parent) { parent = _parent; BOT_TOKEN = bot_token; chatParser = new ChatParser(); Channel_IDs = channel_ids.ToList(); messageQueue = new DiscordMessageQueue(500); messageQueue.OnReadyToSend += delegate(Dictionary <ulong, Queue <string> > messages) { foreach (var queue in messages) { string output = ""; foreach (var msg in queue.Value) { output += msg + '\n'; } if (output.Length > 2000) { output = output.Substring(0, 2000); } SendMessageToDiscordChannel(queue.Key, output); } }; }
public void FindAll2() { string[] lines = { "CHAT c0", "FIND {dev=1,day=fri}", "CHAT c1 {day=fri}", "CHAT c2 {dev=2,day=fri}", "CHAT c3 {}" }; string contents = String.Join("\n", lines); List <Chat> chats = ChatParser.ParseText(contents, NO_VALIDATORS); //chats.ForEach((ch) => Console.WriteLine(ch.ToTree())); Command finder = chats[0].commands[0]; finder.Resolve(null); Assert.That(chats[0].commands[0].GetType(), Is.EqualTo(typeof(Find))); chats = new ChatRuntime(chats).DoFindAll((Find)finder, null); Assert.That(chats, Is.Not.Null); Assert.That(chats.Count, Is.EqualTo(2)); Assert.That(chats[0], Is.Not.Null); Assert.That(chats[0].text, Is.EqualTo("c1")); lines = new[] { "CHAT c0", "FIND {!dev=1,day=fri}", "CHAT c1 {day=fri}", "CHAT c2 {dev=2,day=fri}", "CHAT c3 {}" }; contents = String.Join("\n", lines); chats = ChatParser.ParseText(contents, NO_VALIDATORS); //chats.ForEach((ch) => Console.WriteLine(ch.ToTree())); finder = chats[0].commands[0]; finder.Resolve(null); var mdev = finder.GetMeta("dev"); Assert.That(mdev is Constraint, Is.True); Constraint cons = (Constraint)mdev; Assert.That(cons.type, Is.EqualTo(ConstraintType.Hard)); Assert.That(cons.IsStrict(), Is.True); Assert.That(finder.GetType(), Is.EqualTo(typeof(Find))); var rt = new ChatRuntime(chats); rt.Chats().ForEach(c => c.Resolve(null)); chats = rt.DoFindAll((Find)finder, null); //chats.ForEach((obj) => Console.WriteLine(obj.text)); Assert.That(chats, Is.Not.Null); Assert.That(chats.Count, Is.EqualTo(0)); }
public void FindChatByLabel() { string[] lines = { "CHAT c1 {day=fri}", "CHAT c2 {dev=2,day=fri}", "CHAT c3" }; string contents = String.Join("\n", lines); List <Chat> chats = ChatParser.ParseText(contents, NO_VALIDATORS); Chat result = new ChatRuntime(chats).FindChatByLabel("c1"); //chats.ForEach(c=>Console.WriteLine(c)); Assert.That(result, Is.Not.Null); Assert.That(result.text, Is.EqualTo("c1")); Chat c; chats = new List <Chat>(); chats.Add(c = Chat.Create("c1")); chats.Add(c = Chat.Create("c2")); chats.Add(c = Chat.Create("c3")); ChatRuntime cr = new ChatRuntime(chats); Chat res = new ChatRuntime(chats).FindChatByLabel("c2"); Assert.That(res.text, Is.EqualTo("c2")); }
/// <summary> /// Received some text from the server /// </summary> /// <param name="text">Text received</param> /// <param name="isJson">TRUE if the text is JSON-Encoded</param> /// <param name="links">Links embedded in text</param> public void OnTextReceived(string text, bool isJson) { List <string> links = new List <string>(); string json = null; if (isJson) { json = text; text = ChatParser.ParseText(json, links); } ConsoleIO.WriteLineFormatted(text, true); if (text.Contains("LinTx")) { if (text.Contains("1")) { handler.SendHeldItemSlot(0); } if (text.Contains("2")) { handler.SendHeldItemSlot(1); } if (text.Contains("3")) { handler.SendUseItem(); } } if (Settings.DisplayChatLinks) { foreach (string link in links) { ConsoleIO.WriteLineFormatted("§8MCC: Link: " + link, false); } } foreach (ChatBot bot in bots.ToArray()) { try { bot.GetText(text); if (bots.Contains(bot)) { bot.GetText(text, json); } } catch (Exception e) { if (!(e is ThreadAbortException)) { ConsoleIO.WriteLineFormatted("§8GetText: Got error from " + bot.ToString() + ": " + e.ToString()); } else { throw; //ThreadAbortException should not be caught } } } }
private static void TestRedText() { var input = @"C:\Users\david\OneDrive\Documents\WFChatParser\ErrorImages\Screenshot (175).png"; var cleaner = new ImageCleaner(); cleaner.SaveChatColors(input, "test.png"); cleaner.SaveSoftMask(input, "test2.png"); var cp = new ChatParser(); var lines = cp.ParseChatImage(new Bitmap(input), false, false, 50); }
public void FindAllMultiHard2() { string[] lines = { "CHAT c0", "FIND {emotion*=(hot|cool), !day =fri}", "CHAT c1", "CHAT c2 {emotion=hot,day=fri}", "CHAT c3 {emotion=dry}", "CHAT c4 {emotion=dry,day=fri}", }; string contents = String.Join("\n", lines); List <Chat> chats = ChatParser.ParseText(contents, NO_VALIDATORS); //chats.ForEach((ch) => Console.WriteLine(ch.ToTree())); Command finder = chats[0].commands[0]; finder.Resolve(null); Assert.That(chats[0].commands[0].GetType(), Is.EqualTo(typeof(Find))); chats = new ChatRuntime(chats).DoFindAll((Find)finder, null); //chats.ForEach((obj) => Console.WriteLine(obj.text)); Assert.That(chats, Is.Not.Null); Assert.That(chats.Count, Is.EqualTo(1)); Assert.That(chats[0], Is.Not.Null); Assert.That(chats[0].text, Is.EqualTo("c2")); lines = new string[] { "CHAT c0 {day=sunday}", "FIND {emotion *= (hot|cool|blah), !day*=(fri|wed)}", "CHAT c1 {emotion=wet, day = wed }", "CHAT c2 {emotion=hot,day=fri}", "CHAT c3 {emotion=dry}", "CHAT c4 {emotion=cool,day=tues}", }; contents = String.Join("\n", lines); chats = ChatParser.ParseText(contents, NO_VALIDATORS); //chats.ForEach((ch) => Console.WriteLine(ch.ToTree())); finder = chats[0].commands[0]; finder.Resolve(null); Assert.That(chats[0].commands[0].GetType(), Is.EqualTo(typeof(Find))); chats = new ChatRuntime(chats).DoFindAll((Find)finder, null); //chats.ForEach((obj) => Console.WriteLine(obj.text)); Assert.That(chats, Is.Not.Null); Assert.That(chats.Count, Is.EqualTo(1)); Assert.That(chats[0], Is.Not.Null); Assert.That(chats[0].text, Is.EqualTo("c2")); }
public void FindAllOpsHard() { string[] lines = { "CHAT c0", "FIND {!dev>1,day=fri}", "CHAT c1 {dev=2,day=fri}", "CHAT c2 {dev=1,day=fri}", "CHAT c3 {}" }; string contents = String.Join("\n", lines); List <Chat> chats = ChatParser.ParseText(contents, NO_VALIDATORS); //chats.ForEach((ch) => Console.WriteLine(ch.ToTree())); Command finder = chats[0].commands[0]; finder.Resolve(null); Assert.That(chats[0].commands[0].GetType(), Is.EqualTo(typeof(Find))); ChatRuntime cr = new ChatRuntime(chats); chats = cr.DoFindAll((Find)finder, null); //chats.ForEach((obj) => Console.WriteLine(obj.text)); Assert.That(chats, Is.Not.Null); Assert.That(chats.Count, Is.EqualTo(1)); Assert.That(chats[0], Is.Not.Null); Assert.That(chats[0].text, Is.EqualTo("c1")); lines = new[] { "CHAT c0", "FIND {dev<2,!day=fri}", "CHAT c1 {dev=2,day=fri}", "CHAT c2 {dev=1,day=fri}", "CHAT c3 {}" }; contents = String.Join("\n", lines); chats = ChatParser.ParseText(contents, NO_VALIDATORS); //chats.ForEach((ch) => Console.WriteLine(ch.ToTree())); finder = chats[0].commands[0]; finder.Resolve(null); Assert.That(chats[0].commands[0].GetType(), Is.EqualTo(typeof(Find))); cr = new ChatRuntime(chats); chats = cr.DoFindAll((Find)finder, null); //chats.ForEach((obj) => Console.WriteLine(obj.text)); Assert.That(chats, Is.Not.Null); Assert.That(chats.Count, Is.EqualTo(1)); Assert.That(chats[0], Is.Not.Null); Assert.That(chats[0].text, Is.EqualTo("c2")); }
public ChatClient(List <IChatClient> _parent, string bot_token, ulong[] channel_ids) : base(_parent) { parent = _parent; BOT_TOKEN = bot_token; chatParser = new ChatParser(); Channel_IDs = channel_ids.ToList(); messageQueue = new DiscordMessageQueue(500); messageQueue.OnReadyToSend += OnMessageReadyToSend; }
private static void TestCanExit() { var fullImage = new Bitmap(@"C:\Users\david\OneDrive\Documents\WFChatParser\Test Runs\Riven Inputs\Screenshot (117).png"); var ss = new ScreenStateHandler(); var isExitable = ss.IsExitable(fullImage); fullImage.Dispose(); var chatIcon = new Bitmap(@"C:\Users\david\OneDrive\Documents\WFChatParser\Test Runs\Inputs\chaticon.png"); var cp = new ChatParser(); var isChat = cp.IsChatFocused(chatIcon); }
public void Test_GetRoll() { var sut = new ChatParser(); var expected = new List <int>() { 1, 20 }; var actual = sut.GetRoll("The bridge has collapsed! Roll 1d20"); Assert.Equal(expected, actual); }
private static void ParseChatImage() { using (var bitmap = new Bitmap(@"C:\Users\david\OneDrive\Documents\WFChatParser\Test Runs\Validation Inputs\error_blurry1.png")) { var cp = new ChatParser(); var lines = cp.ParseChatImage(bitmap); foreach (var line in lines) { Console.WriteLine(line.RawMessage); } } }
public void OnTextReceived(string text, bool isJson) { var links = new List <string>(); string json = null; if (isJson) { json = text; text = ChatParser.ParseText(json, links); } Console.WriteLine(text); }
public void ParsedVar() { Chat chat = ChatParser.ParseText("SAY Thank $count")[0]; Assert.That(chat.commands[0].GetType(), Is.EqualTo(typeof(Say))); Command say = chat.commands[0]; Assert.That(say.GetType(), Is.EqualTo(typeof(Say))); say.Resolve(globals); Assert.That(say.Text(), Is.EqualTo("Thank 4")); Assert.That(say.Resolved(Meta.TYPE), Is.EqualTo("Say")); }
private static void VisualizeClickpoints() { var cp = new ChatParser(); var r = cp.ParseChatImage(new Bitmap(@"C:\Users\david\OneDrive\Documents\WFChatParser\Test Runs\Inputs\bad.png")); var list = new CoordinateList(); r.Where(r1 => r1 is ChatMessageLineResult).Cast <ChatMessageLineResult>().SelectMany(r1 => r1.ClickPoints).ToList().ForEach(p => list.Add(p.X, p.Y)); var ic = new ImageCleaner(); ic.SaveClickMarkers(@"C:\Users\david\OneDrive\Documents\WFChatParser\Test Runs\Inputs\bad.png", Path.Combine(outputDir, "bad_clicks.png"), list); }
//private static void PrepareRivens() //{ // var r = new RivenCleaner(); // var p = new RivenParser(); // var totalSw = new Stopwatch(); // var opSw = new Stopwatch(); // var rivens = new List<Riven>(); // foreach (var riven in Directory.GetFiles(@"C:\Users\david\OneDrive\Documents\WFChatParser\Test Runs\Riven Inputs\").Where(f => !f.EndsWith("_white.png") && f.EndsWith(".png"))) // { // Console.WriteLine("\n" + riven.Substring(riven.LastIndexOf("\\") + 1)); // totalSw.Restart(); // opSw.Restart(); // r.PrepareRivenFromFullscreenImage(riven, riven + "_white.png"); // Console.WriteLine("cleanup: " + opSw.Elapsed.TotalSeconds + " seconds"); // opSw.Restart(); // var result = p.ParseRivenImage(riven + "_white.png"); // rivens.Add(result); // Console.WriteLine("Parsed: " + opSw.Elapsed.TotalSeconds + " seconds"); // opSw.Restart(); // Console.WriteLine(JsonConvert.SerializeObject(result)); // Console.WriteLine("Total: " + totalSw.Elapsed.TotalSeconds + " seconds"); // } // Console.WriteLine("\n"); // Console.WriteLine(JsonConvert.SerializeObject(rivens)); //} private static void FixImages() { var cleaner = new ImageCleaner(); cleaner.SaveChatColors(@"C:\Users\david\OneDrive\Documents\WFChatParser\Test Runs\Inputs\input.png", @"C:\Users\david\OneDrive\Documents\WFChatParser\Test Runs\Inputs\input_white.png"); var p = new ChatParser(); var r = p.ParseChatImage(new Bitmap(@"C:\Users\david\OneDrive\Documents\WFChatParser\Test Runs\Inputs\input.png")); foreach (var line in r) { Console.WriteLine(line.RawMessage); } }
public void TextGroup() { var ok = new string[] { "The boy was sad", "The boy was happy", "The boy was dead" }; Chat chat = ChatParser.ParseText("SAY The boy was (sad | happy | dead)")[0]; Assert.That(chat.commands[0].GetType(), Is.EqualTo(typeof(Say))); Command c = (Say)chat.commands[0]; Assert.That(c.GetType(), Is.EqualTo(typeof(Say))); c.Resolve(globals); Assert.That(c.Resolved(Meta.TYPE), Is.EqualTo("Say")); CollectionAssert.Contains(ok, c.Text()); }
public void ReplacePrompt() { List <Chat> chats = ChatParser.ParseText("ASK Want a $animal?\nOPT $group #Game\n\nOPT $count #End"); Assert.That(chats.Count, Is.EqualTo(1)); Assert.That(chats[0].Count, Is.EqualTo(1)); Assert.That(chats[0].GetType(), Is.EqualTo(typeof(Chat))); Assert.That(chats[0].commands[0].GetType(), Is.EqualTo(typeof(Ask))); Ask ask = (Ask)chats[0].commands[0]; Assert.That(ask.text, Is.EqualTo("Want a $animal?")); ask.Resolve(globals); Assert.That(ask.text, Is.EqualTo("Want a $animal?")); Assert.That(ask.Text(), Is.EqualTo("Want a dog?")); Assert.That(ask.Options().Count, Is.EqualTo(2)); var options = ask.Options(); Assert.That(options[0].GetType(), Is.EqualTo(typeof(Opt))); //Assert.That(options[0].Text, Is.EqualTo("Y").Or.); CollectionAssert.Contains(new string[] { "a", "b" }, options[0].Text()); Assert.That(options[0].action.GetType(), Is.EqualTo(typeof(Go))); Assert.That(options[1].GetType(), Is.EqualTo(typeof(Opt))); Assert.That(options[1].Text(), Is.EqualTo("4")); Assert.That(options[1].action.GetType(), Is.EqualTo(typeof(Go))); chats = ChatParser.ParseText("ASK Want a $obj-prop?\nOPT $group #Game\n\nOPT $count #End"); Assert.That(chats.Count, Is.EqualTo(1)); Assert.That(chats[0].Count, Is.EqualTo(1)); Assert.That(chats[0].GetType(), Is.EqualTo(typeof(Chat))); Assert.That(chats[0].commands[0].GetType(), Is.EqualTo(typeof(Ask))); ask = (Ask)chats[0].commands[0]; ask.Resolve(globals); Assert.That(ask.text, Is.EqualTo("Want a $obj-prop?")); Assert.That(ask.Text(), Is.EqualTo("Want a dog?")); Assert.That(ask.Options().Count, Is.EqualTo(2)); options = ask.Options(); Assert.That(options[0].GetType(), Is.EqualTo(typeof(Opt))); //Assert.That(options[0].Text, Is.EqualTo("Y").Or.); CollectionAssert.Contains(new string[] { "a", "b" }, options[0].Text()); Assert.That(options[0].action.GetType(), Is.EqualTo(typeof(Go))); Assert.That(options[1].GetType(), Is.EqualTo(typeof(Opt))); Assert.That(options[1].Text(), Is.EqualTo("4")); Assert.That(options[1].action.GetType(), Is.EqualTo(typeof(Go))); }
public void FindAll() { string[] lines = { "CHAT c1 {day=fri}", "CHAT c2 {dev=2,day=fri}", "CHAT c3 {}" }; string contents = String.Join("\n", lines); List <Chat> chats = ChatParser.ParseText(contents, NO_VALIDATORS); List <Chat> result = new ChatRuntime(chats).DoFindAll(null, new Constraint("dev", "1"), new Constraint("day", "fri") ); Assert.That(result, Is.Not.Null); Assert.That(result.Count, Is.EqualTo(2)); Assert.That(result[0].text, Is.EqualTo("c1")); Chat c; chats = new List <Chat>(); chats.Add(c = Chat.Create("c1")); chats.Add(c = Chat.Create("c2")); c.SetMeta("dev", "1"); c.SetMeta("day", "hello"); chats.Add(c = Chat.Create("c3")); ChatRuntime cr = new ChatRuntime(chats); chats = cr.DoFindAll(null, new Constraint("dev", "1")); //chats.ForEach((obj) => Console.WriteLine(obj.text)); Assert.That(chats, Is.Not.Null); Assert.That(chats.Count, Is.EqualTo(3)); Assert.That(chats[0].text, Is.EqualTo("c2")); chats = new List <Chat>(); chats.Add(c = Chat.Create("c1")); c.SetMeta("dev", "2"); chats.Add(c = Chat.Create("c2")); c.SetMeta("dev", "1"); c.SetMeta("day", "hello"); chats.Add(c = Chat.Create("c3")); cr = new ChatRuntime(chats); chats = cr.DoFindAll(null, new Constraint("dev", "1")); //chats.ForEach((obj) => Console.WriteLine(obj.text)); Assert.That(chats, Is.Not.Null); Assert.That(chats.Count, Is.EqualTo(2)); Assert.That(chats[0].text, Is.EqualTo("c2")); Assert.That(chats[1].text, Is.EqualTo("c3")); }
public void TimingTest() { Say fast = (Say)ChatParser.ParseText("SAY Thank you { speed=fast}")[0].commands[0]; Say defa = (Say)ChatParser.ParseText("SAY Thank you")[0].commands[0]; Say slow = (Say)ChatParser.ParseText("SAY Thank you{speed=slow }")[0].commands[0]; Assert.That(defa.ComputeDuration(), Is.EqualTo(fast.ComputeDuration() * 2).Within(1)); Assert.That(slow.ComputeDuration(), Is.EqualTo(defa.ComputeDuration() * 2).Within(1)); Say longer = (Say)ChatParser.ParseText("SAY Thank you very much")[0].commands[0]; Assert.That(longer.ComputeDuration(), Is.GreaterThan(defa.ComputeDuration())); Assert.That(fast.text, Is.EqualTo(defa.text)); Assert.That(slow.text, Is.EqualTo(defa.text)); }
public void Staleness() { Chat c; List <Chat> chats = new List <Chat>(); chats.Add(c = Chat.Create("c1")); c.SetMeta("dev", "hello"); c.Staleness(2); chats.Add(c = Chat.Create("c2")); c.SetMeta("dev", "2"); c.Staleness(3); chats.Add(c = Chat.Create("c3")); c.SetMeta("dev", "3"); c.Staleness(4); var res = new ChatRuntime(chats).DoFindAll (null, new Constraint(Operator.LT, "staleness", "3")); Assert.That(res.Count, Is.EqualTo(1)); Assert.That(res[0].text, Is.EqualTo("c1")); string[] lines = { "CHAT c0", "FIND {dev=1,day=fri,staleness<5}", "CHAT c1 {day=fri}", "CHAT c2 {dev=2,day=fri}", "CHAT c3 {}" }; string contents = String.Join("\n", lines); chats = ChatParser.ParseText(contents, NO_VALIDATORS); Command finder = chats[0].commands[0]; finder.Resolve(null); Assert.That(finder.GetType(), Is.EqualTo(typeof(Find))); var crt = new ChatRuntime(chats); c = crt.FindChatByLabel("#c1"); c.Staleness(6); Assert.That(c, Is.Not.Null); Assert.That(c.text, Is.EqualTo("c1")); chats = crt.DoFindAll((Find)finder, null); Assert.That(chats, Is.Not.Null); Assert.That(chats.Count, Is.EqualTo(1)); Assert.That(chats[0], Is.Not.Null); Assert.That(chats[0].text, Is.EqualTo("c3")); }
public void GroupRecursionDepth() { var str = "CHAT c\n(I | (You | (doh | why | no) | ouY) | They)"; str += "(want | hate | like | love)(coffee | bread | milk)"; Chat chat = ChatParser.ParseText(str, NO_VALIDATORS)[0]; Assert.That(chat.commands[0].GetType(), Is.EqualTo(typeof(Say))); Say say = (Dialogic.Say)chat.commands[0]; say.Resolve(null); var s = say.Text(); Assert.That(s, Is.Not.EqualTo("")); }
public void TextVar() { Chat chat = ChatParser.ParseText("SAY Thank $count { pace=$animal}")[0]; Assert.That(chat.commands[0].GetType(), Is.EqualTo(typeof(Say))); Command say = chat.commands[0]; Assert.That(say.GetType(), Is.EqualTo(typeof(Say))); say.Resolve(globals); Assert.That(say.Text(), Is.EqualTo("Thank 4")); say.text = "Thank you"; Assert.That(say.text, Is.EqualTo("Thank you")); Assert.That(say.Resolved(Meta.TYPE), Is.EqualTo("Say")); Assert.That(say.Resolved("pace"), Is.EqualTo("dog")); }
static int __CreateInstance(RealStatePtr L) { try { ObjectTranslator translator = ObjectTranslatorPool.Instance.Find(L); if (LuaAPI.lua_gettop(L) == 1) { ChatParser gen_ret = new ChatParser(); translator.Push(L, gen_ret); return(1); } } catch (System.Exception gen_e) { return(LuaAPI.luaL_error(L, "c# exception:" + gen_e)); } return(LuaAPI.luaL_error(L, "invalid arguments to ChatParser constructor!")); }
public static List <List <List <int> > > parse(string query) { StringBuilder text = new StringBuilder(query); AntlrInputStream inputStream = new AntlrInputStream(text.ToString()); ChatLexer speakLexer = new ChatLexer(inputStream); CommonTokenStream commonTokenStream = new CommonTokenStream(speakLexer); ChatParser speakParser = new ChatParser(commonTokenStream); var tree = speakParser.query(); var visitor = new MyChatVisitor(); var result = (List <List <List <int> > >)visitor.Visit(tree); return(result); }
/// <summary> /// Received some text from the server /// </summary> /// <param name="text">Text received</param> /// <param name="isJson">TRUE if the text is JSON-Encoded</param> public void OnTextReceived(string text, bool isJson) { lock (lastKeepAliveLock) { lastKeepAlive = DateTime.Now; } List <string> links = new List <string>(); string json = null; if (isJson) { json = text; text = ChatParser.ParseText(json, links); } ConsoleIO.WriteLineFormatted(text, true); if (Settings.DisplayChatLinks) { foreach (string link in links) { ConsoleIO.WriteLineFormatted("§8MCC: Link: " + link, false); } } foreach (ChatBot bot in bots.ToArray()) { try { bot.GetText(text); if (bots.Contains(bot)) { bot.GetText(text, json); } } catch (Exception e) { if (!(e is ThreadAbortException)) { ConsoleIO.WriteLineFormatted("§8GetText: Got error from " + bot.ToString() + ": " + e.ToString()); } else { throw; //ThreadAbortException should not be caught } } } }
public void ComplexReplacement() { // "cmplx" -> "($group | $prep)" // "prep" -> "then" }, // "group" -> "(a|b)" }, string[] ok = { "letter a", "letter b", "letter then" }; Chat chat = ChatParser.ParseText("SAY letter $cmplx")[0]; Command c = chat.commands[0]; Assert.That(c.GetType(), Is.EqualTo(typeof(Say))); for (int i = 0; i < 10; i++) { c.Resolve(globals); var txt = c.Text(); //Console.WriteLine(i+") "+txt); CollectionAssert.Contains(ok, txt); } }
public void ComplexPlusTransform() { // "cmplx" -> "($group | $prep)" // "prep" -> "then" }, // "group" -> "(a|b)" }, string[] ok = { "letter an a", "letter a b", "letter a then" }; Chat chat = ChatParser.ParseText("SAY letter $cmplx.articlize()")[0]; Command c = chat.commands[0]; Assert.That(c.GetType(), Is.EqualTo(typeof(Say))); Resolver.DBUG = false; for (int i = 0; i < 1; i++) { c.Resolve(globals); var txt = c.Text(); Assert.That(txt.IsOneOf(ok)); } }
public async Task <List <Chat> > HandleAsync(Query query) { IClientApi client = await _telegramService.BuildAsync(query.UserId); TDialogs result = (await TelegramRequest.HandleAsync(() => { return(client.MessagesService.GetUserDialogsAsync()); })).As <TDialogs>(); var chats = new List <Chat>(); foreach (IChat chat in result.Chats) { chats.AddWhenNotNull(ChatParser.ParseChat(chat)); } return(chats); }
public string GetDisplayName() { if (Nbt != null) { if (Nbt.TryGet("display", out NbtCompound display)) { if (display.TryGet("Name", out NbtString name)) { if (ValidateJSON(name.Value)) { return(ChatParser.ParseText(name.Value)); } return(name.Value); } } } return(DisplayName); }