EventArgs containing a Types.Message
Inheritance: System.EventArgs
Exemplo n.º 1
0
        public void Bot_Onmessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            if (e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Text)
            {
                if (e.Message.Text.StartsWith("/count"))
                {
                    string response = "the Number of letters in your text is -> ";
                    response += e.Message.Text.ToString();
                    Bot.SendTextMessageAsync(e.Message.Chat.Id, "하");
                }

                else if (e.Message.Text.StartsWith("/sell"))
                {
                    string 종목코드 = "";
                    int    보유수량 = 0;


                    //  client.sellBot(종목코드, 보유수량);
                    string response = e.Message.Text.ToString();
                    // /sell(종목코드,숫자)
                    string[] vs = response.Split('(', ',', ')'); ////sell(종목코드,수량)


                    string test = "sellBot(" + vs[1] + "," + vs[2] + ")";

                    Bot.SendTextMessageAsync(e.Message.Chat.Id, test);
                }
            }
        }
Exemplo n.º 2
0
        private static async void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            msg = e.Message;


            if (msg == null)
            {
                return;
            }



            if (msg.Type == Telegram.Bot.Types.Enums.MessageType.Text)
            {
                SendTextMess(msg.Text);
            }



            if (msg.Type == Telegram.Bot.Types.Enums.MessageType.Document)
            {
                var file = await bot.GetFileAsync(msg.Document.FileId);

                FileStream fs = new FileStream(path.path + "\\" + msg.Document.FileName, FileMode.Create);
                await bot.DownloadFileAsync(file.FilePath, fs);

                fs.Close();
                fs.Dispose();
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Метод, использующийся в разделе олимпиад для отправки файла с перечнем
        /// </summary>
        /// <param name="path"></param>
        /// <param name="e"></param>
        /// <param name="Client"></param>
        public static async void SendOlymps(string path, Telegram.Bot.Args.MessageEventArgs e, TelegramBotClient Client)
        {
            var message = e.Message;
            await Client.SendTextMessageAsync(message.Chat.Id, "Ниже появится PDF файл с перечнем:");

            HelpingFunctions.SendDocument(path, e, Client);
        }
Exemplo n.º 4
0
        /// <summary>
        /// Обработчик полученного сообщения
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void IncomingTextMessageProcessor(Telegram.Bot.Args.MessageEventArgs e)
        {
            // Формируем отображаемое имя
            string ChatPartnerName = ComposeChatPartnerName(e);

            w.Dispatcher.Invoke(() =>
            {
                messagesRoll.Add(new Message()
                {
                    ID              = e.Message.MessageId,
                    ChatID          = e.Message.Chat.Id,
                    Incoming        = true,
                    ChatType        = e.Message.Chat.Type.ToString(),
                    UserName        = e.Message.Chat.Username,
                    FirstName       = e.Message.Chat.FirstName,
                    LastName        = e.Message.Chat.LastName,
                    MsgTitleInRoll  = ChatPartnerName,
                    ChatPartnerName = ChatPartnerName,
                    Type            = e.Message.Type.ToString(),
                    Text            = e.Message.Text,
                    MessageDT       = DateTime.Now
                });
                // Прокручиваем список, чтобы был виден его последний элемент
                // Пример нашёл в инете
                var border       = (Border)VisualTreeHelper.GetChild(w.MessagesRoll, 0);
                var scrollViewer = (ScrollViewer)VisualTreeHelper.GetChild(border, 0);
                scrollViewer.ScrollToBottom();
            });
        }
Exemplo n.º 5
0
        //Done
        private void AddToQueue(object sender, Telegram.Bot.Args.MessageEventArgs ev)
        {
            long _chatId = ev.Message.Chat.Id;

            if (string.IsNullOrEmpty(ev.Message.Chat.Username))
            {
                return;
            }

            if (!_allowedUsers.ContainsKey(ev.Message.Chat.Username.ToLower()))
            {
                return;
            }

            if (ev.Message.Text.StartsWith("/") || ev.Message.Text.StartsWith("@"))
            {
                return;
            }

            if (!CheckLink(ev.Message.Text) || ev.Message.Text == null || ev.Message.Text.Contains('\n') == true)
            {
                _telegramBotClient.SendTextMessageAsync(_chatId, ResponseMessages.InvalidLink);
                return;
            }

            Logger.Information("Valid youtube link detected.");
            _telegramBotClient.SendTextMessageAsync(_chatId, ResponseMessages.QueuedSuccessful);
            tracksList.Add(new TrackInfo(ev.Message.Text, ev.Message.Chat.Username));
            if (tracksList.Count != 0)
            {
                _musicDownloader.DownloadAudio();
            }
        }
Exemplo n.º 6
0
        private async void Bot_OnStart(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            var msg = e.Message;

            if (msg.Text == "/start")
            {
                await botClient.SendTextMessageAsync(e.Message.From.Id, @"Приветствую.
Данный бот является мультимедийной платформой со множеством полезных функций.
Также бот способен конвертировать <b>pdf</b> файлы, присылать афишу, выступать облачным диском, хранящий ваши документы/фото/ауди/видео.
Для начала следует отправить боту любой документ, и бот его сохранит. 
Позже вы сможете попросить наших ботов вам их прислать.
Для вашей персональной безопасности вам следует зарегистрировать пользователя на нашем сервисе.
Для этого стоит выбрать кнопку <i>'Регистрация'</i> и ввести логин и пароль.
После создания аккаунта или если он уже есть, то надо выбрать кнопку <i>'Авторизация'</i>", ParseMode.Html, false, false, 0);

                var inlineFunc = new InlineKeyboardMarkup(new[]
                {
                    new[]
                    {
                        InlineKeyboardButton.WithCallbackData("Авторизация"),
                        InlineKeyboardButton.WithCallbackData("Регистрация")
                    }
                }
                                                          );

                await botClient.SendTextMessageAsync(msg.Chat.Id, "Верификация", replyMarkup : inlineFunc);

                botClient.OnMessage -= Bot_OnStart;
            }
        }
Exemplo n.º 7
0
        /// <summary>
        /// Метод, содержащий основную виртуальную клавиатуру, которая вызывается командой /KEYBOARD
        /// </summary>
        /// <param name="e"> Параметр клиента </param>
        public static async void MainKeyBoard(Telegram.Bot.Args.MessageEventArgs e, TelegramBotClient Client)
        {
            var message = e.Message;

            var replyKeyBoard = new ReplyKeyboardMarkup(new[]
            {
                new[]
                {
                    new KeyboardButton("Направления подготовки")
                },
                new[]
                {
                    new KeyboardButton("Скидки на обучение"),
                    new KeyboardButton("Поступление по олимпиадам")
                },
                new[]
                {
                    new KeyboardButton("Приёмная комиссия"),
                    new KeyboardButton("Полезные ссылки")
                },
                new[]
                {
                    new KeyboardButton("Часто задаваемые вопросы"),
                    new KeyboardButton("Не нашли ответ на вопрос?")
                }
            });

            await Client.SendTextMessageAsync(message.Chat.Id, "Переход выполнен", replyMarkup : replyKeyBoard);
        }
Exemplo n.º 8
0
        private static async void BotOnMessageReceived(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            var message = e.Message; //сообщение от пользователя
            var a       = new API();

            //string P = a.Api;
            //string S = " ";
            a.Api();
            string name = $"{message.From.FirstName} {message.From.LastName}"; //имя пользователя

            Console.WriteLine($"{name} отправил сообщение {message.Text}");
            Console.WriteLine(a.S);
            switch (message.Text)
            {
            case "/start":
                string text =
                    @"Cписок команд:
/start - запуск бота
/inline - вывод меню 
/pogoda";
                await Bot.SendTextMessageAsync(message.From.Id, text);     //чат

                break;

            case "/pogoda":

                await Bot.SendTextMessageAsync(message.From.Id, a.S);

                break;

            default:
                break;
            }
        }
Exemplo n.º 9
0
        private static async void BotOnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            Bot.Types.Message msg = e.Message;

            if (msg == null)
            {
                return;
            }

            if (msg.Type == Bot.Types.Enums.MessageType.TextMessage)
            {
                AIMLbot.Bot AI = new AIMLbot.Bot();

                AI.loadSettings(); // This loads the settings from the config folder

                AI.loadAIMLFromFiles();

                AIMLbot.User me_aiml = new AIMLbot.User("dd", AI);

                Request r   = new Request(msg.Text, me_aiml, AI);
                Result  res = AI.Chat(r);
                string  s   = res.ToString();
                await bot.SendTextMessageAsync(msg.Chat.Id, s);
            }

            //if (msg.Type == Bot.Types.Enums.MessageType.TextMessage)
            //{
            //    //await bot.SendTextMessageAsync(msg.Chat.Id, "Здарова " + msg.From.FirstName
            //}
        }
Exemplo n.º 10
0
 /// <summary>
 /// Метод, в котором разработано ОСНОВНОЕ меню пункта ПРИЁМНОЙ КОМИССИИ
 /// </summary>
 /// <param name="e"></param>
 /// <param name="Client"></param>
 public static async void PriemnayaKomissiya(Telegram.Bot.Args.MessageEventArgs e, TelegramBotClient Client)
 {
     var    message = e.Message;
     string json    = HelpingFunctions.ReturnTextFromFile("PriemnayaKomissiyaSer.txt");
     ReplyKeyboardMarkup KeyBoard = JsonSerializer.Deserialize <ReplyKeyboardMarkup>(json);
     await Client.SendTextMessageAsync(message.Chat.Id, "Выберите интересующий Вас город или вернитесь в главное меню", replyMarkup : KeyBoard);
 }
Exemplo n.º 11
0
 /// <summary>
 /// Метод с реализацией части раздела "приемная комиссия" по г.Санкт-Петербург
 /// </summary>
 /// <param name="e"></param>
 /// <param name="Client"></param>
 public static async void PriemPeterburg(Telegram.Bot.Args.MessageEventArgs e, TelegramBotClient Client)
 {
     var    message = e.Message;
     string json    = HelpingFunctions.ReturnTextFromFile("PriemPeterburgSer.txt");
     ReplyKeyboardMarkup KeyBoard = JsonSerializer.Deserialize <ReplyKeyboardMarkup>(json);
     await Client.SendTextMessageAsync(message.Chat.Id, "Выберите нужную информацию или вернитесь в главное меню:", replyMarkup : KeyBoard);
 }
Exemplo n.º 12
0
        /// <summary>
        /// Метод, в котором разработано меню с кнопками, содержащими в себе некоторые ПОЛЕЗНЫЕ ССЫЛКИ
        /// </summary>
        /// <param name="e"></param>
        public static async void ShowHelpfulLinks(Telegram.Bot.Args.MessageEventArgs e, TelegramBotClient Client)
        {
            var message = e.Message;

            var menuKeyboard = new InlineKeyboardMarkup(new[]
            {
                new[]
                {
                    InlineKeyboardButton.WithUrl("Сайт Московского кампуса", "https://www.hse.ru"),
                    InlineKeyboardButton.WithUrl("Сайт Питерского кампуса", "https://spb.hse.ru")
                },
                new[]
                {
                    InlineKeyboardButton.WithUrl("Сайт Нижегородского кампуса", "https://nnov.hse.ru"),
                    InlineKeyboardButton.WithUrl("Сайт Пермского кампуса", "https://perm.hse.ru")
                },
                new[]
                {
                    InlineKeyboardButton.WithUrl("Группа для абитуриентов в VK", "https://vk.com/ba_hse")
                },
                new[]
                {
                    InlineKeyboardButton.WithUrl("Вышка в Facebook", "https://www.facebook.com/hse.ru"),
                    InlineKeyboardButton.WithUrl("Вышка в Instagram", "https://www.instagram.com/hse_ru/"),
                    InlineKeyboardButton.WithUrl("Вышка в VK", "https://vk.com/hse_university")
                }
            });

            await Client.SendTextMessageAsync(message.Chat.Id, "Выберите нужную сcылку:", replyMarkup : menuKeyboard);

            await Client.SendStickerAsync(message.Chat.Id, "CAACAgIAAxkBAAEOx1deblVYpNjC3stEpnKftOyRiZoO3gACVgEAAk-cEwJ5KHBO9mHQYBgE");
        }
Exemplo n.º 13
0
        /// <summary>
        /// Получает сообщения в фоновом режиме
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public void MessageListener(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            this.w.Dispatcher.Invoke(() =>
            {
                MessageRec message = new MessageRec(DateTime.Now.ToLongTimeString(), e.Message.Chat.Id, e.Message.Chat.FirstName, e.Message.Text, e.Message.Type.ToString());
                MessageLog.Add(message);

                BotContact botContact = new BotContact(e.Message.Chat.FirstName, e.Message.Chat.Id);

                if (!ContactList.Contains(botContact))
                {
                    ContactList.Add(botContact);
                }

                if (e.Message.Type.ToString() == "Text")
                {
                    string messageText = e.Message.Text.ToLower();
                    ReplyOnText(messageText, e.Message.Chat.Id);
                }
                else
                {
                    DownLoad(IdentifiedFile(e));
                }
            });
        }
Exemplo n.º 14
0
 /// <summary>
 /// Формирует имя собеседника, отображаемое в ленте чата.
 /// </summary>
 /// <param name="e"></param>
 /// <returns>
 /// Для чата типа личное сообщение (private)
 /// Если у пользователя прописаны поля имя и фамилия, составляем из них
 /// Если нет, то берём просто username
 /// Для группового чата (group) берёт заголовок чата
 /// </returns>
 private string ComposeChatPartnerName(Telegram.Bot.Args.MessageEventArgs e)
 {
     if (e.Message.Chat.Type == ChatType.Private)
     {
         bool emptyFN = String.IsNullOrEmpty(e.Message.From.FirstName);
         bool emptyLN = String.IsNullOrEmpty(e.Message.From.LastName);
         if (emptyFN && emptyLN)
         {
             return(e.Message.From.Username);
         }
         else if (emptyFN)
         {
             return(e.Message.From.LastName);
         }
         else if (emptyLN)
         {
             return(e.Message.From.FirstName);
         }
         else
         {
             return(e.Message.From.FirstName + " " + e.Message.From.LastName);
         }
     }
     else             // Chat.Type == ChatType.Group.
     // Для групповых чатов отображаемое имя - заголовок чата.
     // Не проверял, но предполагаю, что строка кода ниже
     // подойдёт и для сообщения из supergroup и каналов новостей
     {
         return(e.Message.Chat.Title);
     }
 }
Exemplo n.º 15
0
        private static void Api_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            if (e == null || e.Message == null || string.IsNullOrEmpty(e.Message.Text))
            {
                return;
            }

            var m = e.Message;

            if (Devs.Contains(m.From.Id))
            {
                Console.WriteLine($"{m.MessageId} - {m.From.FirstName}: {m.Text}");
                switch (m.Text.Replace("@wwcleanbot", ""))
                {
                case "/clearqueue":
                    if (m.Date < DateTime.Now.AddSeconds(-1))
                    {
                        return;
                    }
                    ClearQueue();
                    break;

                default:
                    break;
                }
            }
        }
