Example #1
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            /* subscribe for anon lambda in order to receive any update */
            bot.OnGroupUpdateReceived += (sender, eventArgs) =>
            {
                logger.LogInformation(eventArgs.Update.Type.ToString() + " event type triggered");
            };


            /* subscribe for static method in order to receive new comment update type */
            bot.OnGroupUpdateReceived += NewCommentHandler;


            bot.OnBotStarted += (sender, eventArgs) =>
            {
                bot.Api.Wall.CreateComment(new WallCreateCommentParams()
                {
                    OwnerId = -bot.GroupId, PostId = 1, Message = "test"
                });
            };

            bot.Start();
            //bot.Dispose();
            Console.ReadLine();
        }
Example #2
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);


            //регистрируем текстовый ответ на "+матеша"
            bot.TemplateManager.Register(new RegexToActionTemplate(MateshaSubscribeCommand,
                                                                   "ну окей, вот тебе матеша"));

            //регистрируем обработчик-функцию на "+матеша"
            bot.TemplateManager.Register(new RegexToActionTemplate(MateshaSubscribeCommand, MateshaHandler));

            //важно: отсутствие PeerId в конструкторе RegexToActionTemplate означает

            // способ удаления клавиатуры будет добавлен в следующем обновлении проекта VkNet
            //https://github.com/vknet/vk/pull/780

            bot.TemplateManager.Register(new RegexToActionTemplate(MateshaUnsubscribeCommand,
                                                                   "ну окей, теперь не будет у вас этой кнопки",
                                                                   new KeyboardBuilder().SetOneTime().AddButton("пока", "").Build()));

            bot.Start();
            bot.Dispose();
            Console.ReadLine();
        }
Example #3
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            bot.TemplateManager.Register(new RegexToActionTemplate("привет", "на привет всегда отвечаю кусь"));

            bot.TemplateManager.Register(
                new RegexToActionTemplate("ты кто",
                                          new List <string>()
            {
                "меня зовут мишутка", "вы о ком", "не говори так", "а ты кто?"
            }));

            bot.TemplateManager.Register(
                new RegexToActionTemplate("^[0-9]+$", "ого, я определил, что вы прислали мне число!"));

            bot.TemplateManager.Register(new RegexToActionTemplate("колобок",
                                                                   (sender, eventArgs) =>
            {
                logger.LogInformation(
                    $"кто-то написал {eventArgs.Message.Text}, я могу регировать на эту фразу так, как я хочу! system(\"reboot\")");
            }));

            bot.TemplateManager.Register(new RegexToActionTemplate("квадр.*[0-9]+", (sender, eventArgs) =>
            {
                logger.LogInformation(
                    $"кто-то написал '{eventArgs.Message.Text}', пора вычислить квадрат числа в сообщении!");

                int num = int.Parse(Regex.Match(eventArgs.Message.Text, "[0-9]+").Value);

                sender.Api.Messages.Send(new MessagesSendParams()
                {
                    RandomId = Environment.TickCount,
                    PeerId   = eventArgs.Message.PeerId,
                    Message  = $"квадрат числа {num} равен {num * num}"
                });
            }));


            var keyboard = new KeyboardBuilder().SetOneTime()
                           .AddButton("лол", "кек", KeyboardButtonColor.Positive, "type").Build();

            bot.TemplateManager.Register(new RegexToActionTemplate("кнопка", "лови кнопку", keyboard));
            bot.Start();
            bot.Dispose();
            Console.ReadLine();
        }
Example #4
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            var keyboard = new KeyboardBuilder().SetOneTime().AddButton("тык", "").AddButton("тыдыщ", "").Build();

            bot.TemplateManager.Register(new RegexToActionTemplate("тык", (sender, eventArgs) =>
            {
                PeerContext context = eventArgs.PeerContext;
                long peerId         = eventArgs.Message.PeerId.Value;

                if (!context.Vars.ContainsKey("тыки"))
                {
                    context.Vars["тыки"] = 0;
                }

                sender.Api.Messages.Send(new MessagesSendParams()
                {
                    Keyboard = keyboard,
                    PeerId   = peerId,
                    Message  = $"тык номер {context.Vars["тыки"]++}",
                    RandomId = Math.Abs(Environment.TickCount)
                });
            }
                                                                   ));


            bot.TemplateManager.Register(new RegexToActionTemplate("тыдыщ", (sender, eventArgs) =>
            {
                if (!eventArgs.PeerContext.GlobalVars.ContainsKey("тыдыщи"))
                {
                    eventArgs.PeerContext.GlobalVars["тыдыщи"] = 0;
                }

                sender.Api.Messages.Send(new MessagesSendParams()
                {
                    Keyboard = keyboard,
                    PeerId   = eventArgs.Message.PeerId,
                    Message  = $"глобальный, междиалоговый тыдыщ номер {eventArgs.PeerContext.GlobalVars["тыдыщи"]++}",
                    RandomId = Math.Abs(Environment.TickCount)
                });
            }));

            bot.Start();
            bot.Dispose();
        }
Example #5
0
        static void Main(string[] args)
        {
            ILoggerFactory  loggerFactory = new LoggerFactory().AddConsole();
            ILogger <VkBot> logger        = loggerFactory.CreateLogger <VkBot>();

            ExampleSettings settings = ExampleSettings.TryToLoad(logger);

            VkBot bot = new VkBot(settings.AccessToken, settings.GroupUrl, logger);

            bot.OnMessageReceived += NewMessageHandler;

            bot.Start();

            Console.ReadLine();
        }