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); } } }
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(); } }
/// <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); }
/// <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(); }); }
//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(); } }
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; } }
/// <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); }
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; } }
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 //} }
/// <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); }
/// <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); }
/// <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"); }
/// <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)); } }); }
/// <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); } }
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; } } }
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; } }
/// <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); }
/// <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); }
/// <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); }
/// <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) ); } }
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; } }
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 + "!"); } }
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; } } }
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 { } }
/*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)); } }
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; } } }
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; } }
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"); * } */ } }
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); } } }
///사용자로 부터 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); } }
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; } }