Exemplo n.º 16
0
        private static async void BotOnMessageReceived(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            var message = e.Message;                                        //сообщение от пользователя

            if (message == null || message.Type != MessageType.TextMessage) //если сообщение не текст - выходим из функции
            {
                return;
            }

            string name = $"{message.From.FirstName} {message.From.LastName}"; //имя пользователя

            Console.WriteLine($"{name} отправил сообщение {message.Text}");

            switch (message.Text)
            {
            case "/start":
                string text =
                    @"Cписок команд:
/start - запуск бота
/inline - вывод меню 
/keyboard - вывод клавиатуры";
                await Bot.SendTextMessageAsync(message.From.Id, text);     //чат

                break;

            case "/inline":
                //кнопки
                var inlineKeyboard = new InlineKeyboardMarkup(new[]
                {
                    new[]
                    {
                        InlineKeyboardButton.WithCallbackData("Пункт 1.1"),
                        InlineKeyboardButton.WithCallbackData("Пункт 1.2")
                    },
                    new[]
                    {
                        InlineKeyboardButton.WithCallbackData("Пункт 2.1"),
                        InlineKeyboardButton.WithCallbackData("Пункт 2.2")
                    }
                });
                await Bot.SendTextMessageAsync(message.From.Id, "Выберите", replyMarkup : inlineKeyboard);

                break;

            case "/keyboard":
                var replyKeyboard = new ReplyKeyboardMarkup(new[]
                {
                    new KeyboardButton("Хочу узнать погоду")
                });
                await Bot.SendTextMessageAsync(message.Chat.Id, "Сообщение ", replyMarkup : replyKeyboard);

                break;

            default:
                break;
            }
        }
