protected override async Task OnHandlerAsync(ParameterHandlerInfo info) { Core.DebugMode = true; Core.Log.Warning("Slack Bot Test"); Core.Log.InfoBasic("Please enter the Bot Token:"); var token = Console.ReadLine(); var slackTransport = new SlackBotTransport(token); var botEngine = new BotEngine(slackTransport); botEngine.Commands.Add(msg => msg.StartsWith("Hello"), (bot, message) => { Core.Log.Warning(message.SerializeToJson()); bot.SendTextMessageAsync(message.Chat, "Message Received"); return(true); }); Core.Log.Warning("Connecting..."); await botEngine.StartListenerAsync().ConfigureAwait(false); Core.Log.Warning("Connected."); Console.ReadLine(); }
private IBotEngine GetBotEngine() { var telegramTransport = new SlackBotTransport(BotToken); var bEngine = new BotEngine(telegramTransport); var header = string.Format("Machine Name: {0}\r\nApplication Name: {1}\r\n", Core.MachineName, Core.ApplicationDisplayName); bEngine.Commands.Add(txt => txt.Trim().StartsWith("/TrackLog"), async(api, msg) => { api.TrackChat(msg.Chat); await api.SendTextMessageAsync(msg.Chat, header + "Tracking").ConfigureAwait(false); return(true); }); bEngine.Commands.Add(txt => txt.Trim().StartsWith("/UntrackLog"), async(api, msg) => { api.TrackChat(msg.Chat); await api.SendTextMessageAsync(msg.Chat, header + "Untracked").ConfigureAwait(false); return(true); }); bEngine.Commands.Add(txt => txt.Trim().StartsWith("/HelloLog"), async(api, msg) => { await api.SendTextMessageAsync(msg.Chat, header + "Hello").ConfigureAwait(false); return(true); }); if (SaveTrackedChats) { if (File.Exists(TrackedChatsFilePath)) { Try.Do(() => { Core.Log.InfoBasic("Loading tracked chats file: {0}", TrackedChatsFilePath); var botChats = _serializer.DeserializeFromFile <List <BotChat> >(TrackedChatsFilePath); bEngine.TrackedChats.AddRange(botChats); Core.Log.InfoBasic("{0} tracked chats loaded.", botChats?.Count); }); } bEngine.OnTrackedChatsChanged += (s, e) => { Try.Do(() => { Core.Log.InfoBasic("Saving tracked chats file: {0}", TrackedChatsFilePath); var botChats = ((IBotEngine)s).TrackedChats.ToList(); _serializer.SerializeToFile(botChats, TrackedChatsFilePath); Core.Log.InfoBasic("{0} tracked chats saved.", botChats.Count); }); }; } return(bEngine); }