public override bool HandleMessage(Message msg) { //msg.toGroup = 735545947;// msg.fromGroup; string cmd = BOT.getAskCmd(msg); if (string.IsNullOrWhiteSpace(cmd)) { return(false); } string res = getRollString(cmd); if (!string.IsNullOrWhiteSpace(res)) { msg.str = res; msg.toGroup = msg.fromGroup; msg.to = msg.from; msg.imgs.Clear(); msg.ats.Clear(); if (msg.fromGroup > 0) { msg.ats.Add(new MessageAt(msg.from, $"@{msg.fromName}")); //msg.str = " " + msg.str; } BOT.send(msg); return(true); } return(false); }
public override bool HandleMessage(Message msg) { try { string cmd = BOT.getAskCmd(msg); if (string.IsNullOrWhiteSpace(cmd)) { return(false); } if (cmd.StartsWith("占卜")) { string res = getZhouYi(); if (res.Length > 0) { msg.str = res; BOT.sendBack(msg, true); return(true); } } } catch (Exception ex) { FileHelper.Log(ex); } return(false); }
protected override void InitSource() { lock (matchMutex) { try { money = BOT.getMoneyManager(); var lines = FileHelper.readLines(PluginPath + userinfoFile); foreach (var line in lines) { RHUser user = new RHUser(); user.parse(line); users[user.id] = user; } lines = FileHelper.readLines(PluginPath + horseinfoFile); foreach (var line in lines) { RHHorse horse = new RHHorse(line); horses[horse.name] = horse; } } catch (Exception e) { FileHelper.Log(e.Message + "\r\n" + e.StackTrace); } } }
// Каждому боту известно число занимаемых ячеек // Бегаем по массиву всех ячеек это количество раз и выкупаем свободные билеты рандомно. IEnumerator BotActive(BOT bot) { yield return(null); // заглушка //Цикл ограничен числом билетов у бота while (!isFinished) { // for (int i = 0; i < bot.countCell; i++) { // если билет уже куплен, двигаемся к ближайшему незанятому // после повторяем операцию yield return(new WaitForSeconds(bot.waitTime)); // Задержка перед покупкой bool isBought = false; int cellId = UnityEngine.Random.Range(0, ticketNum); bot.waitTime = UnityEngine.Random.Range(1, lotteryTime * 60 / bot.countCell); while (!isBought && !isFinished && tickets < ticketNum) { if (!it[cellId].isBusy) { ConfirmLotteryItem(cellId + 1, bot.name, bot.color, bot.icon); // подтверждаем покупку bot.leftCell--; isBought = true; } else { cellId = UnityEngine.Random.Range(0, ticketNum); } } } } }
public void showMessage(long groupqq, long userqq, string str) { Message msg = new Message(); msg.to = userqq; msg.toGroup = groupqq; msg.str = str; BOT.send(msg); }
private void BtEnviar_Click(object sender, EventArgs e) { var filePath = string.Empty; using (OpenFileDialog openFileDialog = new OpenFileDialog()) { openFileDialog.InitialDirectory = "c:\\"; openFileDialog.RestoreDirectory = true; openFileDialog.Title = "Selecione o Arquivo"; if (openFileDialog.ShowDialog() == DialogResult.OK) { //Get the path of specified file filePath = openFileDialog.FileName; } } DataSet ds = new DataSet(); OleDbConnection conexao = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;" + "Data Source='" + filePath + "';Extended Properties=\"Excel 12.0;HDR=YES;\""); OleDbDataAdapter da = new OleDbDataAdapter("Select * From [Planilha1$]", conexao); da.Fill(ds); if (!string.IsNullOrEmpty(tbLink.Text) || string.IsNullOrEmpty(tbLogin.Text) || string.IsNullOrEmpty(tbSenha.Text)) { var bot = new BOT(); if (Convert.ToBoolean(rb1.Checked.ToString()) != false) { bot.Instagram(tbLink.Text, tbLogin.Text, tbSenha.Text, Convert.ToInt32(Enum.QtdPessoas.QtdPessoa.UmaPessoa), ds); } else if (Convert.ToBoolean(rb2.Checked.ToString()) != false) { bot.Instagram(tbLink.Text, tbLogin.Text, tbSenha.Text, Convert.ToInt32(Enum.QtdPessoas.QtdPessoa.DuasPessoas), ds); } else { bot.Instagram(tbLink.Text, tbLogin.Text, tbSenha.Text, Convert.ToInt32(Enum.QtdPessoas.QtdPessoa.TresPessoas), ds); } } else { MessageBox.Show("Digite os campos Link do sorteio, Login, Senha"); } }
override public void buttons_start(int id = 0) { BOT bot2 = new BOT(); //thank(bot2); Bot = new TelegramBotClient("1039097411:AAH8iozi-wYqioC14in_lMgxJ2E5O6ADo8o") { Timeout = TimeSpan.FromSeconds(10) }; Bot.OnMessage += BotOnMessageReiceived; Bot.OnCallbackQuery += Bot_OnCallbackQueryReceived; var me = Bot.GetMeAsync().Result; Console.WriteLine($"Bot id: {me.Id}. Bot Name:{me.FirstName}"); Bot.StartReceiving(); Console.ReadLine(); Bot.StopReceiving(); }
public override bool HandleMessage(Message msg) { try { string cmd = BOT.getAskCmd(msg); if (string.IsNullOrWhiteSpace(cmd)) { return(false); } // 翻译 Regex transreg = new Regex("(\\S+)译(\\S+)\\s+"); var transmatch = transreg.Match(cmd); if (transmatch.Success) { string msgyilist = transmatch.Groups[0].ToString().Trim(); string msgtar = cmd.Substring(msgyilist.Length).Trim(); var lists = msgyilist.Split('译'); if (lists.Length >= 2 && msgtar.Length > 0) { string res = msgtar; for (int i = 0; i < lists.Length - 1; i++) { res = Translation(res, lists[i + 1], lists[i]); } msg.str = res; BOT.sendBack(msg, true); return(true); } } } catch (Exception ex) { FileHelper.Log(ex); } return(false); }
public override bool HandleMessage(Message msg) { string cmd = BOT.getAskCmd(msg); if (string.IsNullOrWhiteSpace(cmd)) { return(false); } Regex bsearchreg = new Regex("(\\S+)区有多少(\\S+)"); var bseatchres = bsearchreg.Match(cmd); bool matchSuccess = false; if (bseatchres.Success) { try { string barea = bseatchres.Groups[1].ToString().Trim() + "区"; string btar = bseatchres.Groups[2].ToString().Trim(); string res = getTitleSearch(barea, btar); msg.str = res; BOT.sendBack(msg, true); return(true); } catch { } } if (cmd.EndsWith("区谁在播") || cmd.EndsWith("区有谁在播") || cmd.EndsWith("区有谁") || cmd.EndsWith("区都有谁")) { string areaname = cmd.Substring(0, cmd.LastIndexOf('区') + 1); msg.str = getLiveNum(areaname); matchSuccess = true; } else if (cmd.EndsWith("区谁最惨")) { string areaname = cmd.Substring(0, cmd.LastIndexOf('区') + 1); msg.str = getPoorLives(areaname); matchSuccess = true; } else if (cmd.Contains("在播吗") || cmd.Contains("播了吗")) { string test = cmd.Replace("在播吗", "").Replace("播了吗", ""); string xnq = getLiveInfo(test); msg.str = getLiveInfo(test); matchSuccess = true; } else if (cmd.StartsWith("别名")) { var items = cmd.Substring(2).Trim().Split(new char[] { ' ', ',', ',' }, StringSplitOptions.RemoveEmptyEntries); if (items.Length >= 2) { setReplaceName(items[0], items[1]); setReplaceName(items[1], items[0]); msg.str = "好"; matchSuccess = true; } } else if (cmd.StartsWith("房间号")) { var items = cmd.Substring(3).Trim().Split(new char[] { ' ', ',', ',' }, StringSplitOptions.RemoveEmptyEntries); if (items.Length >= 2) { setRoomId(items[0], items[1]); msg.str = "好"; matchSuccess = true; } } else if (cmd.StartsWith("查看别名")) { var item = cmd.Substring(4).Trim(); if (item.Length > 0) { var reslist = getNames(item); msg.str = string.Join("/", reslist); matchSuccess = true; } } if (matchSuccess) { BOT.sendBack(msg, true); return(true); } // 才八点 if (cmd.StartsWith("现在几点") || cmd.StartsWith("几点了")) { try { string res = $"现在是{getNowClockCountry(20)}"; msg.str = res; BOT.sendBack(msg); return(true); } catch { } } return(false); }
public override bool HandleMessage(Message msg) { string cmd = BOT.getAskCmd(msg); if (string.IsNullOrWhiteSpace(cmd)) { return(false); } // BTC货币系统 if (msg.fromGroup > 0 && cmd == "签到") { msg.str = btc.dailyAttendance(msg.fromGroup, msg.from); //racehorse.dailyAttendance(group, user); BOT.sendBack(msg, true); return(true); } //if (cmd == "个人信息") //{ // string res = $"{btc.getUserInfo(msg.from)}\r\n{getRHInfo(msg.from)}"; // if (!string.IsNullOrWhiteSpace(res)) // { // msg.str = res; // BOT.sendBack(msg); // return false; // } //} Regex zzs = new Regex("给(.+)转(\\d+)"); var matchzzs = zzs.Match(cmd); if (matchzzs.Success) { try { string target = matchzzs.Groups[1].ToString().Trim(); long targetqq = -1; if (!long.TryParse(target, out targetqq)) { // nick name -> qq targetqq = BOT.getID(target, msg.fromGroup); // targetqq = getQQNumFromGroup(group, target.Trim()); } string res = ""; if (targetqq <= 0) { res = $"群里好像没人叫 {target} ,转账失败。"; } else { long money = long.Parse(matchzzs.Groups[2].ToString()); res = btc.transMoney(msg.from, targetqq, money); } if (!string.IsNullOrWhiteSpace(res)) { msg.str = res; BOT.sendBack(msg, true); return(true); } } catch { } } return(false); }
protected override void InitSource() { btc = BOT.getMoneyManager(); }
static void Main(string[] args) { BOT bot = new BOT(); bot.buttons_start(); }
private static void BotOnMessageReiceived(object sender, Telegram.Bot.Args.MessageEventArgs e) { var message = e.Message; if (l == 0) { BOT bot2 = new BOT(); thank(bot2, message.From.Id); l++; } else { } if (message == null || message.Type != MessageType.Text) { return; } string name = $"{message.From.FirstName} {message.From.LastName}"; if (j == 1) { data3 = message.Text; } Console.WriteLine($"{name} відправив повідомлення: {message.Text}"); Reminder reminder = new Reminder(); switch (message.Text) { case "/start": reminder.buttons_start(message.From.Id); break; case "/set_reminder": reminder.buttons_set_reminder(message.From.Id); if (reminder_k == 0) { Bot.OnCallbackQuery += async(object sc, Telegram.Bot.Args.CallbackQueryEventArgs ev) => { if (i == 0) { BOT.Day = int.Parse(ev.CallbackQuery.Data); Console.WriteLine("day" + BOT.Day); } if (i == 1) { BOT.Hour = int.Parse(ev.CallbackQuery.Data); Console.WriteLine("hour" + BOT.Hour); } if (i == 2) { BOT.Min = int.Parse(ev.CallbackQuery.Data); Console.WriteLine("min" + BOT.Min); string text2 = $"You chose the time: {BOT.Day}:{BOT.Hour}:{BOT.Min}.Now, send the data!!!"; await Bot.SendTextMessageAsync(message.From.Id, text2); // Thread.Sleep(10000); BOT.Data = "/set_reminder"; j++; while (BOT.Data == "/set_reminder") { if (data4 != data3) { BOT.Data = data3; } } j--; Console.WriteLine(BOT.Data); data4 = data3; } i++; if (i == 3) { i = 0; } if (i == 0) { k++; reminder_k++; reminder.time_to_remind(message.From.Id, BOT.Hour, BOT.Min, k, BOT.Data); } }; } break; default: break; } }
static async void BotOnMessageReceived(object sender, MessageEventArgs MessageEventArgs) { Telegram.Bot.Types.Message msg = MessageEventArgs.Message; if (msg == null || msg.Type != MessageType.Text) { return; } string Answer = "Server Error"; if (System.DateTime.UtcNow.Subtract(msg.Date).TotalMinutes > 3) { await BOT.SendTextMessageAsync(msg.Chat.Id, Answer); return; } if (UserList.ContainsKey(msg.Chat.Id)) { UserList[msg.Chat.Id].LastAccess = DateTime.Now; } if (!IsRegistered(msg.Chat.Id)) { if (!UserList.ContainsKey(msg.Chat.Id)) { UserList.Add(msg.Chat.Id, new User()); } Answer = Registration(msg); //регистрация студента }//prev command was /findteacher else if (UserList[msg.Chat.Id].ident == 4) { if (!NameMatches.ContainsKey(msg.Chat.Id)) { var lst = ReturnTeachersId(msg.Text); if (lst.Length == 1) { Answer = LessonTechToStr(TeacherMethods.GetCurrentLesson(lst[0].id), true); UserList[msg.Chat.Id].ident = 3; } else if (lst.Length > 1) { NameMatches.Add(msg.Chat.Id, lst); var s = $"Найдено несколько совпадений:\n"; for (var i = 0; i < lst.Length; i++) { s = s + $"{i + 1}) {lst[i].name}\n"; } s = s + "Ввведи номер выбранного преподавателя."; Answer = s; } else { Answer = "Ошибка, преподаватель не найден! Попробуй ещё раз."; } } else { if (int.TryParse(msg.Text, out int n) && n - 1 < NameMatches[msg.Chat.Id].Length && n - 1 >= 0) { var LCG = TeacherMethods.GetCurrentLesson(NameMatches[msg.Chat.Id][n - 1].id); Answer = LessonTechToStr(LCG, true); UserList[msg.Chat.Id].ident = 3; NameMatches.Remove(msg.Chat.Id); } else { Answer = "Ошибка, введён некорректный номер."; } } } else if (UserList[msg.Chat.Id].ident == 5) { bool onOrOff = msg.Text.ToLower() == "включить"; UserList[msg.Chat.Id].eveningNotify = onOrOff; UserList[msg.Chat.Id].ident = 3; Json_Data.WriteData(); string onOrOffMsg = onOrOff ? "включено" : "выключено"; Answer = $"Вечернее уведомление *{onOrOffMsg}*."; } else if (UserList[msg.Chat.Id].ident == 6) { bool onOrOff = msg.Text.ToLower() == "включить"; UserList[msg.Chat.Id].preLessonNotify = onOrOff; UserList[msg.Chat.Id].ident = 3; Json_Data.WriteData(); string onOrOffMsg = onOrOff ? "включено" : "выключено"; Answer = $"Уведомление за 15 минут до первой пары *{onOrOffMsg}*."; } else { try { switch (msg.Text.ToLower()) // Обработка команд боту { case "/next": case "ближайшая пара": if (UserList[msg.Chat.Id].Info != User.UserInfo.teacher) { Answer = LessonToStr(StudentMethods.GetCurrentLesson(UserList[msg.Chat.Id].groupid), true); } else { Answer = LessonTechToStr(TeacherMethods.GetCurrentLesson(UserList[msg.Chat.Id].teacherId), true); } break; case "/findteacher": case "найти преподавателя": Answer = "Введи фамилию преподавателя"; UserList[msg.Chat.Id].ident = 4; break; case "/week": case "расписание на неделю": if (UserList[msg.Chat.Id].Info != User.UserInfo.teacher) { Answer = WeekSchToStr(StudentMethods.GetWeekSchedule(UserList[msg.Chat.Id].groupid)); } else { Answer = WeekSchTechToStr(TeacherMethods.GetWeekSchedule(UserList[msg.Chat.Id].teacherId)); } break; case "/today": case "расписание на сегодня": if (UserList[msg.Chat.Id].Info != User.UserInfo.teacher) { Answer = DaySchToStr(StudentMethods.GetTodaySchedule(UserList[msg.Chat.Id].groupid)); } else { Answer = DaySchTechToStr(TeacherMethods.GetTodaySchedule(UserList[msg.Chat.Id].teacherId)); } break; case "/tomorrow": case "расписание на завтра": if (UserList[msg.Chat.Id].Info != User.UserInfo.teacher) { Answer = DaySchToStr(StudentMethods.GetTomorrowSchedule(UserList[msg.Chat.Id].groupid)); } else { Answer = DaySchTechToStr(TeacherMethods.GetTomorrowSchedule(UserList[msg.Chat.Id].teacherId)); } break; case "/knowme": case "знаешь меня?": if (UserList[msg.Chat.Id].Info == User.UserInfo.teacher) { Answer = $"Вы {TeacherList[UserList[msg.Chat.Id].teacherId].name}"; //База старая, так что выводим только ФИО!!! } else { Answer = $"Вы {msg.Chat.FirstName.Replace("`","").Replace("_","").Replace("*","")} из группы {StudentMethods.groupIDToCourseGroup(UserList[msg.Chat.Id].groupid)}"; } break; case "/eveningnotify": Answer = $"Сейчас вечернее уведомление о завтрашней первой паре *{(UserList[msg.Chat.Id].eveningNotify? "включено" : "выключено")}*. \nНастройте его."; UserList[msg.Chat.Id].ident = 5; await BOT.SendTextMessageAsync(msg.Chat.Id, Answer, ParseMode.Markdown, replyMarkup : notifierKeyboard); return; case "/prelessonnotify": Answer = $"Сейчас уведомление за 15 минут до первой пары *{(UserList[msg.Chat.Id].preLessonNotify ? "включено" : "выключено")}*. \nНастройте его."; UserList[msg.Chat.Id].ident = 6; await BOT.SendTextMessageAsync(msg.Chat.Id, Answer, ParseMode.Markdown, replyMarkup : notifierKeyboard); return; case "/forget": case "забудь меня": UserList.Remove(msg.Chat.Id); Json_Data.WriteData(); Answer = "Я вас забыл! Для повторной регистрации пиши /start"; await BOT.SendTextMessageAsync(msg.Chat.Id, Answer, replyMarkup : new ReplyKeyboardRemove()); return; case "помощь": case "/help": Answer = _help; break; case "/info": case "информация": Answer = "Меня создали Миша, Дима, Дима, Глеб, Никита, Ира, Максим в рамках проектной деятельности на ФИиИТ в 2018-2019 уч. году.\n" + "Я предоставляю доступ к интерактивному расписанию мехмата через платформу ботов Telegram.\n" + "Если обнаружили ошибку в расписании, проверьте, совпадает ли оно с указанным на schedule.sfedu.ru. " + "При сопададении, для исправления обратитесь в деканат, либо напишите на [email protected], в противном случае напишите [Михаилу](tg://user?id=61026374)."; break; case "/optionalcourses": case "факультативы": Answer = electivesStr; break; case "/curweek": Answer = $"Сейчас *{CurrentSubject.GetCurrentWeek().ToString()}* неделя."; break; case "/forceupdate": logger.Info($"Запрошено принудительное обновление расписаний, ID: {msg.Chat.Id}, @{msg.Chat.Username}."); TeachersInit(false); GradeInit(false); GroupShedListInit(false); TeachersShedInit(false); WeekInit(false); logger.Info($"Завершено принудительное обновление расписаний, ID: {msg.Chat.Id}, @{msg.Chat.Username}."); Answer = "Данные расписаний обновлены!"; break; default: Answer = "Введены неверные данные, повторите попытку."; break; } } catch (System.Net.WebException e) { logger.Error(e, "Catched exeption:"); Answer = "Ошибка! Вероятно, сервер интерактивного расписания недоступен. Пожалуйста, попробуйте повторить запрос позднее."; } } try { if (IsRegistered(msg.Chat.Id)) { await BOT.SendTextMessageAsync(msg.Chat.Id, Answer, ParseMode.Markdown, replyMarkup : UserList[msg.Chat.Id].Info == User.UserInfo.teacher?teacherKeyboard : studentKeyboard); } else if (UserList[msg.Chat.Id].ident == 1) { await BOT.SendTextMessageAsync(msg.Chat.Id, Answer, replyMarkup : registrationKeyboard); } else { await BOT.SendTextMessageAsync(msg.Chat.Id, Answer); } } catch (Exception ex) when(ex is System.Net.Http.HttpRequestException && ex.Message.Contains("429")) { logger.Warn(ex, $"Сетевая ошибка при ответе @{msg.Chat.Username}"); } }
public override bool HandleMessage(Message msg) { try { string cmd = BOT.getAskCmd(msg); if (string.IsNullOrWhiteSpace(cmd)) { return(false); } bool isGroup = msg.fromGroup > 0 ? true : false; //string uid = msg.from.ToString(); long group = msg.fromGroup; if (!users.ContainsKey(msg.from)) { users[msg.from] = new RHUser(msg.from); } RHUser user = users[msg.from]; //BOT.log("赛马 "+cmd); if (cmd == "赛马介绍" || cmd == "赛马玩法" || cmd == "赛马说明") { msg.str = getIntroduction(); BOT.sendBack(msg); return(true); } if (cmd == "富豪榜" || cmd == "富人榜") { string res = BOT.getMoneyManager().showRichest(); if (!string.IsNullOrWhiteSpace(res)) { msg.str = res; BOT.sendBack(msg); return(true); } } if (cmd == "穷人榜") { string res = BOT.getMoneyManager().showPoorest(); if (!string.IsNullOrWhiteSpace(res)) { msg.str = res; BOT.sendBack(msg); return(true); } } if (cmd == "个人信息") { string res = $"{money.getUserInfo(msg.from)}\r\n{getRHInfo(msg.from)}"; if (!string.IsNullOrWhiteSpace(res)) { msg.str = res; BOT.sendBack(msg); return(true); } } else if (cmd == "赛马") { int num = 5; if (!matches.ContainsKey(group)) { matches[group] = new RHMatch(group, this); } matches[group].begin(num, 100); return(true); } else if (cmd == "胜率榜") { msg.str = showBigWinner(); BOT.sendBack(msg); return(true); } else if (cmd == "败率榜") { msg.str = showBigLoser(); BOT.sendBack(msg); return(true); } else if (cmd == "赌狗榜") { msg.str = showMostPlayTime(); BOT.sendBack(msg); return(true); } else { var trygetbet = Regex.Match(cmd, @"(\d+)号\s*(\d+)"); if (trygetbet.Success) { try { int roadnum = int.Parse(trygetbet.Groups[1].ToString()); int money = int.Parse(trygetbet.Groups[2].ToString()); addBet(group, user, roadnum, money); return(true); } catch (Exception ex) { FileHelper.Log(ex); } } } } catch (Exception ex) { FileHelper.Log(ex); } return(false); }
static async void BotOnMessageReceived(object sender, MessageEventArgs MessageEventArgs) { Telegram.Bot.Types.Message msg = MessageEventArgs.Message; if (msg == null || msg.Type != MessageType.Text) { return; } string Answer = "Server Error"; if (DateTime.UtcNow.Subtract(msg.Date).TotalMinutes > 3) { await BOT.SendTextMessageAsync(msg.Chat.Id, Answer); return; } if (UserList.ContainsKey(msg.Chat.Id)) { UserList[msg.Chat.Id].LastAccess = DateTime.Now; } if (!IsRegistered(msg.Chat.Id)) { UserList.Add(msg.Chat.Id, new User() { ident = 3 }); Json_Data.WriteData(); //регистрация в базе } if (UserList[msg.Chat.Id].ident == 5) { bool onOrOff = msg.Text.ToLower() == "включить"; UserList[msg.Chat.Id].eveningNotify = onOrOff; UserList[msg.Chat.Id].ident = 3; Json_Data.WriteData(); string onOrOffMsg = onOrOff ? "включено" : "выключено"; Answer = $"Вечернее уведомление *{onOrOffMsg}*."; } else if (UserList[msg.Chat.Id].ident == 6) { bool onOrOff = msg.Text.ToLower() == "включить"; UserList[msg.Chat.Id].morningNotify = onOrOff; UserList[msg.Chat.Id].ident = 3; Json_Data.WriteData(); string onOrOffMsg = onOrOff ? "включено" : "выключено"; Answer = $"Уведомление за 15 минут до первой пары *{onOrOffMsg}*."; } else { try { switch (msg.Text.ToLower()) // Обработка команд боту { case "/start": Answer = "Добро пожаловать!\n" + _help; break; case "/joke": case "анекдот": do { Answer = Markov.MakeText(1, random).Replace(" . ", ". "); } while (Answer.Length > 4096); //Search for new joke if it exceeds Telegram text msg limit break; case "/knowme": case "знаешь меня?": Answer = $"Вы {msg.Chat.FirstName.Replace("`", "").Replace("_", "").Replace("*", "")}."; break; case "/eveningnotify": Answer = $"Сейчас вечернее уведомление *{(UserList[msg.Chat.Id].eveningNotify ? "включено" : "выключено")}*. \nНастройте его."; UserList[msg.Chat.Id].ident = 5; await BOT.SendTextMessageAsync(msg.Chat.Id, Answer, ParseMode.Markdown, replyMarkup : notifierKeyboard); return; case "/morningnotify": Answer = $"Сейчас утреннее уведомление *{(UserList[msg.Chat.Id].morningNotify ? "включено" : "выключено")}*. \nНастройте его."; UserList[msg.Chat.Id].ident = 6; await BOT.SendTextMessageAsync(msg.Chat.Id, Answer, ParseMode.Markdown, replyMarkup : notifierKeyboard); return; case "/stop": case "стоп": UserList.Remove(msg.Chat.Id); Json_Data.WriteData(); Answer = "Я вас забыл! Для повторной регистрации пиши /start"; await BOT.SendTextMessageAsync(msg.Chat.Id, Answer, replyMarkup : new ReplyKeyboardRemove()); return; case "помощь": case "/help": Answer = _help; break; case "/info": case "информация": Answer = "Прекрасный бот для генерации прекрасного настроения!\n" + "Данный бот, реализованный на марковских цепях, используя базу данных из свыше, чем 100т. анекдотов, способен генерировать новые шедевры комедийного искусства."; break; case "/forceupdate": logger.Info($"Запрошено принудительное обновление, ID: {msg.Chat.Id}, @{msg.Chat.Username}."); logger.Info($"Завершено принудительное обновление, ID: {msg.Chat.Id}, @{msg.Chat.Username}."); Answer = "Данные обновлены!"; break; default: Answer = "Введены неверные данные, повторите попытку."; break; } } catch (System.Net.WebException e) { logger.Error(e, "Catched exeption:"); Answer = "Ошибка! Вероятно, что-то умерло. Пожалуйста, попробуйте повторить запрос позднее."; } } try { await BOT.SendTextMessageAsync(msg.Chat.Id, Answer, ParseMode.Markdown, replyMarkup : defaultKeyboard); } catch (Exception ex) when(ex is System.Net.Http.HttpRequestException && ex.Message.Contains("429")) { logger.Warn(ex, $"Network error while answering @{msg.Chat.Username}"); } catch (Exception ex) when(ex is Telegram.Bot.Exceptions.ApiRequestException) { logger.Warn(ex, $"Telegram API error while answering @{msg.Chat.Username}"); } }