Exemplo n.º 17
0
        /// <summary>
        /// Скачать аудиосообщение
        /// </summary>
        /// <param name="messageEvent"></param>
        public void DownloadVoice(Telegram.Bot.Args.MessageEventArgs messageEvent)
        {
            DownLoadFile(messageEvent.Message.Voice.FileId, $@"Voice/{DateTime.Now.ToString("yyyy.MM.dd HH_mm_ss")}.ogg");

            mainWindow.Dispatcher.Invoke(() =>
            {
                currentUser.AddMessage(new Message(currentUser.FirstName, "Я отправил аудиосообщение", DateTime.Now));
            });

            SendMessage("Я скачал данное аудиосообщение", currentUser);
        }
Exemplo n.º 18
0
        /// <summary>
        /// Скачать документ
        /// </summary>
        /// <param name="messageEvent"></param>
        public void DownloadDocument(Telegram.Bot.Args.MessageEventArgs messageEvent)
        {
            DownLoadFile(messageEvent.Message.Document.FileId, @"Document/" + messageEvent.Message.Document.FileName);

            mainWindow.Dispatcher.Invoke(() =>
            {
                currentUser.AddMessage(new Message(currentUser.FirstName, "Я отправил документ", DateTime.Now));
            });

            SendMessage("Я скачал данный файл", currentUser);
        }
