Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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);
        }