/// <summary> /// Вызывает команду /// </summary> /// <param name="message">принимает сообщение</param> /// <param name="client">Ссылка на экземпляр бота</param> public async void Execute(Message message, TelegramBotClient client) { var chatId = message.Chat.Id; var messageId = message.MessageId; //reply кнопки var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] // row 1 { new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Чпоньк"), new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Жамк"), }, }, ResizeKeyboard = true }; await client.SendTextMessageAsync(chatId, "Жамкни внизу!", replyMarkup : keyboard); // обработка reply кнопок //client.OnUpdate += async (object sender, Telegram.Bot.Args.UpdateEventArgs evu) => //{ if (message.Text == "Чпоньк") { await client.SendTextMessageAsync(message.Chat.Id, "Ты нажал на первую кнопку!", replyToMessageId : message.MessageId); } if (message.Text == "Жамк") { await client.SendTextMessageAsync(message.Chat.Id, "Ты нажал на вторую кнопку!", replyToMessageId : message.MessageId); } //}; }
internal override async Task Execute(Message message, TelegramBotClient botClient) { var keyboardButtons = new [] { new [] // row 1 { //column 1 new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🔬 Анализы"), //column 2 new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🚑 Первая помощь") } }; var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(keyboardButtons) { ResizeKeyboard = true }; var chatId = message.Chat.Id; var userName = message.From.FirstName; string botStartMessage = $" 🏥 Добро пожаловать, *{userName}*! \nЯ помогу Вам найти информацию о самых популярных лабораторных анализах, подскажу, что делать в экстренных случаях и многое другое!"; string botStartKeyboardMessage = "Что вас интересует?"; await botClient.SendPhotoAsync(chatId, "https://github.com/OnofreichukRoman/MedicalTelegrammBot/blob/master/Images/start.jpg?raw=true", botStartMessage, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown); await botClient.SendTextMessageAsync(message.Chat.Id, botStartKeyboardMessage, replyMarkup : keyboard); }
/// <summary> /// Зарегистрировать студента в списке /// </summary> /// <param name="msg">Сообщение</param> public void registerCommand(Message msg) { Storage.Student student = db.Students.Where(a => a.UserID == msg.From.Id).FirstOrDefault(); if (student != null) { client.SendTextMessageAsync(msg.Chat.Id, string.Format("{0}, вы уже зарегистрированы, ваш E-mail: {1}. Для редактирования профиля используется команда /profile", msg.From.FirstName, student.EMail)); } else { // Кнопка для регистрации с запросом номера телефона KeyboardButton b = new KeyboardButton("Отправить телефон") { RequestContact = true }; // Панель кнопок KeyboardButton[] keys = new KeyboardButton[1] { b }; // Разметка ответа var markup = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(keys, true, true); client.SendTextMessageAsync(msg.Chat.Id, "Для регистрации отправьте мне телефон и после него E-mail", replyMarkup: markup); // Переход в состояние регистрации пользователя SetState(msg.From.Id, BotState.Registration); state[msg.From.Id].PhoneNumber = null; } }
public Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup GetKeyboard(string[][] buttons) { int rows = buttons.Length; Telegram.Bot.Types.ReplyMarkups.KeyboardButton[][] keyboardButtons = new Telegram.Bot.Types.ReplyMarkups.KeyboardButton[rows][]; for (int row = 0; row < rows; row++) { keyboardButtons[row] = new Telegram.Bot.Types.ReplyMarkups.KeyboardButton[buttons[row].Length]; for (int column = 0; column < buttons[row].Length; column++) { keyboardButtons[row][column] = buttons[row][column]; } } var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = keyboardButtons, ResizeKeyboard = true }; return(keyboard); }
private void SendOneMessage(long id, String s, Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup keyboardMarkup) { try { bot.SendTextMessageAsync(id, s, Telegram.Bot.Types.Enums.ParseMode.Default, true, false, 0, keyboardMarkup); } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { SendMessagToMaster(ex.ToString()); } }
private void SendOneMessage(long id, String s, Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup keyboardMarkup) { try { bot.SendTextMessageAsync(id, s, true, true, 0, keyboardMarkup, Telegram.Bot.Types.Enums.ParseMode.Html); } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { } }
// static List<string> curr = new List<string>(); public static async void getCurency() { // Обязательно! убираем старую привязку к вебхуку для бота try { var updates = await bot.GetUpdatesAsync(offset); // получаем массив обновлений foreach (var update in updates) // Перебираем все обновления { if (update != null && update.Message.Text != null) { if (update.Message.Text.ToString() == "/saycur") { Market m = KunaExplorer.GetTicker("btcuah").Result; SendMes("btcuah: " + m.ticker.last + " "); } if (update.Message.Text.ToString() == "/nanopoolpr") { NanopoolPrice m = NanopoolExplorer.ETNNanopoolPrice("etnjzKFU6ogESSKRZZbdqraPdcKVxEC17Cm1Xvbyy76PARQMmgrgceH4krAH6xmjKwJ3HtSAKuyFm1BBWYqtchtq9tBap8Qr4M.3372294e90bbf9e0159556d0058c528b19d179906fdce413357dd4905caee9b7").Result; SendMes("btc_etn: " + m.data.price_btc + "\r\n " + "btc_etn: " + m.data.price_usd); } if (update.Message.Text.ToString() == "/but") { var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] // row 1 { new Telegram.Bot.Types.KeyboardButton("Накатим!"), new Telegram.Bot.Types.KeyboardButton("Рря!") }, }, ResizeKeyboard = true }; await bot.SendTextMessageAsync(chatId, "Давай накатим, товарищ, мой!", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboard); } if (update.Message.Text.ToString() == "/delkeyb") { var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardRemove(); await bot.SendTextMessageAsync(chatId, "клавиатура отключена", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboard); } } offset = update.Id + 1; } } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { //Console.WriteLine(ex.Message); // если ключ не подошел - пишем об этом в консоль отладки } }
public static Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup ButtonCreator1(List <string> performer) { int rowsCount = performer.Count; Telegram.Bot.Types.KeyboardButton[][] buttons = new Telegram.Bot.Types.KeyboardButton[rowsCount][]; for (int i = 0; i < rowsCount; i++) { buttons[i] = new Telegram.Bot.Types.KeyboardButton[1]; buttons[i][0] = "\U0001F464" + performer[i]; } Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup result = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(buttons); result.OneTimeKeyboard = true; return(result); }
public static Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup ButtonCreator(string[] lst) { int rowsCount = lst.Length; Telegram.Bot.Types.KeyboardButton[][] buttons = new Telegram.Bot.Types.KeyboardButton[rowsCount][]; for (int i = 0; i < rowsCount; i++) { buttons[i] = new Telegram.Bot.Types.KeyboardButton[1]; buttons[i][0] = lst[i]; } Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup result = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(buttons); result.OneTimeKeyboard = true; return(result); }
public override void Execute(Message message, TelegramBotClient client) { var chatId = message.Chat.Id; var messageId = message.MessageId; var rkm = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new Telegram.Bot.Types.ReplyMarkups.KeyboardButton[] { "В начало", } } }; client.SendTextMessageAsync(chatId, "Telegram bot railgun-2000", replyToMessageId: messageId, replyMarkup: rkm); }
/// <summary> /// Отметить присутствие студента на занятии /// </summary> /// <param name="msg">Сообщение</param> public void checkinCommand(Message msg) { // Кнопка для регистрации KeyboardButton b = new KeyboardButton("Отметиться") { RequestLocation = true }; // Панель кнопок KeyboardButton[] keys = new KeyboardButton[1] { b }; // Разметка ответа var markup = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(keys, true, true); // Ответ client.SendTextMessageAsync(msg.Chat.Id, "Предоставьте регистрационные данные", replyMarkup: markup); }
public override async Task Execute(Message message, TelegramBotClient botClient, Client person) { try { var button = new Telegram.Bot.Types.ReplyMarkups.KeyboardButton(); button.RequestContact = true; button.Text = "Поделиться контактом"; var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(button); keyboard.ResizeKeyboard = true; keyboard.OneTimeKeyboard = true; await botClient.SendTextMessageAsync(message.Chat.Id, PhoneMessage.Message, replyMarkup : keyboard, parseMode : Telegram.Bot.Types.Enums.ParseMode.Html); } catch (Exception ex) { Bot.MyLogger(ex.Message); Bot.MyLogger(ex.StackTrace); } }
/// <summary> /// Команда /start /// </summary> /// <param name="m"></param> public void StartCommand(Telegram.Bot.Types.Message m) { // Поиск пользователя по идентификатору var u = state.Users?.FirstOrDefault(a => a.ID == m.From.Id); // Проверяем, что пользователь полностью зарегистрирован if ((u != null) && u.IsFull) { // Пользователь уже есть в базе // Ответ пользователю client.SendTextMessageAsync(m.Chat.Id, $"Привет, {m.From.FirstName}, с возвращением!"); } else // Обнаружен новый пользователь { // Ответ пользователю var button = new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Телефон") { RequestContact = true }; var kbd = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(button); kbd.OneTimeKeyboard = true; kbd.ResizeKeyboard = true; client.SendTextMessageAsync(m.From.Id, $"Привет, {m.From.FirstName}, рад знакомству!", replyMarkup: kbd); // Создание нового пользователя if (u == null) { u = new User() { ID = m.From.Id, UserName = m.From.Username, FirstName = m.From.FirstName, LastName = m.From.LastName, }; state.AddUser(u); } // Переход в состояние ожидания номера телефона u.State = UserState.Contact; // Сохранить состояние бота state.Save(stateFileName); } }
public override void Execute(Message message, TelegramBotClient client) { var chatId = message.Chat.Id; var messageId = message.MessageId; var rkm = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new Telegram.Bot.Types.ReplyMarkups.KeyboardButton[]{ "Машина", "Помощь" } } }; //TODO: Command logic -_- client.SendTextMessageAsync(chatId, "Допбро пожаловать в магазин Ролика Дениса!\n Пожалуйста выбирите раздел", replyToMessageId: messageId,replyMarkup: rkm ); }
internal override async Task Execute(Message message, TelegramBotClient botClient) { var keyboardButtons = new[] { new [] // row 1 { //column 1 new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🔙 На главную"), //column 2 new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🔬 Общий анализ крови") }, new [] // row 2 { //column 1 new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🔬 Общий анализ мочи") } }; var inlineKeyboardSearchButton = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][] { // row 1 new [] { // column 1 Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithSwitchInlineQueryCurrentChat("🔍 Поиск") } }; var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(keyboardButtons) { ResizeKeyboard = true }; var inlineKeyboardSearch = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboardSearchButton); var chatId = message.Chat.Id; string botMessage = "Выберете интересующий Вас анализ: ↕️"; string botSearchMessage = "Или воспользуйтесь кнопкой поиска по другим анализам и показателям"; await botClient.SendTextMessageAsync(chatId, botMessage, replyToMessageId : message.MessageId, replyMarkup : keyboard); await botClient.SendTextMessageAsync(chatId, botSearchMessage, replyMarkup : inlineKeyboardSearch); }
public static Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup ButtonOBJEee(List <Data> listkamel) { int rowsCount = listkamel.Count; if (rowsCount < 70) { Telegram.Bot.Types.KeyboardButton[][] buttons = new Telegram.Bot.Types.KeyboardButton[rowsCount][]; int i = 0; foreach (KeyValuePair <string, int> pair in listkamel) { buttons[i] = new Telegram.Bot.Types.KeyboardButton[1]; buttons[i][0] = pair.Key; i++; if (i > rowsCount - 1) { break; } } Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup result = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(buttons); result.OneTimeKeyboard = true; return(result); } else { Telegram.Bot.Types.KeyboardButton[][] buttons = new Telegram.Bot.Types.KeyboardButton[70][]; int i = 0; foreach (KeyValuePair <string, int> pair in listkamel) { buttons[i] = new Telegram.Bot.Types.KeyboardButton[1]; buttons[i][0] = pair.Key; i++; if (i > 69) { break; } } Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup result = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(buttons); result.OneTimeKeyboard = true; return(result); } }
public static Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup createReplyKeyboard(List <SchemaStep> possibleSteps) { var buttonsRow = new List <Telegram.Bot.Types.ReplyMarkups.KeyboardButton>(); foreach (var t in possibleSteps) { buttonsRow.Add(new Telegram.Bot.Types.ReplyMarkups.KeyboardButton(t.Transition.DisplayName)); } var replyKeyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup() { OneTimeKeyboard = true, ResizeKeyboard = true }; replyKeyboard.Keyboard = new List <List <Telegram.Bot.Types.ReplyMarkups.KeyboardButton> >() { buttonsRow }; return(replyKeyboard); }
private Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup GetAbilitiesKeyboard() { Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(); keyboard.ResizeKeyboard = true; keyboard.Keyboard = new Telegram.Bot.Types.KeyboardButton[][] { new Telegram.Bot.Types.KeyboardButton[] { new Telegram.Bot.Types.KeyboardButton("1"), new Telegram.Bot.Types.KeyboardButton("2"), new Telegram.Bot.Types.KeyboardButton("3") }, new Telegram.Bot.Types.KeyboardButton[] { new Telegram.Bot.Types.KeyboardButton("4"), new Telegram.Bot.Types.KeyboardButton("5"), } }; return(keyboard); }
public static async void ReceiveMessage(int Id) { await YourBot.Bot.SendTextMessageAsync(Id, "О, нужна помощь! Давай-ка решим, чем я могу тебе помочь..."); var button = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(); button.Keyboard = new KeyboardButton[][] { new KeyboardButton[] { new KeyboardButton("Калькулятор"), new KeyboardButton("Погода") }, new KeyboardButton[] { new KeyboardButton("Курс валют") } }; await YourBot.Bot.SendTextMessageAsync(Id, "Выбери, чем тебе помочь:", replyMarkup : button); }
public override void Execute(Message message, TelegramBotClient client) { var chatId = message.Chat.Id; var messageId = message.MessageId; //var payment = new LabeledPrice { // Label = "Товар", // //Amount = ; //}; var rkm = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new Telegram.Bot.Types.ReplyMarkups.KeyboardButton[] { "В начало", } } }; //TODO: Command logic -_- MailAddress from = new MailAddress("*****@*****.**", "Tom"); MailAddress to = new MailAddress("*****@*****.**"); MailMessage m = new MailMessage(from, to); m.Subject = "Ну типо тут заказ"; m.Body = "<h2>Письмо-тест работы smtp-клиента</h2>"; m.IsBodyHtml = true; SmtpClient smtp = new SmtpClient("smtp.gmail.com", 587); smtp.Credentials = new NetworkCredential("*****@*****.**", "Den30623322"); smtp.EnableSsl = true; smtp.Send(m); //client.SendInvoiceAsync(chatId, "Спасибо за оплату", replyToMessageId: messageId, replyMarkup: rkm); client.SendTextMessageAsync(chatId, "Спасибо за оплату", replyToMessageId: messageId, replyMarkup: rkm); }
internal override async Task Execute(Message message, TelegramBotClient botClient) { var keyboardButtons = new[] { new [] // row 1 { //column 1 new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🧾 Показатели анализа крови"), }, new [] // row 2 { //column 1 new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("🔙 Назад к анализам") } }; var inlineKeyboardSearchButton = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][] { // row 1 new [] { // column 1 Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithSwitchInlineQueryCurrentChat("🔍 Поиск") } }; var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(keyboardButtons) { ResizeKeyboard = true }; var inlineKeyboardSearch = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(inlineKeyboardSearchButton); var chatId = message.Chat.Id; string botMessage = "#Общийанализкрови #ОАК \n🔬🩸 *Общий анализ крови (ОАК)* – это наиболее доступный метод первичной оценки состояния организма, результаты которого, наряду с общим анализом мочи и биохимическим анализом крови, входят в алгоритмы диагностики большинства заболеваний. У здорового человека кровь по своему составу относительно постоянна, но реагирует практически на любые патологические изменения в организме. Поэтому, чтобы понять, что происходит с человеком, какие исследования назначить в дальнейшем или определиться с лечением, врач, в первую очередь, всегда назначает ОАК. \nЭто исследование также используется в виде профилактического обследования даже при отсутствии каких-либо симптомов и отражает изменения состояния здоровья. Кроме того, ОАК позволяет оценить успешность проведенного лечения."; string botSearchMessage = "Не нашли то что искали? Воспользуйтесь кнопкой поиска по другим анализам и показателям"; await botClient.SendPhotoAsync(chatId, "https://raw.githubusercontent.com/OnofreichukRoman/MedicalTelegrammBot/master/Images/bloodanalysis.jpg", botMessage, replyToMessageId : message.MessageId, parseMode : Telegram.Bot.Types.Enums.ParseMode.Markdown, replyMarkup : keyboard); await botClient.SendTextMessageAsync(chatId, botSearchMessage, replyMarkup : inlineKeyboardSearch); }
public static Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup ButtonCreatorObjecti(List <string> filename, List <string> performer) { int rowsCount = filename.Count; Telegram.Bot.Types.KeyboardButton[][] buttons = new Telegram.Bot.Types.KeyboardButton[rowsCount][]; for (int i = 0; i < rowsCount; i++) { if (filename[i] != "") { buttons[i] = new Telegram.Bot.Types.KeyboardButton[1]; buttons[i][0] = "\U0001F3B5" + filename[i] + "\U0001F464" + performer[i]; } else { buttons[i] = new Telegram.Bot.Types.KeyboardButton[1]; buttons[i][0] = "\U0001F464" + performer[i]; } } Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup result = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(buttons); result.OneTimeKeyboard = true; return(result); }
public override BotMessage BuildMsg() { UnitList = UnitsFunction.UnitsList(); UnitBtn = new Telegram.Bot.Types.KeyboardButton[UnitList.Count][]; int count = 0; base.TextMessage = "1"; foreach (var unit in UnitList) { UnitBtn[count] = new Telegram.Bot.Types.KeyboardButton[1]; UnitBtn[count][0] = new Telegram.Bot.Types.KeyboardButton("Еденица измерения:" + unit.Name); count++; } Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup replyKeyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(UnitBtn); base.MessageReplyMarkup = replyKeyboard; return(this); }
public override void Execute(Message message, TelegramBotClient client) { var chatId = message.Chat.Id; var messageId = message.MessageId; var rkm = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { }; string connectionString = @"Data Source=localhost\MSSQLSERVER01;Initial Catalog=RolikBot;Integrated Security=True"; string sql = "SELECT * FROM Categories"; using (SqlConnection connection = new SqlConnection(connectionString)) { connection.Open(); // Создаем объект DataAdapter SqlDataAdapter adapter = new SqlDataAdapter(sql, connection); // Создаем объект Dataset DataSet ds = new DataSet(); // Заполняем Dataset adapter.Fill(ds); var reply = new Telegram.Bot.Types.ReplyMarkups.KeyboardButton[ds.Tables[0].Rows.Count]; for (int i = 0; i < ds.Tables[0].Rows.Count; i++) { reply[i] = ds.Tables[0].Rows[i][1].ToString(); } rkm = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { reply } }; } client.SendTextMessageAsync(chatId, "Выберите категорию", replyToMessageId: messageId, replyMarkup: rkm); }
private static async void OnMessageHandler(object sender, Telegram.Bot.Args.MessageEventArgs e) { var text = e.Message.Text; var userId = e.Message.Chat.Id; if (text == null) { return; } try { //logging messages File.AppendAllText(logPath, $"{userId}({e.Message.Chat.FirstName} {e.Message.Chat.LastName}): {text}, {e.Message.Date}\n"); } catch { File.AppendAllText(logPath, $"{userId}({e.Message.Chat.FirstName}): {text}, {e.Message.Date}\n"); } Console.WriteLine($"User {userId}({e.Message.Chat.FirstName}) sent {text}"); if (!states.ContainsKey(userId)) { states.Add(userId, State.CommandReciever); } if (!tempEvents.ContainsKey(userId)) { tempEvents[userId] = new Tuple <Event, int>(new Event(), 0); } switch (states[userId]) { case State.CommandReciever: switch (text) { case "/start": Send(userId, "This bot helps you to plan your businesses!\n" + "Press /add to start planning!\nPress /help to read more about commands"); break; case "/help": Send(userId, "This bot helps you to plan your businesses!\n" + "/add adds new plan" + "\n/show shows all records\n" + "/mark then choose a bussiness to mark it done\n" + "/delay then choose a different time for your business\n" + "/remove then choose a record to remove\n" + "(You'll receive notifications and daily statistics)"); break; case "/show": if (!planner.Contains(userId) || planner.Get(userId).Count() == 0) { Send(userId, "You have no plans!"); } else { var plans = planner.Get(userId); string res = $"You have planned {plans.Count()} things!\n"; for (int i = 0; i < plans.Count(); ++i) { res += $"{i + 1}. {plans[i].name} {plans[i].time} {plans[i].importance}\n"; } Send(userId, res); } break; case "/add": states[userId] = State.AddName; Send(userId, "Type business name"); break; case "/mark": states[userId] = State.MarkName; var userEventsMarkName = planner.Get(userId); List <List <Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton> > listMarkName = new List <List <Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton> >(); for (int i = 0; i < userEventsMarkName.Count(); ++i) { string cur = $"{userEventsMarkName[i].name} {userEventsMarkName[i].time} {userEventsMarkName[i].importance}"; var addingList = new List <Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton> { Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData($"{cur}", $"{i}") }; listMarkName.Add(addingList); } var markupMarkName = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(listMarkName); try { await bot.SendTextMessageAsync(userId, "Choose a deal you want to mark:", replyMarkup : markupMarkName); } catch { Console.WriteLine($"Error: forbidden user {userId}"); planner.DeleteUser(userId); states.Remove(userId); tempEvents.Remove(userId); break; } break; case "/delay": states[userId] = State.DelayName; var userEvnts = planner.Get(userId); List <List <Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton> > listDelay = new List <List <Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton> >(); for (int i = 0; i < userEvnts.Count(); ++i) { string cur = $"{userEvnts[i].name} {userEvnts[i].time} {userEvnts[i].importance}"; var addingList = new List <Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton> { Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData($"{cur}", $"{i}") }; listDelay.Add(addingList); } var markupDelay = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(listDelay); try { await bot.SendTextMessageAsync(userId, "Choose a deal you want to delay:", replyMarkup : markupDelay); } catch { Console.WriteLine($"Error: forbidden user {userId}"); planner.DeleteUser(userId); states.Remove(userId); tempEvents.Remove(userId); break; } break; case "/remove": states[userId] = State.RemoveName; var usrEvnts = planner.Get(userId); List <List <Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton> > listRemove = new List <List <Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton> >(); for (int i = 0; i < usrEvnts.Count(); ++i) { string cur = $"{usrEvnts[i].name} {usrEvnts[i].time} {usrEvnts[i].importance}"; var addingList = new List <Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton> { Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton.WithCallbackData($"{cur}", $"{i}") }; listRemove.Add(addingList); } var markupRemove = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(listRemove); try { await bot.SendTextMessageAsync(userId, "Choose a deal you want to delay:", replyMarkup : markupRemove); } catch { Console.WriteLine($"Error: forbidden user {userId}"); planner.DeleteUser(userId); states.Remove(userId); tempEvents.Remove(userId); break; } break; default: Send(userId, "Enter a proper command! Type /help to get more info"); break; } break; case State.AddName: tempEvents[userId].Item1.name = text; if (tempEvents[userId].Item1.name == "") { Send(userId, "Enter non empty name!"); } else { var TimeMarkup = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(new[] { new [] { new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Today"), new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Tomorrow"), new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("No Term") } }) { OneTimeKeyboard = true }; try { await bot.SendTextMessageAsync(userId, "Choose Time below!", replyMarkup : TimeMarkup); } catch { Console.WriteLine($"Error: forbidden user {userId}"); planner.DeleteUser(userId); states.Remove(userId); tempEvents.Remove(userId); break; } } states[userId] = State.AddTime; break; case State.AddTime: switch (text) { case "Today": tempEvents[userId].Item1.time = Time.Today; break; case "Tomorrow": tempEvents[userId].Item1.time = Time.Tomorrow; break; case "No Term": tempEvents[userId].Item1.time = Time.NoTerm; break; default: Send(userId, "Push the buttons!"); return; } var ImpMarkup = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(new[] { new[] { new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Important"), new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Medium"), new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Casual") } }) { OneTimeKeyboard = true }; try { await bot.SendTextMessageAsync(userId, "Choose importance below!", replyMarkup : ImpMarkup); } catch { Console.WriteLine($"Error: forbidden user {userId}"); planner.DeleteUser(userId); states.Remove(userId); tempEvents.Remove(userId); break; } states[userId] = State.AddImportance; break; case State.AddImportance: switch (text) { case "Important": tempEvents[userId].Item1.importance = Importance.Important; break; case "Medium": tempEvents[userId].Item1.importance = Importance.Medium; break; case "Casual": tempEvents[userId].Item1.importance = Importance.Casual; break; default: Send(userId, "Push the buttons!"); return; } tempEvents[userId].Item1.owner = userId; planner.Add(userId, new Event(tempEvents[userId].Item1.name, tempEvents[userId].Item1.time, tempEvents[userId].Item1.importance, tempEvents[userId].Item1.owner)); tempEvents[userId] = new Tuple <Event, int>(new Event(), 0); var markup = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardRemove(); try { await bot.SendTextMessageAsync(e.Message.Chat.Id, "Record added!", replyMarkup : markup); } catch { Console.WriteLine($"Error: forbidden user {userId}"); planner.DeleteUser(userId); states.Remove(userId); tempEvents.Remove(userId); break; } states[userId] = State.CommandReciever; break; case State.MarkDone: switch (text) { case "Done": tempEvents[userId].Item1.done = true; break; case "Not done": tempEvents[userId].Item1.done = false; break; default: Send(userId, "Push the buttons!"); return; } var markupMarkDone = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardRemove(); try { await bot.SendTextMessageAsync(e.Message.Chat.Id, $"State was successfully changed!", replyMarkup : markupMarkDone); } catch { Console.WriteLine($"Error: forbidden user {userId}"); planner.DeleteUser(userId); states.Remove(userId); tempEvents.Remove(userId); break; } planner.Mark(e.Message.Chat.Id, tempEvents[userId].Item2, tempEvents[userId].Item1.done); tempEvents[userId] = new Tuple <Event, int>(new Event(), 0); states[userId] = State.CommandReciever; break; case State.DelayTime: switch (text) { case "Today": tempEvents[userId].Item1.time = Time.Today; break; case "Tomorrow": tempEvents[userId].Item1.time = Time.Tomorrow; break; case "No Term": tempEvents[userId].Item1.time = Time.NoTerm; break; default: Send(userId, "Push the buttons!"); return; } var markupDelayTime = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardRemove(); try { await bot.SendTextMessageAsync(userId, $"Changes saved!", replyMarkup : markupDelayTime); } catch { Console.WriteLine($"Error: forbidden user {userId}"); planner.DeleteUser(userId); states.Remove(userId); tempEvents.Remove(userId); break; } planner.Delay(userId, tempEvents[userId].Item2, tempEvents[userId].Item1.time); tempEvents[userId] = new Tuple <Event, int>(new Event(), 0); states[userId] = State.CommandReciever; break; default: tempEvents[userId] = new Tuple <Event, int>(new Event(), 0); //Send(userId, "Something went wrong! Code: Message"); Send(userId, "Try to push the buttons! Try again"); states[userId] = State.CommandReciever; return; } }
private static async void OnCallbackQueryHandler(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { var userId = e.CallbackQuery.Message.Chat.Id; try { var a = states[userId]; } catch (Exception) { return; } Tuple <Event, int> tempEvent; switch (states[userId]) { case State.MarkName: int curEvent = Int16.Parse(e.CallbackQuery.Data); tempEvent = new Tuple <Event, int>(new Event(planner.Get(e.CallbackQuery.Message.Chat.Id)[curEvent]), curEvent); tempEvents[userId] = tempEvent; var markup = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(new[] { new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Done"), new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Not done") }); try { await bot.SendTextMessageAsync(userId, "Choose state", replyMarkup : markup); } catch { Console.WriteLine($"Error: forbidden user {userId}"); planner.DeleteUser(userId); states.Remove(userId); tempEvents.Remove(userId); break; } states[userId] = State.MarkDone; break; case State.DelayName: int curEventDelayName = Int16.Parse(e.CallbackQuery.Data); tempEvent = new Tuple <Event, int>(new Event(planner.Get(e.CallbackQuery.Message.Chat.Id)[curEventDelayName]), curEventDelayName); tempEvents[userId] = tempEvent; var markupDelayName = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(new[] { new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Today"), new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("Tomorrow"), new Telegram.Bot.Types.ReplyMarkups.KeyboardButton("No Term") }); try { await bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, "Choose state", replyMarkup : markupDelayName); } catch { Console.WriteLine($"Error: forbidden user {userId}"); planner.DeleteUser(userId); states.Remove(userId); tempEvents.Remove(userId); break; } states[userId] = State.DelayTime; break; case State.RemoveName: int curEventRemoveName = Int16.Parse(e.CallbackQuery.Data); planner.Remove(userId, curEventRemoveName); Send(userId, "Record was removed!"); states[userId] = State.CommandReciever; break; //default: // Send(userId, "Something went wrong! Code: Callback"); // break; } }
async void bw_DoWork(object sender, DoWorkEventArgs e) { var worker = sender as BackgroundWorker; var key = e.Argument as String; // получаем ключ из аргументов try { var Bot = new Telegram.Bot.TelegramBotClient(key); // инициализируем API await Bot.SetWebhookAsync(""); // Обязательно! убираем старую привязку к вебхуку для бота // Inlin'ы Bot.OnInlineQuery += async(object si, Telegram.Bot.Args.InlineQueryEventArgs ei) => { var query = ei.InlineQuery.Query; var msg = new Telegram.Bot.Types.InputMessageContents.InputTextMessageContent { MessageText = @"Это супер крутой текст статьи с переносами и <b>html</b> <i>тегами!</i>", ParseMode = Telegram.Bot.Types.Enums.ParseMode.Html, }; Telegram.Bot.Types.InlineQueryResults.InlineQueryResult[] results = { new Telegram.Bot.Types.InlineQueryResults.InlineQueryResultArticle { Id = "1", Title = "Тестовый тайтл", Description = "Описание статьи тут", InputMessageContent = msg, }, new Telegram.Bot.Types.InlineQueryResults.InlineQueryResultAudio { Url = "http://aftamat4ik.ru/wp-content/uploads/2017/05/mongol-shuudan_-_kozyr-nash-mandat.mp3", Id = "2", FileId = "123423433", Title = "Монгол Шуудан - Козырь наш Мандат!", }, new Telegram.Bot.Types.InlineQueryResults.InlineQueryResultPhoto { Id = "3", Url = "http://aftamat4ik.ru/wp-content/uploads/2017/05/14277366494961.jpg", ThumbUrl = "http://aftamat4ik.ru/wp-content/uploads/2017/05/14277366494961-150x150.jpg", Caption = "Текст под фоткой", Description = "Описание", }, new Telegram.Bot.Types.InlineQueryResults.InlineQueryResultVideo { Id = "4", Url = "http://aftamat4ik.ru/wp-content/uploads/2017/05/bb.mp4", ThumbUrl = "http://aftamat4ik.ru/wp-content/uploads/2017/05/joker_5-150x150.jpg", Title = "демо видеоролика", MimeType = "video/mp4", } }; await Bot.AnswerInlineQueryAsync(ei.InlineQuery.Id, results); }; // Callback'и от кнопок Bot.OnCallbackQuery += async(object sc, Telegram.Bot.Args.CallbackQueryEventArgs ev) => { var message = ev.CallbackQuery.Message; if (ev.CallbackQuery.Data == "callback1") { await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id, "You hav choosen " + ev.CallbackQuery.Data, true); } else if (ev.CallbackQuery.Data == "callback2") { await Bot.SendTextMessageAsync(message.Chat.Id, "тест", replyToMessageId : message.MessageId); await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id); // отсылаем пустое, чтобы убрать "частики" на кнопке } }; Bot.OnUpdate += async(object su, Telegram.Bot.Args.UpdateEventArgs evu) => { if (evu.Update.CallbackQuery != null || evu.Update.InlineQuery != null) { return; // в этом блоке нам келлбэки и инлайны не нужны } var update = evu.Update; var message = update.Message; if (message == null) { return; } if (message.Type == Telegram.Bot.Types.Enums.MessageType.TextMessage) { if (message.Text == "/hello") { // в ответ на команду /saysomething выводим сообщение await Bot.SendTextMessageAsync(message.Chat.Id, "Ну здарова! Как сам? :)", replyToMessageId : message.MessageId); } if (message.Text == "/help") { string txt = "Сори, я сам тут новенький :)\n /help - помощь\n /hello - поздароваться\n /getimg - получи картинку\n /rbuttons - Reply - кнопки\n /ibuttons - Inline кнопки"; // в ответ на команду /saysomething выводим сообщение await Bot.SendTextMessageAsync(message.Chat.Id, txt, replyToMessageId : message.MessageId); } if (message.Text == "/getimg") { // в ответ на команду /getimage выводим картинку await Bot.SendPhotoAsync(message.Chat.Id, "http://aftamat4ik.ru/wp-content/uploads/2017/03/photo_2016-12-13_23-21-07.jpg", "Revolution!"); } // inline buttons if (message.Text == "/ibuttons") { var keyboard = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup( new Telegram.Bot.Types.InlineKeyboardButton[][] { // First row new [] { // First column new Telegram.Bot.Types.InlineKeyboardButton("раз", "callback1"), // Second column new Telegram.Bot.Types.InlineKeyboardButton("два", "callback2"), }, } ); await Bot.SendTextMessageAsync(message.Chat.Id, "Давай накатим, товарищ, по одной!", false, false, 0, keyboard, Telegram.Bot.Types.Enums.ParseMode.Default); } // reply buttons if (message.Text == "/rbuttons") { var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] // row 1 { new Telegram.Bot.Types.KeyboardButton("Накатим!"), new Telegram.Bot.Types.KeyboardButton("Рря!") }, }, ResizeKeyboard = true }; await Bot.SendTextMessageAsync(message.Chat.Id, "Давай накатим, товарищ, мой!", false, false, 0, keyboard, Telegram.Bot.Types.Enums.ParseMode.Default); } // обработка reply кнопок if (message.Text.ToLower() == "накатим!") { await Bot.SendTextMessageAsync(message.Chat.Id, "Ну, за здоровье!", replyToMessageId : message.MessageId); } if (message.Text.ToLower() == "рря!") { await Bot.SendTextMessageAsync(message.Chat.Id, "Ну, за демократию!", replyToMessageId : message.MessageId); } } }; // запускаем прием обновлений Bot.StartReceiving(); } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { Console.WriteLine(ex.Message); // если ключ не подошел - пишем об этом в консоль отладки } }
async void bw_DoWork(object sender, DoWorkEventArgs e) { /*Commands.Add("/start"); * Commands.Add("/balance"); * Commands.Add("/chatID"); * Commands.Add("/ОРЁЛ"); * Commands.Add("/РЕШКА"); * Commands.Add("/0,2"); * Commands.Add("/0,4"); * Commands.Add("/0,6"); * Commands.Add("/0,8");*/ var worker = sender as BackgroundWorker; var key = "400994008:AAF_AngoYyaakmuAhsv63kSR_fXkO6NA8ek"; // получаем ключ из аргументов bool rate = false; int rateCount; //ОРЁЛ - 1 :РЕШКА - 2. int randomizeCount; Random rand = new Random(); try { var Bot = new Telegram.Bot.TelegramBotClient(key); // инициализируем API await Bot.SetWebhookAsync(""); //Bot.SetWebhook(""); // Обязательно! убираем старую привязку к вебхуку для бота int offset = 0; // отступ по сообщениям while (true) { var updates = await Bot.GetUpdatesAsync(offset); // получаем массив обновлений foreach (var update in updates) // Перебираем все обновления { var message = update.Message; chatID = message.Chat.Id; const string connStr = "server=localhost;user=root;database=bot_1;password = 000000;"; MySqlConnection conn = new MySqlConnection(connStr); conn.Open(); string blnc = "SELECT balance FROM bot_1.user where id = " + chatID; MySqlCommand commandCheckBalance = new MySqlCommand(blnc, conn); balance = (float)Convert.ToDouble(commandCheckBalance.ExecuteScalar()); conn.Clone(); if (message.Type == Telegram.Bot.Types.Enums.MessageType.TextMessage) { /*for (int i = 0; i < 9;i++) * { * if (message.Text.Substring(0, 1) != Commands[i]) * { * await Bot.SendTextMessageAsync(message.Chat.Id, "Я тебя не понимаю.. Напиши /start !"); * } * }*/ if (message.Text == "/start") { await Bot.SendTextMessageAsync(message.Chat.Id, "Начнём💸 "+ "\r\n\r\nДля начала я даю тебе " + startBonus.ToString() + " рублей." + "\r\nА благодаря этому боту можно влёгкую поднять денег!👑 " + "\r\nВсеголишь угадывая монету. " + "\r\nПрямо сейчас можешь начать зарабатывать!"); // reply buttons var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] // row 1 { new Telegram.Bot.Types.KeyboardButton("/0,2"), new Telegram.Bot.Types.KeyboardButton("/0,4"), new Telegram.Bot.Types.KeyboardButton("/0,6"), new Telegram.Bot.Types.KeyboardButton("/0,8") }, }, ResizeKeyboard = true }; await Bot.SendTextMessageAsync(message.Chat.Id, "Сделай ставку:", false, false, 0, keyboard, Telegram.Bot.Types.Enums.ParseMode.Default); } if (message.Text == "/0,2" || message.Text == "/0,4" || message.Text == "/0,6" || message.Text == "/0,8") { await Bot.SendTextMessageAsync(message.Chat.Id, "Ставки приняты💰"); var keyboard2 = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] // row 1 { new Telegram.Bot.Types.KeyboardButton("/ОРЁЛ"), new Telegram.Bot.Types.KeyboardButton("/РЕШКА") }, }, ResizeKeyboard = true }; await Bot.SendTextMessageAsync(message.Chat.Id, "Испытай удачу!💸", false, false, 0, keyboard2, Telegram.Bot.Types.Enums.ParseMode.Default); } if (message.Text == "/balance") { await Bot.SendTextMessageAsync(message.Chat.Id, "Твой баланс💸:" + balance); } if (message.Text == "/chatID") { await Bot.SendTextMessageAsync(message.Chat.Id, "Твой chatID:" + chatID); } // обработка reply кнопок if (message.Text == "/ОРЁЛ") { rate = true; rateCount = 1; randomizeCount = rand.Next(0, 2); if (randomizeCount == 0) { await Bot.SendTextMessageAsync(message.Chat.Id, "Ии этооо... ОРЁЛ \r\nУгадал!😇"); await Bot.SendTextMessageAsync(message.Chat.Id, "Тебе зачислено💸:"); } if (randomizeCount == 1) { await Bot.SendTextMessageAsync(message.Chat.Id, "Ии этооо... РЕШКА \r\nНе угадал!😈"); await Bot.SendTextMessageAsync(message.Chat.Id, "С чёта списано💵:"); } } if (message.Text == "/РЕШКА") { rate = true; rateCount = 2; randomizeCount = rand.Next(0, 2); if (randomizeCount == 1) { await Bot.SendTextMessageAsync(message.Chat.Id, "Ии этооо... РЕШКА \r\nУгадал!😇"); await Bot.SendTextMessageAsync(message.Chat.Id, "Тебе зачислено💸:"); } if (randomizeCount == 0) { await Bot.SendTextMessageAsync(message.Chat.Id, "Ии этооо... ОРЁЛ \r\nНе угадал!😈"); await Bot.SendTextMessageAsync(message.Chat.Id, "С чёта списано💵:"); } } Bot.StartReceiving(); } offset = update.Id + 1; } } } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { Console.WriteLine(ex.Message); // если ключ не подошел - пишем об этом в консоль отладки } }
public AView() { keyboardHome = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] { new Telegram.Bot.Types.KeyboardButton("\U0001F482 Hero"), new Telegram.Bot.Types.KeyboardButton("\U0001F528 Work \U0001F33E") }, new[] { new Telegram.Bot.Types.KeyboardButton("\U0001F3F0 Town"), new Telegram.Bot.Types.KeyboardButton(" Back ") }, }, ResizeKeyboard = true }; keyboardStart = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(new Telegram.Bot.Types.InlineKeyboardButton[][] { new [] { new Telegram.Bot.Types.InlineKeyboardButton("a special Person", "Person"), }, new [] { new Telegram.Bot.Types.InlineKeyboardButton("a rich Gnome", "Gnome"), }, new [] { new Telegram.Bot.Types.InlineKeyboardButton("a terrible Orc", "Orc"), }, new [] { new Telegram.Bot.Types.InlineKeyboardButton("a strong Elf", "Elf"), }, }); keyboardLvlUp = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(new Telegram.Bot.Types.InlineKeyboardButton[][] { new [] { new Telegram.Bot.Types.InlineKeyboardButton(" Attack ", "attack"), new Telegram.Bot.Types.InlineKeyboardButton(" Defence ", "def"), }, }); keyboardChouseFraction = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup(new Telegram.Bot.Types.InlineKeyboardButton[][] { new [] { new Telegram.Bot.Types.InlineKeyboardButton(" Alliance ", "Alliance"), new Telegram.Bot.Types.InlineKeyboardButton(" Republic ", "Republic"), }, }); createNewUser = "******" + "Please visit our group to have more info. https://t.me/WWGlobalChat \n" + " And chouse who you are ..."; createNewUserEmptyUsername = "******"; chooseStates = "\U00002B50 Congratulation! You have become more powerful! And you stand stronger in "; upStatesOK = " You feel the power!"; upStatesFalse = " You need to grow more..."; chooseFraction = "Please, chose you fraction! Brave Republic or eternal Alliance?"; setFractionSuccses = "We knew that you would choose the best!"; setFractionFail = "Huston we have problems"; errorMessage = "Gods dont understand what do you whant to do"; }
private async void backgroundWorkerBot_DoWork(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; try { TelegramBotClient botClient = new TelegramBotClient(token); await botClient.SetWebhookAsync(""); int offset = 0; while (true) { if (worker.CancellationPending == true) { e.Cancel = true; break; } Update[] updates = await botClient.GetUpdatesAsync(offset); foreach (Update update in updates) { Telegram.Bot.Types.Message message = update.Message; if (message.Type == MessageType.TextMessage) { string answer = "Unknow command."; if (checkAnswer == false) { switch (message.Text) { case "/start": answer = "Hey there! Let's start with the next word. Write /newword in the input line to start quiz."; await botClient.SendTextMessageAsync(message.Chat.Id, answer); break; case "/bye": answer = "See you later!"; await botClient.SendTextMessageAsync(message.Chat.Id, answer, replyMarkup : null); break; case "/newword": firstIndex = rnd.Next(0, watList.Count); do { secondIndex = rnd.Next(0, watList.Count); } while (secondIndex == firstIndex); rightEnglishWord = watList[firstIndex].EnglishWord; if (rnd.Next(0, 1000) > 500) { firstWord = watList[firstIndex].EnglishWord; secondWord = watList[secondIndex].EnglishWord; } else { firstWord = watList[secondIndex].EnglishWord; secondWord = watList[firstIndex].EnglishWord; } var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup( keyboardRow: new KeyboardButton[] { new KeyboardButton(firstWord), new KeyboardButton(secondWord) }, resizeKeyboard: true ); checkAnswer = true; await botClient.SendTextMessageAsync(message.Chat.Id, watList[firstIndex].RussianWord, replyMarkup : keyboard); break; default: await botClient.SendTextMessageAsync(message.Chat.Id, answer); break; } } else { if (message.Text == rightEnglishWord) { answer = "Brilliant!"; var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup( keyboardRow: new KeyboardButton[] { new KeyboardButton("/newword"), new KeyboardButton("/bye") }, resizeKeyboard: true ); await botClient.SendTextMessageAsync(message.Chat.Id, answer, replyMarkup : keyboard); } else { answer = "Sorry. Wrong answer."; var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup( keyboardRow: new KeyboardButton[] { new KeyboardButton("/newword"), new KeyboardButton("/bye") }, resizeKeyboard: true ); await botClient.SendTextMessageAsync(message.Chat.Id, answer, replyMarkup : keyboard); } checkAnswer = false; } } offset = update.Id + 1; } } } catch (ApiRequestException exception) { MessageBox.Show("Ошибка: " + exception.Message); } }