Exemplo n.º 19
0
        /// <summary>
        /// Скачать фото
        /// </summary>
        /// <param name="messageEvent"></param>
        public void DownloadPhoto(Telegram.Bot.Args.MessageEventArgs messageEvent)
        {
            DownLoadFile(messageEvent.Message.Photo[messageEvent.Message.Photo.Length - 1].FileId, $@"Photo/{DateTime.Now.ToString("yyyy.MM.dd HH_mm_ss")}.jpg");

            mainWindow.Dispatcher.Invoke(() =>
            {
                currentUser.AddMessage(new Message(currentUser.FirstName, "Я отправил фото", DateTime.Now));
            });

            SendMessage("Я скачал данное фото", currentUser);
        }
Exemplo n.º 20
0
        /// <summary>
        /// Метод, реализующий отправку документов пользователю
        /// </summary>
        /// <param name="path"></param>
        /// <param name="e"></param>
        public static async void SendDocument(string path, Telegram.Bot.Args.MessageEventArgs e, TelegramBotClient Client)
        {
            var message = e.Message;

            using (Stream stream = System.IO.File.OpenRead(path))
            {
                await Client.SendDocumentAsync(
                    /* chatId: */ message.Chat.Id,
                    /* document: */ new InputOnlineFile( /* content: */ stream, /* fileName: */ path)
                    );
            }
        }
Exemplo n.º 21
0
        private static async void Bot_OnMessageReceived(object sender, Telegram.Bot.Args.MessageEventArgs e) //появилось когда создали Bot.OnMessage
        {
            var message = e.Message;                                                                         // смс от пользователя

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }

            Console.WriteLine($"{message.Text} от {message.From.FirstName}");

            switch (message.Text)
            {
            case "/start":
                string text =
                    @"Привет, я бот conciousness
отправь имя депутата";
                await /*чтобы обратывалось смс от неск-х юзеров*/ Bot.SendTextMessageAsync(message.From.Id /* находим отправителя по айПи*/, text /*отправляем текс*/);

                break;

            case "Дастан Бекешев":
                await Bot.SendTextMessageAsync(message.From.Id, @"голосовал против: 
1)Законопроект о манипулировании информацией в интернете
2)Законопроект о приостановлении действия некоторых норм конституционного закона «О выборах Президента КР и депутатов Жогорку Кенеша КР»

