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(); }
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(); }
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(); }
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(); }
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(); }