public static void Main(string[] args) { app = new Infra.App(); InMemoryDatabase.InitData(); BotCommandFactory.CreateCommands(app); BotCallbackFactory.CreateCallbacks(app); SessionManager.Create(app); Init(); }
static async Task Run() { var Bot = new Api("171139565:AAGZDEsv0gw_6LDsAHZR9wDCwMDTgfWzAIE"); var me = await Bot.GetMe(); Console.WriteLine("Hello my name is {0}", me.Username); var offset = 0; while (true) { var updates = await Bot.GetUpdates(offset); foreach (var update in updates) { if (update.Message.Type == MessageType.TextMessage) // && previous.Where(j=> j.Equals(update.Message.From.Username)).Count() < 3) { await Bot.SendChatAction(update.Message.Chat.Id, ChatAction.Typing); await Task.Delay(2000); var match = Regex.Match(update.Message.Text + " ", @"(?'command'^\/.*?\s)?(?'action'.*?\s)?(?'pattern'.*)"); if (match.Groups.Count > 1) { BotCommandFactory factory = new BotCommandFactory(); var command = factory.CreateCommand(match.Groups["command"].Value.Trim()); if (command == null) { await Bot.SendTextMessage(update.Message.Chat.Id, "...idiota.. devi aver scritto qualche cazzata.."); } else { command.BotApi = Bot; await command.Process(update.Message, match); } } } offset = update.Id + 1; } await Task.Delay(3000); } }
private static async void OnMessage(object sender, MessageEventArgs messageEventArgs) { var message = messageEventArgs.Message; if (message == null || message.Type != MessageType.TextMessage) { return; } Console.WriteLine($"Comando recebido: @{message.Text}"); await bot.SendChatActionAsync(message.Chat.Id, ChatAction.Typing); var commandText = message.Text.Split(' ').First(); var command = BotCommandFactory.Get(commandText, bot); command.Execute(message); }