Инициатор:
1)Избирательный залог и избирательный порог в ходе выборов депутатов Жогорку Кенеша Кыргызской Республики
2)Совершенствование законодательства – помощь молодым специалистам
3)Мораторий на разработку и добычу урана на биосферной территории «Ыссык-Кёль»
4)Узаконить онлайн-петиции
");

                break;

            case "Каныбек Иманалиев":
                await Bot.SendTextMessageAsync(message.From.Id, @"Инициатор
1)Поправки по снижению избирательного барьера на парламентских выборах с 9 до 7% ");

                break;

            case "":
                await Bot.SendTextMessageAsync(message.From.Id, @"Инициатор
1)пустоты");

                break;

            default:
                await Bot.SendTextMessageAsync(message.From.Id, "введите Иф депутата");

                break;
            }
        }
Exemplo n.º 22
0
        private static async void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            Message msg = e.Message;

            if (msg == null)
            {
                return;
            }

            // Если сообщение текстовое
            if (msg.Type == MessageType.Text)
            {
                await Bot.SendTextMessageAsync(msg.Chat.Id, "Hello, " + msg.From.FirstName + "!");
            }
        }
Exemplo n.º 23
0
        private static void Bot_OnMessage(object sender, Bot.Args.MessageEventArgs e)
        {
            if (e.Message.Type == Telegram.Bot.Types.Enums.MessageType.TextMessage)
            {
                switch (e.Message.Text)
                {
                case "Oi":
                    Bot.SendTextMessageAsync(e.Message.Chat.Id, "Oi nada");
                    break;

                case "Olá":
                    Bot.SendTextMessageAsync(e.Message.Chat.Id, "Olá Pra quem?");
                    break;
                }
            }
        }
Exemplo n.º 24
0
 private static void Bot_Message(object sender, Telegram.Bot.Args.MessageEventArgs e)
 {
     try
     {
         if (e.Message.Type == MessageType.Text)
         {
             ChatId = e.Message.Chat.Id;
             var message = e.Message.Text;
             if (message.Length > 0 && message[0] == '/')
             {
                 ExecuteCommand(message, e.Message.Chat.Id);
             }
         }
     }
     catch { }
 }
Exemplo n.º 25
0
        /*new ReplyKeyboardMarkup(new []
         *                                                                                                                                                      {
         *                                                                                                                                                              new[] { new KeyboardButton { Text = "\U0001F1FA\U0001F1E6 UA" } },
         *                                                                                                                                                              new[] { new KeyboardButton { Text = "\U0001F1F7\U0001F1FA RU" } },
         *                                                                                                                                                              new[] { new KeyboardButton { Text = "\U0001F1FA\U0001F1F8 EN" } }
         *                                                                          });*/

        private void BotOnMessage(object sender, BotMessageEventArgs e)
        {
            var message     = e.Message;
            var messageFrom = message.From;
            var isMaster    = messageFrom.Id == _masterChatID;

#if DEBUG
            if (sender is ITelegramBotClient iBot && isMaster)
            {
                var sendTask = e.Message.Text.Equals("/test", StringComparison.InvariantCultureIgnoreCase)
                                                                ? iBot.SendTextMessageAsync(message.Chat, "Please choose your language", replyMarkup: _testMarkup)
                                                                : iBot.SendTextMessageAsync(message.Chat, "Got your <em>message</em>", ParseMode.Html, replyMarkup: new ReplyKeyboardRemove(), replyToMessageId: message.MessageId);

                var msg = sendTask.GetAwaiter().GetResult();
            }
#endif

            if (message.Type == MessageType.Text)
            {
                var entities = message.Entities;
                var text     = message.Text;

                if (entities != null && entities.Length > 0 && entities[0] is MessageEntity entity &&
                    entity.Type == MessageEntityType.BotCommand && entity.Offset == 0)
                {
                    if (ParseCommand(text, entity) is Command command)
                    {
                        var args = text.Substring(entity.Length).Split("\u0020".ToCharArray(), StringSplitOptions.RemoveEmptyEntries);
                        _log.Debug("TeleBot got command {0}({1})", command, String.Join(", ", args));
                        Command?.Invoke(this, new CommandEventArgs(messageFrom.Id, isMaster, command, args));
                    }
                    else
                    {
                        _log.Info("TeleBot got unrecognized command message: " + text);
                        // TODO: Unknown command?
                    }
                }
                else
                {
                    _log.Debug("TeleBot got message: " + text);
                    Message?.Invoke(this, new MessageEventArgs(messageFrom.Id, isMaster, text));
                }
            }
Exemplo n.º 26
0
        private static void Api_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            var m = e.Message;

            if (Devs.Contains(m.From.Id))
            {
                Console.WriteLine($"{m.MessageId} - {m.From.FirstName}: {m.Text}");
                switch (m.Text.Replace("@wwcleanbot", ""))
                {
                case "/clearqueue":
                    if (m.Date < DateTime.Now.AddSeconds(-1))
                    {
                        return;
                    }
                    Console.WriteLine("Clearing Queue!");

                    Commands.Clear();
                    mQueue.Clear();
                    total = 0;
                    WWAPI.StartReceiving();
                    var current = 0;
                    while (true)
                    {
                        //foreach (var p in Process.GetProcessesByName("Werewolf Control"))
                        //    p.Kill();
                        if ((total - current) < 50 && total != 0)
                        {
                            WWAPI.StopReceiving();
                            Api.SendTextMessageAsync(DevGroup, $"Cleared {total} messages from queue. Inspecting for spammers.");
                            CheckMessages();
                            break;
                        }
                        current = total;
                        Thread.Sleep(1000);
                    }
                    break;

                default:
                    break;
                }
            }
        }
