private async void OnMessageAsync(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
 {
     if (!string.IsNullOrEmpty(e.Message.Text))
     {
         await HandleMessageAsync(e.Message.Chat.Id.ToString(), e.Message.Chat.Username, e.Message.Text);
     }
 }
Exemple #2
0
        private static void BotClient_OnMessage(object?sender, global::Telegram.Bot.Args.MessageEventArgs e)
        {
            if (e.Message.Text.StartsWith("/"))
            {
                return;
            }
            Term   t      = Term.Parse(e.Message.Text);
            string expLat = t.ToLaTeX();

            t = t.MergeBranches();
            t = t.Evaluate();


            int i          = 0;
            int lastLength = int.MaxValue;

            while (t.ToInfix().Length < lastLength)
            {
                lastLength = t.ToInfix().Length;
                t          = t.MergeBranches();
                t          = t.Reduce();
                i++;
            }

            string ret = t.ToLaTeX();

            bot.SendTextMessageAsync(e.Message.Chat.Id, ret);
        }
 private void BotClient_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
 {
     if (e.Message.Type == global::Telegram.Bot.Types.Enums.MessageType.Text)
     {
         OnMessageReceived(this, new MessageReceivedEventArgs(e.Message.Chat.Id.ToString(), e.Message.Text));
     }
 }
Exemple #4
0
        private static void Bot_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
        {
            //Chamar API pra cadastrar o pedido
            {
                ChatMq chat;

                if (ActiveChats.ContainsKey(e.Message.Chat.Id))
                {
                    chat = ActiveChats[e.Message.Chat.Id];
                }
                else
                {
                    chat = new ChatMq()
                    {
                        ChatId = e.Message.Chat.Id, QueueName = MqHelper.GetQueueChatName(e.Message.Chat.Id)
                    };
                    ActiveChats.Add(e.Message.Chat.Id, chat);
                }

                Console.WriteLine($"Getting sender information:\n\tChatId: {chat.ChatId}\n\tLastUsedQueue: {chat.QueueName}\n\tLastAppUse: {chat.LastQuery}");

                chat.LastQuery = DateTime.Now;

                //Criando o conteudo para a Azure function
                var str = new StringContent(JsonConvert.SerializeObject(new { name = e.Message.Text, queue = chat.QueueName }), Encoding.Default, "application/json");

                //Cadastrar uma fila pra escutar até voltar as imagens
                mq.CreateQueue(chat.QueueName);
                mq.ConfigureConsumeQueueListener(chat.QueueName, false, sendResultSheets);

                //Chamando a Azure Function
                _client.PostAsync(TelegramConstants.OrquestradorGetSheetUrl, str).GetAwaiter().GetResult();
            }
        }
Exemple #5
0
        private void Bot_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
        {
            TelegramBotInstanceNode telegramBotInstance = this.InParameters["telegramBot"].GetValue() as TelegramBotInstanceNode;

            if (e.Message.Text == "id")
            {
                telegramBotInstance.Bot.SendTextMessageAsync(e.Message.Chat.Id, "The chat ID is : " + e.Message.Chat.Id).Wait();
            }
        }
Exemple #6
0
 private void _botClient_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
 {
     MessageReceived?.Invoke(
         this,
         new MessageReceivedEventArgs
     {
         ContactId = e.Message.Chat.Id.ToString(),
         Message   = e.Message.Text
     });
 }
Exemple #7
0
 private void BotClient_OnMessage(
     object sender,
     global::Telegram.Bot.Args.MessageEventArgs e)
 {
     if (e.Message.Type == global::Telegram.Bot.Types.Enums.MessageType.Text || e.Message.Type == Bot.Types.Enums.MessageType.Photo)
     {
         MessageReceived(
             this,
             new MessageReceivedEventArgs(
                 e.Message.Chat.Id,
                 e.Message.Text,
                 e.Message.Chat.FirstName,
                 e.Message.Photo,
                 e.Message.Caption));
     }
 }
Exemple #8
0
 private void _botClient_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
 {
     //e.Message.Chat.Id
     //e.Message.Text
     if (e.Message.Type != global::Telegram.Bot.Types.Enums.MessageType.Text)
     {
         return;
     }
     MessageReceived?.Invoke(
         this,
         new MessageReceivedEventArgs
     {
         ContactId = e.Message.Chat.Id.ToString(),
         Message   = e.Message.Text
     });
 }
Exemple #9
0
        private void Bot_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
        {
            TelegramBotInstanceNode telegramBotInstance = this.InParameters["telegramBot"].GetValue() as TelegramBotInstanceNode;

            if (e.Message.Text == "id")
            {
                telegramBotInstance.Bot.SendTextMessageAsync(e.Message.Chat.Id, "The chat ID is : " + e.Message.Chat.Id).Wait();
            }
            else
            {
                var instanciatedParameters = this.InstanciateParametersForCycle();
                instanciatedParameters["message"].SetValue(e.Message.Text);
                instanciatedParameters["chatId"].SetValue(e.Message.Chat.Id);
                instanciatedParameters["fromId"].SetValue(e.Message.From.Id);
                instanciatedParameters["from"].SetValue(e.Message.From.Username);
                this.Graph.AddCycle(this, instanciatedParameters);
            }
        }
Exemple #10
0
        private static async void Bot_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
        {
            if (e.Message.Type == MessageType.Text)
            {
                var userId    = e.Message.From.Id;
                var IsBot     = e.Message.From.IsBot;
                var username  = e.Message.From.Username;
                var firstName = e.Message.From.FirstName;
                var lastName  = e.Message.From.LastName;

                _logger.Information($"От пользователя {firstName} {lastName}(t.me/{username} - {userId}) - признак бота:{IsBot} \n Получили сообщение: {e.Message.Text}");
                _logtelegram.Information($"От пользователя {firstName} {lastName}(t.me/{username} - {userId}) - признак бота:{IsBot} \n Получили сообщение: {e.Message.Text}");

                if (Statics.WordToEnumDictionary.ContainsKey(e.Message.Text.ToLower()))
                {
                    await HandleWord(e.Message.Chat.Id, userId, Statics.EnumToObjectDictionary[Statics.WordToEnumDictionary[e.Message.Text.ToLower()]]);

                    _logger.Information("Все отработало как надо из справочника слов");
                    _logtelegram.Information("Все отработало как надо из справочника слов");
                }
                else if (Operation.OperationToEnumDictionary.ContainsKey(e.Message.Text.ToLower()))
                {
                    await HandleComand(e.Message.Chat.Id, firstName, lastName, userId, Operation.EnumToObjectDictionary[Operation.OperationToEnumDictionary[e.Message.Text.ToLower()]]);

                    _logger.Information($"Ответили пользователю на запрос: {e.Message.Text.ToLower()}");
                    _logtelegram.Information($"Ответили пользователю на запрос: {e.Message.Text.ToLower()}");
                }
                else
                {
                    await Bot.SendStickerAsync(e.Message.Chat.Id, new InputOnlineFile("CAACAgIAAxkBAAIJgF6HP2XspGCeGDtAzBq5Pm4GR3QDAAIbAgACygMGC9wPPRAcg_U_GAQ"));

                    await Bot.SendTextMessageAsync(e.Message.Chat.Id, $"{firstName}, интересно, какой смысл вы вложили в это: {e.Message.Text.ToLower()}🙈");  //😢

                    _logger.Warning($"Сказали пользователю {firstName} {lastName} ({userId}) что не шарим слово: ►{e.Message.Text}◄, сори с уважением");
                    _logtelegram.Warning($"Сказали пользователю {firstName} {lastName} ({userId}) что не шарим слово: ►{e.Message.Text}◄, сори с уважением");
                }
            }
        }
Exemple #11
0
        private static void Client_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
        {
            Console.WriteLine("Message " + e.Message.Text);

            //Stream stream = e.Message?.Audio?.FileStream;

            if (e.Message.Type.Equals(MessageType.VoiceMessage))
            {
                var message = e.Message;

                var filePath = Path.Combine(@"C:\apps", message.Voice.FileId + ".ogg");

                using (var file = System.IO.File.OpenWrite(filePath))
                {
                    var tsk = client.GetFileAsync(message.Voice.FileId, file);
                    tsk.Wait();
                    Console.WriteLine($"Find Voice at {filePath}");
                }


                using (FileStream stream = File.Open(filePath, FileMode.Open))
                {
                    //https://stackoverflow.com/questions/17895933/using-system-speech-to-convert-mp3-file-to-text
                    SpeechRecognitionEngine sre = new SpeechRecognitionEngine();
                    Grammar gr = new DictationGrammar();
                    sre.LoadGrammar(gr);
                    sre.SetInputToAudioStream(stream, new SpeechAudioFormatInfo(8000, AudioBitsPerSample.Sixteen, AudioChannel.Mono));

                    StringBuilder sb = new StringBuilder();
                    while (true)
                    {
                        try
                        {
                            var recText = sre.Recognize();
                            if (recText == null)
                            {
                                break;
                            }

                            sb.Append(recText.Text);
                        }
                        catch (Exception ex)
                        {
                            //handle exception
                            //...

                            break;
                        }
                    }

                    Console.WriteLine(sb.ToString());
                }

                //if (stream?.Length > 1)
                //{
                //    //https://stackoverflow.com/questions/17895933/using-system-speech-to-convert-mp3-file-to-text
                //    SpeechRecognitionEngine sre = new SpeechRecognitionEngine();
                //    Grammar gr = new DictationGrammar();
                //    sre.LoadGrammar(gr);
                //    sre.SetInputToAudioStream(stream, new SpeechAudioFormatInfo(8000, AudioBitsPerSample.Sixteen, AudioChannel.Mono));

                //    StringBuilder sb = new StringBuilder();
                //    while (true)
                //    {
                //        try
                //        {
                //            var recText = sre.Recognize();
                //            if (recText == null)
                //            {
                //                break;
                //            }

                //            sb.Append(recText.Text);
                //        }
                //        catch (Exception ex)
                //        {
                //            //handle exception
                //            //...

                //            break;
                //        }
                //    }

                //    Console.WriteLine(sb.ToString());
                //}
            }
        }
Exemple #12
0
 private static void Client_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
 {
     client.SendTextMessageAsync(e.Message.Chat.Id, "Test!").ConfigureAwait(false);
 }
Exemple #13
0
 private void TClient_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
 {
     throw new NotImplementedException();
 }
Exemple #14
0
        private async void BotClient_OnMessage(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
        {
            if (string.IsNullOrEmpty(e.Message.Text) || e.Message.From != null && !IsRegisteredUser(e.Message.From))
            {
                return;
            }
            var message = e.Message;

            switch (message.Text.Split(' ').First())
            {
            case "/getOuman":
                await SendOumanReadings(message.From.Id);

                break;

            case "/startOuman":
                _oumanCollector.StartPolling();
                await SendMessage("Ouman polling started", message.From.Id);

                break;

            case "/stopOuman":
                _oumanCollector.StopPolling();
                await SendMessage("Ouman polling stopped", message.From.Id);

                break;

            case "/photo":
                await SendTuxFile(message.Chat.Id);

                break;

            case "/getDoorBell":
                await SendDoorBellPicture(message.From.Id);

                break;

            //case "/setCatLitter":
            //    await _storageCollector.UpdateCatLitterTime();
            //    await SendMessage("Cat litter time set", message.From.Id);
            //    break;
            //case "/getCatLitter":
            //    var time = await _storageCollector.GetCatLitterTime();
            //    await SendMessage($"Last time was {time}", message.From.Id);
            //    break;
            case "/readme":
            case "/Readme":
            case "/HowTo":
            case "/how":
            case "/usage":
            case "/":
            case "/Usage":
                await ReplyUsage(message.From.Id);

                break;

            default:
                await SendAdminMessages(message.Text, message.From.Username);

                break;
            }
        }
        /// <summary>
        /// Событие возникающее при получении новых смс ботом
        /// Содержит всю основную логику программы
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void MessageListener(object sender, global::Telegram.Bot.Args.MessageEventArgs e)
        {
            // Добавление на панель сообщения, как только сработало событие прихо
            window.Dispatcher.Invoke(() =>
                                     messages.Add(
                                         new Messages(e.Message.Chat.FirstName, e.Message.Text,
                                                      e.Message.Chat.Id, e.Message.Date.ToShortTimeString())));

            if (e.Message.Text != null && userTextAvailible != true)
            {
                e.Message.Chat.Description = "";
                Thread thread = new Thread(SendMail);
                thread.Start(e);
            }
            //if (userTextAvailible)
            //{
            //    userTextAvailible = false;
            //    e.Message.Chat.Description = "UserText.txt";
            //    Thread thread = new Thread(SendMail);
            //    thread.Start(e);
            //    bot.SendTextMessageAsync(e.Message.Chat.Id, "Спасибо, твой текст принят на обработку!");
            //    bot.SendTextMessageAsync(e.Message.Chat.Id, "Если снова понадобится помощь, просто пришли файл в формате .txt");
            //}

            if (!usersId.ContainsKey(e.Message.Chat.Id))
            {
                usersId.Add(e.Message.Chat.Id, e.Message.Chat.FirstName);
                SaveJsonUsersId();
            }

            if (e.Message.Type == global::Telegram.Bot.Types.Enums.MessageType.Text)
            {
                if (e.Message.Text == "/start")
                {
                    string responseText = $"Привет, {e.Message.Chat.FirstName}! Мы обновились!" +
                                          $" Теперь я могу помочь тебе найти все кафе, рестораны, столовые и т.п.\n" +
                                          $"Достаточно сказать мне улицу/проспект/площадь и даже дом!\n" +
                                          $"Только в случае с домом за точность не отвечаю - их уж очень много в Москве)";
                    bot.SendTextMessageAsync(e.Message.Chat.Id, responseText);
                }
                else if (e.Message.Text.Length >= 4)
                {
                    WorkWithMosRu(e.Message.Text, e.Message.Chat.Id);
                }
                else
                {
                    bot.SendTextMessageAsync(e.Message.Chat.Id, $"Детка! Мне нужно название длиннее <<{e.Message.Text}>>");
                }
            }
            else if (e.Message.Type == global::Telegram.Bot.Types.Enums.MessageType.Document ||
                     e.Message.Type == global::Telegram.Bot.Types.Enums.MessageType.Photo)
            {
                //Task.Factory.StartNew(Download, e);
                Thread thread = new Thread(Download);
                thread.Start(e);
            }
            else
            {
                bot.SendTextMessageAsync(e.Message.Chat.Id, "Наверное ты промахнулся и прислал не тот файл. Попробуй еще раз!)");
            }
        }