public Task <bool> HandleAsync(IIncomingMessage message, IVityaBot bot) { return(bot.SendMessageAsync(new OutgoingMessage() { peer_id = message.peer_id, message = string.Format("Все говорят {0}, а ты пошел на хуй", message.text) })); }
static async Task ProcessMessagesAsync(IVityaBot bot, IEnumerable <IUpdatesHandler <IIncomingMessage> > handlers) { try { if (Processing) { return; } _logger.Log(NLog.LogLevel.Info, "ProcessMessagesStart"); Processing = true; var updatesResult = await bot.GetUpdatesAsync(); foreach (var message in updatesResult.Updates) { foreach (var handler in handlers) { if (handler.CanHandle(message, bot)) { await handler.HandleAsync(message, bot); } } } Processing = false; } catch (Exception e) { Processing = false; _logger.Log(NLog.LogLevel.Error, e); } }
public async Task <HandlerResult> HandleAsync(IIncomingMessage message, IVityaBot bot) { return(new HandlerResult() { message = bot.confimationCode }); }
public Task <bool> HandleAsync(IIncomingMessage message, IVityaBot bot) { return(bot.SendMessageAsync(new OutgoingMessage() { peer_id = message.peer_id, message = string.Format("Твоя картинка говно") })); }
public async Task <HandlerResult> HandleAsync(IIncomingMessage message, IVityaBot bot) { foreach (var attach in message.attachments.Where(x => x.type == "audio_message")) { //у гугла бесплатный лимит на 60 минту в месяц, если больше то надо бабки платить //я там поставил на 120 секунд в день квоту, что бы за пределы не вылезало //у меня вроде бесплатный режим стоит в аккаунте, но я хз как у них там сразу бабки снимает //if (attach.audio_message.duration < 10) //{ // var audioText = await bot.audioToText((string)attach.audio_message.link_mp3); // if (!string.IsNullOrWhiteSpace(audioText)) // { // await bot.processMemeAsync(message, audioText); // } // else // { // await bot.processMemeAsync(message, generateRandom()); // } //} //else { await bot.processMemeAsync(message, generateRandom()); } } return(new HandlerResult() { message = "ok" }); }
public bool CanHandle(IIncomingMessage message, IVityaBot bot) { return(bot.canProcess(message.from_id) && _messageTypes.Contains(message.MessageType.ToLowerInvariant()) && Services.DataService.vityaId == message.from_id && message.attachments != null && message.attachments.Any(x => x.type == "wall")); }
public async Task <HandlerResult> HandleAsync(IIncomingMessage message, IVityaBot bot) { //await _commands[message.text.ToLowerInvariant()](message, bot); return(new HandlerResult() { message = "ok" }); }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { var outgoingMessage = new Models.OutgoingMessage() { peer_id = message.peer_id, message = $"bot test mode is {bot.mode.ToString()}" }; await bot.SendMessageAsync(outgoingMessage); }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { var outgoingMessage = new Models.OutgoingMessage() { peer_id = message.peer_id, message = $"Бэтмен {Generator.generate(SwearWordGenerator.Type.Adjective, 2, Sex.M, Case.I)} {Generator.generate(SwearWordGenerator.Type.Noun, 2, Sex.M, Case.I)}" }; await bot.SendMessageAsync(outgoingMessage); }
public async Task <HandlerResult> HandleAsync(IIncomingMessage message, IVityaBot bot) { await bot.processTextMessage(message); return(new HandlerResult() { message = "ok" }); }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { bot.mode = Enum.Parse <VKBot.VkBot.Mode>(match.Groups[1].Value); var outgoingMessage = new Models.OutgoingMessage() { peer_id = message.peer_id, message = $"bot test mode is {bot.mode.ToString()}" }; await bot.SendMessageAsync(outgoingMessage); }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { var peers = VkontakteBot.Services.DataService.activeMemes.Select(t => t.Id + " - " + t.title + " - " + t.description); var outgoingMessage = new Models.OutgoingMessage() { peer_id = message.peer_id, message = string.Join("\n", peers) }; await bot.SendMessageAsync(outgoingMessage); }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { var outgoingMessage = new Models.OutgoingMessage() { peer_id = message.peer_id, //message = text, attachment = Services.DataService.pictures["joke"], //group_id = message. }; await bot.SendMessageAsync(outgoingMessage); }
public async Task <bool> HandleAsync(IIncomingMessage message, IVityaBot bot) { foreach (var attach in message.attachments.Where(x => x.type == "wall")) { await bot.SendMessageAsync(new OutgoingMessage() { peer_id = message.peer_id, message = string.Format("Опять всякое говно репостим") }); } return(true); }
public async Task <bool> HandleAsync(IIncomingMessage message, IVityaBot bot) { foreach (var attach in message.attachments.Where(x => x.type == "audio")) { await bot.SendMessageAsync(new OutgoingMessage() { peer_id = message.peer_id, message = string.Format("{0} говно", attach.audio.artist) }); } return(true); }
public async Task <HandlerResult> HandleAsync(IIncomingMessage message, IVityaBot bot) { //foreach (var attach in message.attachments.Where(x => x.type == "audio")) //{ // await bot.SendMessageAsync(new OutgoingMessage() { peer_id = message.peer_id, message = string.Format("{0} говно", attach.audio.artist) }); //} return(new HandlerResult() { message = "ok" }); }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { var memes = VkontakteBot.Services.DataService.activeMemes; foreach (var meme in memes) { await bot.processMemeByIdAsync(message.peer_id, meme.Id, meme.title + ";" + meme.description); } var outgoingMessage = new Models.OutgoingMessage() { peer_id = message.peer_id, message = $"test memes finished" }; await bot.SendMessageAsync(outgoingMessage); }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { var peerId = match.Groups[1].Value; var text = match.Groups[2].Value; if (!string.IsNullOrEmpty(text)) { var outgoingMessage = new Models.OutgoingMessage() { peer_id = peerId, message = text }; await bot.SendMessageAsync(outgoingMessage); } }
public async Task <HandlerResult> HandleAsync(IIncomingMessage message, IVityaBot bot) { var outgoingMessage = new OutgoingMessage() { peer_id = message.peer_id, //message = text, attachment = Services.DataService.pictures["communityLike"], //group_id = message. }; await bot.SendMessageAsync(outgoingMessage); return(new HandlerResult() { message = "ok" }); }
static void Main(string[] args) { SpeechSynthesizer speaker = new SpeechSynthesizer(); //speaker.SelectVoice("ScanSoft Katerina_Full_22kHz"); speaker.Rate = 1; speaker.Volume = 100; // speaker.Speak("vitia pidor"); // надо поставить русский езык(в распозновании речи, можно скачать у мелкософта, но у меня не получилось :( из-за x64 винды и через стрим заливать как музычку NLog.LogManager.LoadConfiguration(Directory.GetParent(Environment.CurrentDirectory).Parent.FullName + "//NLog.config"); _logger.Info("Hello World"); bot = new VkBot(_logger); Start(); Console.Read(); }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { var memeId = match.Groups[1].Value; var memes = VkontakteBot.Services.DataService.activeMemes; var meme = memes.FirstOrDefault(t => t.Id == memeId); if (meme != null) { await bot.processMemeByIdAsync(message.peer_id, meme.Id, meme.title + ";" + meme.description); } var outgoingMessage = new Models.OutgoingMessage() { peer_id = message.peer_id, message = $"test {memeId} finished" }; await bot.SendMessageAsync(outgoingMessage); }
public async Task processMessage(IIncomingMessage message, IVityaBot bot) { //get user access rights var userAccess = Services.DataService.userAccess(message.from_id); //get user patterns var userPatternHandlers = patternHandlers.Where(t => (t.access != 2 && t.access <= userAccess) || (t.access == 2 && t.userIds.Contains(message.from_id))); foreach (var pattern in userPatternHandlers) { Match match = pattern.regex.Match(message.text); if (match.Success) { await pattern.handleAsync(message, bot, match); break; } } }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { //todo: random event var randInt = _random.Next(0, 100); if (randInt < 80) { await funcs[0](message, bot); } else if (randInt < 90) { await funcs[1](message, bot); } else if (randInt < 100) { await funcs[2](message, bot); } }
async Task <IActionResult> ProcessMessagesAsync(IVityaBot bot, IIncomingMessage message) { try { //check chache //if cache already contains the message, then return ok result, else proceed ObjectCache cache = MemoryCache.Default; var cacheKey = message.peer_id + message.MessageType + message.from_id + message.date; if (cache[cacheKey] != null) { _logger.Log(NLog.LogLevel.Info, $"cache key found: {cacheKey}"); return(Ok("ok")); } cache.Add(cacheKey, message, DateTime.Now.AddMinutes(5)); //todo: separate interface for Task<HandlerResult> //handle logic with response to vk foreach (var handler in responseHandler) { if (handler.CanHandle(message, bot)) { var result = await handler.HandleAsync(message, bot); return(Ok(result.message)); } } //todo: separate interface for Task //handle bot requests foreach (var handler in updatesHandler) { if (handler.CanHandle(message, bot)) { handler.HandleAsync(message, bot); } } } catch (Exception ex) { _logger.Log(NLog.LogLevel.Error, ex, "Error during bot process"); return(Ok(ex.ToString())); } return(Ok("ok")); }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { var peerId = match.Groups[1].Value; var memeId = match.Groups[2].Value; var text = match.Groups[3].Value; if (text == "random") { await bot.processRandomBestMemeAsync(new Models.UpdateMessage() { @object = new Models.UpdateMessageData() { peer_id = int.Parse(peerId) } }); } else { await bot.processMemeByIdAsync(peerId, memeId, text); } }
public bool CanHandle(IIncomingMessage message, IVityaBot bot) { return(message.MessageType == "confirmation"); }
public bool CanHandle(IIncomingMessage message, IVityaBot bot) { return(bot.canProcess(message.from_id) && _messageTypes.Contains(message.MessageType.ToLowerInvariant()) && !string.IsNullOrWhiteSpace(message.text)); }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { //do nothing }
public bool CanHandle(IIncomingMessage message, IVityaBot bot) { return(message.attachments.Any(x => x.type == "audio")); }
public override async Task handleAsync(IIncomingMessage message, IVityaBot bot, Match match) { await bot.processMemeAsync(message, match.Groups[1].Value); }