Exemplo n.º 27
0
        private static async void BotOnMessageRecived(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            var message = e.Message;

            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }
            else
            {
                Console.WriteLine(message.Text);
            }

            switch (message.Text)
            {
            case "/start":
                string text =
                    @"Список команд:
/start - запуск бота
/inline - вывод меню
/keyboard - вывод клавиатуры";
                await Bot.SendTextMessageAsync(message.From.Id, text);

                break;

            case "/inline":
                await SendInlineKeyboard(message);

                break;

            case "/keyboard":
                await SendReplyKeyboard(message);

                break;

            default:
                await SendApiAiResponse(message);

                break;
            }
        }
Exemplo n.º 28
0
        public async static void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            chat_id = e.Message.Chat.Id;
            if (e.Message.Text == "Search")
            {
                ShowKeyboard();
            }
            else if (e.Message.Text.Contains('='))
            {
                string text       = e.Message.Text;
                int    length     = text.Length;
                string _out       = text.Substring(length - 3).Contains('=') ? text.Substring(length - 2) : text.Substring(length - 3);
                string datastring = null;

                /*
                 * try
                 * {
                 *  string filter = e.Message.Text.Split(' ')[1];
                 *  string address = "http://apigetfile.azurewebsites.net/HostPoint/GetFile?filter=" + filter;
                 *  datastring = client.DownloadString(address).Replace('\"', ' ');
                 *
                 *  byte[] rawdata = Convert.FromBase64String(datastring);
                 *  System.IO.File.WriteAllBytes($"log.{_out}", rawdata);
                 *  using (var stream = System.IO.File.Open($"log.{_out}", FileMode.OpenOrCreate))
                 *  {
                 *      InputOnlineFile iof = new InputOnlineFile(stream);
                 *      iof.FileName = $"Chery Blossom.{_out}";
                 *      await Bot.SendDocumentAsync(chat_id, iof, "");
                 *  }
                 *
                 * }
                 * catch (Exception)
                 * {
                 *
                 *  Bot.SendTextMessageAsync(chat_id, $"Error: incorrect filters");
                 * }
                 */
            }
        }
Exemplo n.º 29
0
        private static void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs e)
        {
            if (e.Message.Type == Telegram.Bot.Types.Enums.MessageType.Text)
            {
                if (e.Message.Text.Equals("/hello"))
                {
                    Bot.SendTextMessageAsync(e.Message.Chat.Id, "Hallo " + e.Message.From.FirstName + " nih tak ksh gambar");

                    string path = Directory.GetCurrentDirectory() + "//akakom.png";
                    if (File.Exists(path))
                    {
                        SendPhoto(e.Message.Chat.Id.ToString(), path, TOKEN);
                    }
                }
                else if (e.Message.Text.Equals("/absen"))
                {
                    //ABSENSI_HRDBEntities db = new ABSENSI_HRDBEntities();
                    //List<tAbsenUser_mobile> user = db.tAbsenUser_mobile.ToList();
                    //List<String> Namas = new List<string>();
                    //if (user.Count > 0)
                    //{
                    //    foreach (tAbsenUser_mobile a in user)
                    //    {
                    //        Bot.SendTextMessageAsync(e.Message.Chat.Id, a.txtUserId);
                    //    }
                    //}else
                    //{
                    //    Bot.SendTextMessageAsync(e.Message.Chat.Id, "Not Found");
                    //}

                    Bot.SendTextMessageAsync(e.Message.Chat.Id, "Not Found");
                }
                else
                {
                    Bot.SendTextMessageAsync(e.Message.Chat.Id, "Hello " + e.Message.From.FirstName);
                }
            }
        }
Exemplo n.º 30
0
        ///사용자로 부터 Message Recv
        private async void Bot_OnMessage(object sender, Telegram.Bot.Args.MessageEventArgs messageEventArgs)
        {
            /// Message 객체
            var message = messageEventArgs.Message;

            //this._ChatId = message.Chat.Id;
            Console.WriteLine($"Chat.Id = {message.Chat.Id}");

            /// 예외처리
            //if (message == null || message.Type != MessageType.TextMessage) return;
            if (message == null || message.Type != MessageType.Text)
            {
                return;
            }
            Console.WriteLine(message.Text);
            //Console.WriteLine(message.Chat.Id);

            // "/사용자추가" 라는 명령을 받음
            if (message.Text.StartsWith("/help"))
            {
                OnCount(null, null);
                await Bot.SendTextMessageAsync(message.Chat.Id, "/count \n/realdatas ");
            }
            else if (message.Text.StartsWith("/count"))
            {
                OnCount(null, null);
                await Bot.SendTextMessageAsync(message.Chat.Id, "Count = " + _count);
            }
            else if (message.Text.StartsWith("/realdatas"))
            {
                OnRealDatasCount(null, null);
                await Bot.SendTextMessageAsync(message.Chat.Id, "Count = " + _count);
            }
            else
            {
                await Bot.SendTextMessageAsync(message.Chat.Id, message.Text);
            }
        }
Exemplo n.º 31
0
        private async void OnTelegramMessageReceived(object sender, MessageEventArgs messageEventArgs)
        {
            var message = messageEventArgs.Message;

            if (message == null || message.Type != MessageType.TextMessage)
                return;

            var answerTextmessage = "";

            if (session.Profile == null || session.Inventory == null)
            {
                return;
            }

            var messagetext = message.Text.Split(' ');

            switch (messagetext[0].ToLower())
            {
                case "/top":
                    var times = 10;
                    var sortby = "cp";
                    if (messagetext.Length == 3)
                    {
                        times = Convert.ToInt32(messagetext[2]);
                    }
                    if (messagetext.Length >= 2)
                    {
                        sortby = messagetext[1];
                    }

                    IEnumerable<PokemonData> topPokemons;
                    if (sortby.Equals("iv"))
                    {
                        topPokemons = await session.Inventory.GetHighestsPerfect(times);
                    }
                    else
                    {
                        topPokemons = await session.Inventory.GetHighestsCp(times);
                    }

                    foreach (var pokemon in topPokemons)
                    {
                        answerTextmessage += session.Translation.GetTranslation(TranslationString.ShowPokeTemplate, new object[] { pokemon.Cp, PokemonInfo.CalculatePokemonPerfection(pokemon).ToString("0.00"), session.Translation.GetPokemonTranslation(pokemon.PokemonId) });

                        if (answerTextmessage.Length > 3800)
                        {
                            SendMessage(message.Chat.Id, answerTextmessage);
                            answerTextmessage = "";
                        }

                    }
                    SendMessage(message.Chat.Id, answerTextmessage);
                    break;
                case "/all":
                    var myPokemons = await session.Inventory.GetPokemons();
                    var allMyPokemons = myPokemons.ToList();

                    IEnumerable<PokemonData> allPokemons = await session.Inventory.GetHighestsCp(allMyPokemons.Count); ;
                    if (messagetext.Length == 2)
                    {
                        if (messagetext[1] == "iv")
                        {
                            allPokemons = await session.Inventory.GetHighestsPerfect(allMyPokemons.Count);
                        }
                    }

                    foreach (var pokemon in allPokemons)
                    {
                        answerTextmessage += session.Translation.GetTranslation(TranslationString.ShowPokeTemplate, new object[] { pokemon.Cp, PokemonInfo.CalculatePokemonPerfection(pokemon).ToString("0.00"), session.Translation.GetPokemonTranslation(pokemon.PokemonId) });

                        if (answerTextmessage.Length > 3800)
                        {
                            SendMessage(message.Chat.Id, answerTextmessage);
                            answerTextmessage = "";
                        }
                    }
                    SendMessage(message.Chat.Id, answerTextmessage);
                    break;
                case "/profile":
                    var stats = session.Inventory.GetPlayerStats().Result;
                    var stat = stats.FirstOrDefault();

                    var myPokemons2 = await session.Inventory.GetPokemons();
                    answerTextmessage += session.Translation.GetTranslation(TranslationString.ProfileStatsTemplateString,
                        new object[]
                         {
                             stat.Level,
                             session.Profile.PlayerData.Username,
                             stat.Experience, stat.NextLevelXp,
                             stat.PokemonsCaptured,
                             stat.PokemonDeployed,
                             stat.PokeStopVisits,
                             stat.EggsHatched,
                             stat.Evolutions,
                             stat.UniquePokedexEntries,
                             stat.KmWalked,
                             myPokemons2.ToList().Count,
                             session.Profile.PlayerData.MaxPokemonStorage
                         });
                    SendMessage(message.Chat.Id, answerTextmessage);
                    break;
                case "/pokedex":
                    var pokedex = session.Inventory.GetPokeDexItems().Result;
                    var pokedexSort = pokedex.OrderBy(x => x.InventoryItemData.PokedexEntry.PokemonId);

                    answerTextmessage += session.Translation.GetTranslation(TranslationString.PokedexCatchedTelegram);
                    foreach (var pokedexItem in pokedexSort)
                    {
                        answerTextmessage += session.Translation.GetTranslation(TranslationString.PokedexPokemonCatchedTelegram, Convert.ToInt32(pokedexItem.InventoryItemData.PokedexEntry.PokemonId), session.Translation.GetPokemonTranslation(pokedexItem.InventoryItemData.PokedexEntry.PokemonId), pokedexItem.InventoryItemData.PokedexEntry.TimesCaptured, pokedexItem.InventoryItemData.PokedexEntry.TimesEncountered);

                        if (answerTextmessage.Length > 3800)
                        {
                            SendMessage(message.Chat.Id, answerTextmessage);
                            answerTextmessage = "";
                        }
                    }

                    var pokemonsToCapture = Enum.GetValues(typeof(PokemonId)).Cast<PokemonId>().Except(pokedex.Select(x => x.InventoryItemData.PokedexEntry.PokemonId));

                    SendMessage(message.Chat.Id, answerTextmessage);
                    answerTextmessage =  "";

                    answerTextmessage += session.Translation.GetTranslation(TranslationString.PokedexNeededTelegram);

                    foreach (var pokedexItem in pokemonsToCapture)
                    {
                        if (Convert.ToInt32(pokedexItem) > 0)
                        {
                            answerTextmessage += session.Translation.GetTranslation(TranslationString.PokedexPokemonNeededTelegram, Convert.ToInt32(pokedexItem), session.Translation.GetPokemonTranslation(pokedexItem));

                            if (answerTextmessage.Length > 3800)
                            {
                                SendMessage(message.Chat.Id, answerTextmessage);
                                answerTextmessage = "";
                            }
                        }
                    }
                    SendMessage(message.Chat.Id, answerTextmessage);

                    break;
                case "/loc":
                    SendLocation(message.Chat.Id, session.Client.CurrentLatitude, session.Client.CurrentLongitude);
                    break;
                case "/items":
                    var inventory = session.Inventory;
                    answerTextmessage += session.Translation.GetTranslation(TranslationString.CurrentPokeballInv,
                        new object[]
                        {
                            await inventory.GetItemAmountByType(ItemId.ItemPokeBall),
                            await inventory.GetItemAmountByType(ItemId.ItemGreatBall),
                            await inventory.GetItemAmountByType(ItemId.ItemUltraBall),
                            await inventory.GetItemAmountByType(ItemId.ItemMasterBall)
                        });
                    answerTextmessage += "\n";
                    answerTextmessage += session.Translation.GetTranslation(TranslationString.CurrentPotionInv,
                       new object[]
                       {
                            await inventory.GetItemAmountByType(ItemId.ItemPotion),
                            await inventory.GetItemAmountByType(ItemId.ItemSuperPotion),
                            await inventory.GetItemAmountByType(ItemId.ItemHyperPotion),
                            await inventory.GetItemAmountByType(ItemId.ItemMaxPotion)
                       });
                    answerTextmessage += "\n";
                    answerTextmessage += session.Translation.GetTranslation(TranslationString.CurrentReviveInv,
                        new object[]
                        {
                            await inventory.GetItemAmountByType(ItemId.ItemRevive),
                            await inventory.GetItemAmountByType(ItemId.ItemMaxRevive),
                        });
                    answerTextmessage += "\n";
                    answerTextmessage += session.Translation.GetTranslation(TranslationString.CurrentMiscItemInv,
                        new object[]
                        {
                            await session.Inventory.GetItemAmountByType(ItemId.ItemRazzBerry) +
                            await session.Inventory.GetItemAmountByType(ItemId.ItemBlukBerry) +
                            await session.Inventory.GetItemAmountByType(ItemId.ItemNanabBerry) +
                            await session.Inventory.GetItemAmountByType(ItemId.ItemWeparBerry) +
                            await session.Inventory.GetItemAmountByType(ItemId.ItemPinapBerry),
                            await session.Inventory.GetItemAmountByType(ItemId.ItemIncenseOrdinary) +
                            await session.Inventory.GetItemAmountByType(ItemId.ItemIncenseSpicy) +
                            await session.Inventory.GetItemAmountByType(ItemId.ItemIncenseCool) +
                            await session.Inventory.GetItemAmountByType(ItemId.ItemIncenseFloral),
                            await session.Inventory.GetItemAmountByType(ItemId.ItemLuckyEgg),
                            await session.Inventory.GetItemAmountByType(ItemId.ItemTroyDisk)
                        });
                    SendMessage(message.Chat.Id, answerTextmessage);
                    break;
                case "/status":
                    SendMessage(message.Chat.Id, Console.Title);
                    break;
                case "/restart":
                    Process.Start(Assembly.GetEntryAssembly().Location);
                    SendMessage(message.Chat.Id, "Restarted Bot. Closing old Instance... BYE!");
                    Environment.Exit(-1);
                    break;
                default:
                    answerTextmessage += session.Translation.GetTranslation(TranslationString.HelpTemplate);
                    SendMessage(message.Chat.Id, answerTextmessage);
                    break;
            }
        }