public async Task sentTelegram(string filename, string locationStr, int locationIndex) { try { var bot = new Telegram.Bot.TelegramBotClient("*******************"); List <int> ChatIDList = _context.LocationTelegram.Where(x => x.LocationIndex == locationIndex).Select(x => x.ChatID).ToList(); foreach (int chatID in ChatIDList) { await bot.SendTextMessageAsync(chatID, "From: SkyTech Mask Monitoring System"); await bot.SendTextMessageAsync(chatID, "Subject: Notification of people without mask"); await bot.SendTextMessageAsync(chatID, "Location: " + locationStr); await bot.SendTextMessageAsync(chatID, "Date Time: " + DateTime.Now); await bot.SendTextMessageAsync(chatID, "A person not wearing mask is discovered in the premises.<br/> This is a system generated email. Please do not reply."); using (Stream stream = System.IO.File.OpenRead(filename)) { await bot.SendPhotoAsync(chatID, stream); } } } catch (Exception ex) { Debug.WriteLine("Send telegram"); Debug.WriteLine(ex.InnerException); } }
public async Task <IActionResult> NewMessage([FromForm] NewTelegramMessage newTelegramMessage) { try { _logger.LogInformation($"{newTelegramMessage.ChatId} : {newTelegramMessage.Text}"); var botClient = new Telegram.Bot.TelegramBotClient(newTelegramMessage.BotToken); var me = await botClient.GetMeAsync(); if (newTelegramMessage.File != null) { var resultPhotoMessage = await botClient.SendPhotoAsync(newTelegramMessage.ChatId, new InputMedia(newTelegramMessage.File.OpenReadStream(), newTelegramMessage.File.FileName), newTelegramMessage.Text); return(Ok(resultPhotoMessage.MessageId)); } else { var resultTextMessage = await botClient.SendTextMessageAsync(newTelegramMessage.ChatId, newTelegramMessage.Text); return(Ok(resultTextMessage.MessageId)); } } catch (Exception e) { _logger.LogError(e, e.Message); return(BadRequest(e.Message)); } }
private async static void SendPhotoAsync(long?ChatId, string Caption, byte[] file, IReplyMarkup Markup = null) { if (ChatId.HasValue) { using (MemoryStream ms = new MemoryStream(file)) { await bot.SendPhotoAsync(ChatId, new InputOnlineFile(ms), Caption, ParseMode.Default, false, 0, Markup); } } }
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(""); //Bot.SetWebhook(""); // Обязательно! убираем старую привязку к вебхуку для бота int offset = 0; // отступ по сообщениям while (true) { var newUpdates = await Bot.GetUpdatesAsync(offset); // получаем массив обновлений var updates = newUpdates.Distinct().ToArray(); // убираем повторения из списка новых запросов foreach (var update in updates) // Перебираем все обновления { var message = update.Message; if (message.Type == Telegram.Bot.Types.Enums.MessageType.Text) { if (message.Text == "/getimage" || message.Text == "/getimage@...") //После @ - пишем ссылку на вашего бота!!! Это нужно для исп бота в конфах!!! { ImgurPars imgurPars = new ImgurPars(); // в ответ на команду /getimage выводим картинку await Bot.SendPhotoAsync(message.Chat.Id, imgurPars.GeneratePictur()); } } offset = update.Id + 1; } } } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { Console.WriteLine(ex.Message); // если ключ не подошел - пишем об этом в консоль отладки } }
private async Task <string> SendPhotoAndSaveFileId(AttachmentFs attachmentFs) { if (BotInfo == null) { BotInfo = Bot.GeneralFunction.GetBotInfo(); } try { string token = BotInfo.Token; TelegramBotClient = new Telegram.Bot.TelegramBotClient(token); System.IO.Stream stream = new MemoryStream(attachmentFs.Fs); Telegram.Bot.Types.FileToSend fileToSend = new Telegram.Bot.Types.FileToSend { Content = stream, Filename = "Photo.jpg" }; var Message = await TelegramBotClient.SendPhotoAsync(BotInfo.OwnerChatId, fileToSend); string Fileid = Message.Photo[Message.Photo.Length - 1].FileId; AttachmentTelegramFunction.AddAttachmentTelegram(attachmentFs.Id, BotInfo.Id, Fileid); return(Fileid); } catch { return(null); } }
public async void BotOnMessageReceived(object sender, MessageEventArgs messageEventArgs) { Message message = messageEventArgs.Message; if (message == null || message.Type != MessageType.TextMessage) { return; } _chatid = message.Chat.Id; try { Logger.ColoredConsoleWrite(ConsoleColor.Red, "[TelegramAPI] Got Request from " + message.From.Username + " | " + message.Text); string username = _clientSettings.TelegramName; string telegramAnswer = string.Empty; if (username != message.From.Username) { using (System.IO.Stream stream = new System.IO.MemoryStream()) { Properties.Resources.norights.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); stream.Position = 0; await _telegram.SendPhotoAsync(_chatid, new FileToSend("norights.jpg", stream), replyMarkup : new ReplyKeyboardHide()); } return; } // [0]-Commando; [1+]-Argument string[] textCMD = message.Text.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); TelegramUtilTask cmd = getTask(textCMD[0]); switch (cmd) { case TelegramUtilTask.UNKNOWN: telegramAnswer = string.Format("Usage:\r\n{0}\r\n{1}\r\n{2}\r\n{3}\r\n{4}", @"/stats - Get Current Stats", @"/livestats - Enable/Disable Live Stats", @"/information <topic> - Enable/Disable Information topics", @"/top <HowMany?> - Outputs Top (?) Pokemons", @"/forceevolve - Forces Evolve"); break; case TelegramUtilTask.GET_STATS: var inventory = await _client.GetInventory(); var profil = await _client.GetProfile(); IEnumerable <PlayerStats> stats = inventory.InventoryDelta.InventoryItems .Select(i => i.InventoryItemData.PlayerStats) .Where(i => i != null); foreach (PlayerStats ps in stats) { int l = ps.Level; long expneeded = ((ps.NextLevelXp - ps.PrevLevelXp) - StringUtils.getExpDiff(ps.Level)); long curexp = ((ps.Experience - ps.PrevLevelXp) - StringUtils.getExpDiff(ps.Level)); double curexppercent = (Convert.ToDouble(curexp) / Convert.ToDouble(expneeded)) * 100; string curloc = _client.CurrentLat + "%20" + _client.CurrentLng; curloc = curloc.Replace(",", "."); string curlochtml = "https://www.google.de/maps/search/" + curloc + "/"; double shortenLng = Math.Round(_client.CurrentLng, 3); double shortenLat = Math.Round(_client.CurrentLat, 3); string pokemap = shortenLat + ";" + shortenLng; pokemap = pokemap.Replace(",", ".").Replace(";", ","); string pokevishtml = "https://skiplagged.com/pokemon/#" + pokemap + ",14"; telegramAnswer += "\nNickname: " + profil.Profile.Username + "\nLevel: " + ps.Level + "\nEXP Needed: " + ((ps.NextLevelXp - ps.PrevLevelXp) - StringUtils.getExpDiff(ps.Level)) + $"\nCurrent EXP: {curexp} ({Math.Round(curexppercent)}%)" + "\nEXP to Level up: " + ((ps.NextLevelXp) - (ps.Experience)) + "\nKM walked: " + ps.KmWalked + "\nPokeStops visited: " + ps.PokeStopVisits + "\nStardust: " + profil.Profile.Currency.ToArray()[1].Amount + "\nPokemons: " + await _inventory.getPokemonCount() + "/" + profil.Profile.PokeStorage + "\nItems: " + await _inventory.getInventoryCount() + " / " + profil.Profile.ItemStorage + "\nCurentLocation:\n" + curlochtml + "\nPokevision:\n" + pokevishtml; } break; case TelegramUtilTask.GET_TOPLIST: int shows = 10; if (textCMD.Length > 1 && !int.TryParse(textCMD[1], out shows)) { telegramAnswer += $"Error! This is not a Number: {textCMD[1]}\nNevermind...\n"; shows = 10; //TryParse error will reset to 0 } telegramAnswer += "Showing " + shows + " Pokemons...\nSorting..."; await _telegram.SendTextMessageAsync(_chatid, telegramAnswer, replyMarkup : new ReplyKeyboardHide()); var myPokemons = await _inventory.GetPokemons(); myPokemons = myPokemons.OrderByDescending(x => x.Cp); var profile = await _client.GetProfile(); telegramAnswer = $"Top {shows} Pokemons of {profile.Profile.Username}:"; IEnumerable <PokemonData> topPokemon = myPokemons.Take(shows); foreach (PokemonData pokemon in topPokemon) { telegramAnswer += string.Format("\n{0} ({1}) | CP: {2} ({3}% perfect)", pokemon.PokemonId, StringUtils.getPokemonNameGer(pokemon.PokemonId), pokemon.Cp, PokemonInfo.CalculatePokemonPerfection(pokemon)); } break; case TelegramUtilTask.SWITCH_LIVESTATS: _livestats = SwitchAndGetAnswer(_livestats, out telegramAnswer, "Live Stats"); break; case TelegramUtilTask.SWITCH_INFORMATION: //_informations = SwitchAndGetAnswer(_informations, out telegramAnswer, "Information"); Array topics = Enum.GetValues(typeof(TelegramUtilInformationTopics)); if (textCMD.Length > 1) { if (textCMD[1] == "all-enable") { foreach (TelegramUtilInformationTopics topic in topics) { String niceName = topic.ToString().Substring(0, 1).ToUpper() + topic.ToString().Substring(1).ToLower(); telegramAnswer += "Enabled information topic " + niceName + "\n"; _information[topic] = true; } break; } else if (textCMD[1] == "all-disable") { foreach (TelegramUtilInformationTopics topic in topics) { String niceName = topic.ToString().Substring(0, 1).ToUpper() + topic.ToString().Substring(1).ToLower(); telegramAnswer += "Disabled information topic " + niceName + "\n"; _information[topic] = false; } break; } else { foreach (TelegramUtilInformationTopics topic in topics) { String niceName = topic.ToString().Substring(0, 1).ToUpper() + topic.ToString().Substring(1).ToLower(); telegramAnswer = (_information[topic] ? "Dis" : "En") + "abled information topic " + niceName + "\n"; _information[topic] = !_information[topic]; break; } } } else { foreach (TelegramUtilInformationTopics topic in topics) { String niceName = topic.ToString().Substring(0, 1).ToUpper() + topic.ToString().Substring(1).ToLower(); telegramAnswer += " - " + niceName + "\n"; telegramAnswer += " - " + _informationDescription[topic] + "\n"; telegramAnswer += " - Currently " + (_information[topic] ? "enabled" : "disabled") + "\n"; telegramAnswer += "\n"; } telegramAnswer += " - all-disable\n"; telegramAnswer += " - " + TranslationHandler.getString("telegram-disable-all", "Disable all topics") + "\n"; telegramAnswer += "\n"; telegramAnswer += " - all-enable\n"; telegramAnswer += " - " + TranslationHandler.getString("telegram-enable-all", "Enable all topics") + "\n"; telegramAnswer += "\n"; break; } break; case TelegramUtilTask.RUN_FORCEEVOLVE: IEnumerable <PokemonData> pokemonToEvolve = await _inventory.GetPokemonToEvolve(null); if (pokemonToEvolve.Count() > 3) { await _inventory.UseLuckyEgg(_client); } foreach (PokemonData pokemon in pokemonToEvolve) { if (_clientSettings.pokemonsToEvolve.Contains(pokemon.PokemonId)) { var evolvePokemonOutProto = await _client.EvolvePokemon((ulong)pokemon.Id); if (evolvePokemonOutProto.Result == EvolvePokemonOut.Types.EvolvePokemonStatus.PokemonEvolvedSuccess) { await _telegram.SendTextMessageAsync(_chatid, $"Evolved {pokemon.PokemonId} successfully for {evolvePokemonOutProto.ExpAwarded}xp", replyMarkup : new ReplyKeyboardHide()); } else { await _telegram.SendTextMessageAsync(_chatid, $"Failed to evolve {pokemon.PokemonId}. EvolvePokemonOutProto.Result was {evolvePokemonOutProto.Result}, stopping evolving {pokemon.PokemonId}", replyMarkup : new ReplyKeyboardHide()); } await RandomHelper.RandomDelay(1000, 2000); } } telegramAnswer = "Done."; break; } await _telegram.SendTextMessageAsync(_chatid, telegramAnswer, replyMarkup : new ReplyKeyboardHide()); } catch (Exception ex) { if (ex is ApiRequestException) { await _telegram.SendTextMessageAsync(_chatid, (ex as ApiRequestException).Message, replyMarkup : new ReplyKeyboardHide()); } } }
async void bw_DoWork(object sender, DoWorkEventArgs e) { var worker = sender as BackgroundWorker; string key = "622335668:AAEv62L9dRi4BH6JVyW8gfEg-tCmd-qTRXo"; try { var Bot = new Telegram.Bot.TelegramBotClient(key); await Bot.SetWebhookAsync(""); // Callback'и от кнопок Bot.OnCallbackQuery += async(object sc, Telegram.Bot.Args.CallbackQueryEventArgs ev) => { var message = ev.CallbackQuery.Message; if (ev.CallbackQuery.Data == "callback0") { await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id, "You hav choosen " + ev.CallbackQuery.Data, true); } else if (ev.CallbackQuery.Data.Contains("correctAnswer")) { await Bot.SendTextMessageAsync(message.Chat.Id, "Вірно!", replyToMessageId : message.MessageId); await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id); // видаляє очікування (годинник) GetQuestion(Bot, ev, message); string tCountry = ev.CallbackQuery.Data.Replace("correctAnswer", ""); BotAs.RightAnswer(tCountry); } else if (ev.CallbackQuery.Data == "wrongAnswer") { await Bot.SendTextMessageAsync(message.Chat.Id, "Емм..Ні. Йдем далі...", replyToMessageId : message.MessageId); await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id); // видаляє очікування (годинник) GetQuestion(Bot, ev, message); BotAs.WrongAnswer(); } else if (ev.CallbackQuery.Data.Contains("Continent:")) { string tContinent = ev.CallbackQuery.Data.Replace("Continent:", ""); await Bot.SendTextMessageAsync(message.Chat.Id, "Хмм, сміливо!", replyToMessageId : message.MessageId); BotAs.ChooseContinent(tContinent); GetQuestion(Bot, ev, message); } }; 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.Text) { if (message.Text == "/hello") { await Bot.SendTextMessageAsync(message.Chat.Id, "Хелова", replyToMessageId : message.MessageId); } if (message.Text == "/getimage") { await Bot.SendPhotoAsync(message.Chat.Id, "https://static.365info.kz/uploads/2019/03/a346a3729504594579883eeb12a38d80.jpg", "Та й таке!"); } if (message.Text == "/stopgame") { await Bot.SendTextMessageAsync(message.Chat.Id, "Гру завершено! Правильних: " + BotAs.RightAnswers + " з " + (BotAs.WrongAnswers + BotAs.RightAnswers), replyToMessageId : message.MessageId); BotAs.OverGame(); } if (message.Text == "/capitals") { BotAs.StartGame(); List <string> continents = BotAs.GetContinents(); continents.Add("Все"); Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[] Keys = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[continents.Count]; int i = 0; foreach (string continent in continents) { Keys[i] = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton { Text = continent, CallbackData = "Continent:" + continent }; i++; } var keyboard = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup( new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][] { Keys } ); await Bot.SendTextMessageAsync(message.Chat.Id, "З чого розпочнемо гру?", replyMarkup : keyboard); } } }; Bot.StartReceiving(); } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { Console.WriteLine(ex.Message); } }
async void GetQuestion(Telegram.Bot.TelegramBotClient Bot, Telegram.Bot.Args.CallbackQueryEventArgs ev, Telegram.Bot.Types.Message message) { await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id); if (!BotAs.GameStarted) { BotAs = new BotAssistent(); } Country country = BotAs.GetRandomCountry(); string tCountry1 = country.Name; string tCapital1 = country.Capital; string tFlagPath = country.Flag; string tCapital2 = BotAs.GetRandomCapital(tCapital1, ""); string tCapital3 = BotAs.GetRandomCapital(tCapital1, tCapital2); //Визначаємо рандомно порядок правильної відповіді Random rnd = new Random(); int rndValue = rnd.Next(1, 4); Dictionary <int, string> dic = new Dictionary <int, string>(); dic.Add(rndValue, tCapital1); if (rndValue == 1) { dic.Add(2, tCapital2); dic.Add(3, tCapital3); } else if (rndValue == 2) { dic.Add(1, tCapital2); dic.Add(3, tCapital3); } else { dic.Add(1, tCapital2); dic.Add(2, tCapital3); } dic = dic.OrderBy(x => x.Key).ToDictionary(y => y.Key, z => z.Value); var keyboard = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup( new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton[][] { new [] { new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton { Text = dic[1], CallbackData = (rndValue == 1) ? "correctAnswer" + tCountry1 : "wrongAnswer" }, new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton { Text = dic[2], CallbackData = (rndValue == 2) ? "correctAnswer" + tCountry1 : "wrongAnswer" }, new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardButton { Text = dic[3], CallbackData = (rndValue == 3) ? "correctAnswer" + tCountry1 : "wrongAnswer" }, }, } ); await Bot.SendTextMessageAsync(message.Chat.Id, tCountry1 + " ?", replyMarkup : keyboard); await Bot.SendPhotoAsync(message.Chat.Id, tFlagPath, ""); }
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) { bool answer = false; var translate = new Translate(); var worker = sender as BackgroundWorker; Telegram.Bot.Types.User u = new Telegram.Bot.Types.User(); var key = e.Argument as String; try { var Bot = new Telegram.Bot.TelegramBotClient(key); await Bot.SetWebhookAsync(""); int offset = 0; while (true) { var updates = await Bot.GetUpdatesAsync(offset); foreach (var update in updates) { var message = update.Message; if (message == null) { continue; }/* * if ((message.Type == Telegram.Bot.Types.Enums.MessageType.StickerMessage)&&(message.From.FirstName=="Infinity")) * await Bot.DeleteMessageAsync(message.Chat.Id, message.MessageId);*/ if (message.Type == Telegram.Bot.Types.Enums.MessageType.TextMessage) { //music /*if(message.Text.Contains("/music")) * { * Telegram.Bot.Types.FileToSend f = new Telegram.Bot.Types.FileToSend("https://www.dropbox.com/s/1nwbwwe8d4m58uk/Death%20Note%20-%20L%27s%20Theme%20%28full%29.mp3"); * await Bot.SendDocumentAsync(message.Chat.Id, f, "here it`s"); * }*/ //crypt DateTime d = DateTime.Now; if (d.Minute % 15 == 0) { await Bot.SendTextMessageAsync(message.Chat.Id, "vote for AA!"); } if (message.Text.Contains("/encrypt")) { EnCrypt crypt = new EnCrypt(); try { string[] s = message.Text.Split(' ').ToArray(); string res = crypt.EncryptOrDecrypt(message.Text.Substring(message.Text.IndexOf("t") + 2), "1234"); await Bot.SendTextMessageAsync(message.Chat.Id, res, replyToMessageId : message.MessageId); } catch (Exception) { await Bot.SendTextMessageAsync(message.Chat.Id, "error", replyToMessageId : message.MessageId); } try { await Bot.DeleteMessageAsync(message.Chat.Id, message.MessageId); } catch (Exception) { } } //rev if (message.Text.ToLower().Contains("/realrevolution")) { try { await Bot.SendTextMessageAsync(message.Chat.Id, "It`s a revolution.", replyToMessageId : message.MessageId); await Bot.SendTextMessageAsync(message.Chat.Id, "В основном(5 человек) поддержали идею свержения Дани за:"); await Bot.SendTextMessageAsync(message.Chat.Id, "• Смену названия группы"); await Bot.SendTextMessageAsync(message.Chat.Id, "• Ненависть к аниме"); await Bot.SendTextMessageAsync(message.Chat.Id, "• Нечестные глосования(накрутка)"); await Bot.SendTextMessageAsync(message.Chat.Id, "Итак, мы свергаем его, и всеми банами/нарушениями будет заниматся БОТ. Только система будет определять меру присечения человека."); await Bot.SendTextMessageAsync(message.Chat.Id, "Админами будут я Бот, и тот, кого выберут на новом голо-и."); await Bot.SetChatTitleAsync(message.Chat.Id, "AAA club oficial"); } catch (Exception) { } } //ban if (message.Text.ToLower().Contains("/ban")) { var ban = new Ban(); try { ban.GetMessage(message.Text); } catch (Exception) { await Bot.SendTextMessageAsync(message.Chat.Id, message.From.FirstName + " " + message.From.LastName + "(" + message.From.Username + " pidor ne lamay bota"); } if (ban.NeedToBan()) { await Bot.SendTextMessageAsync(message.Chat.Id, "Sviatoslav(@pauchok1love) ban please " + ban.Name(), replyToMessageId : message.MessageId); } else { await Bot.SendTextMessageAsync(message.Chat.Id, "system don`t need to ban " + ban.Name(), replyToMessageId : message.MessageId); } } //counter if (message.Text.ToLower().Contains("/counter")) { if (message.Text.Substring(message.Text.IndexOf("r") + 2).Length > 5) { await Bot.SendTextMessageAsync(message.Chat.Id, "error"); continue; } Mamkate mamkate = new Mamkate(); mamkate.GetTime(Convert.ToInt32(message.Text.Substring(message.Text.IndexOf("r") + 2))); try { await Bot.SendTextMessageAsync(message.Chat.Id, mamkate.Timer()); } catch (Exception) { await Bot.SendTextMessageAsync(message.Chat.Id, "error"); } } //trigger if (message.Text.Contains("/trigger")) { if (message.Text.ToLower().Contains("dania") || message.Text.ToLower().Contains("даня")) { Telegram.Bot.Types.FileToSend f = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/ee1rvx/image.png"); Telegram.Bot.Types.FileToSend f2 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/mR9Gfx/20180228_073506_1.jpg"); Telegram.Bot.Types.FileToSend f1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/janjhc/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, f, "trigger #1"); await Bot.SendPhotoAsync(message.Chat.Id, f1, "trigger #2"); await Bot.SendPhotoAsync(message.Chat.Id, f2, "trigger #3"); } if (message.Text.ToLower().Contains("mark") || message.Text.ToLower().Contains("марк")) { Telegram.Bot.Types.FileToSend f = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/nMRLOH/image.png"); Telegram.Bot.Types.FileToSend f1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/dOnMVx/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, f, "trigger #1"); await Bot.SendPhotoAsync(message.Chat.Id, f1, "trigger #2"); } if (message.Text.ToLower().Contains("slavka") || message.Text.ToLower().Contains("славка")) { Telegram.Bot.Types.FileToSend f = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/gjhzHc/image.png"); Telegram.Bot.Types.FileToSend f2 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/jsLiCn/image.png"); Telegram.Bot.Types.FileToSend f1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/cJvEiH/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, f, "trigger #1"); await Bot.SendPhotoAsync(message.Chat.Id, f1, "trigger #2"); await Bot.SendPhotoAsync(message.Chat.Id, f2, "trigger #3"); } if (message.Text.ToLower().Contains("artur") || message.Text.ToLower().Contains("arturik") || message.Text.ToLower().Contains("артур") || message.Text.ToLower().Contains("артурик")) { Telegram.Bot.Types.FileToSend f = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/cC4tAx/image.png"); Telegram.Bot.Types.FileToSend f1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/e3PRVx/image.png"); Telegram.Bot.Types.FileToSend f2 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/bMt8Sc/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, f, "trigger #1"); await Bot.SendPhotoAsync(message.Chat.Id, f1, "trigger #2"); await Bot.SendPhotoAsync(message.Chat.Id, f2, "trigger #3"); } if (message.Text.ToLower().Contains("paliy") || message.Text.ToLower().Contains("палий")) { Telegram.Bot.Types.FileToSend f = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/mYqBxc/image.png"); Telegram.Bot.Types.FileToSend f1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/ddXmfx/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, f, "trigger #1"); await Bot.SendPhotoAsync(message.Chat.Id, f1, "trigger #2"); } } //fox if (message.Text.ToLower().Contains("fox")) { Telegram.Bot.Types.FileToSend fs = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/cfkqJS/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, fs, "here is a fox #1"); Telegram.Bot.Types.FileToSend fs1 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/h0hqk7/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, fs1, "here is a fox #2"); } //say(need to upgrate) if (message.Text == "/say" || message.Text == "/say@aaaclub_bot") { await Bot.SendTextMessageAsync(message.Chat.Id, "slavka", replyToMessageId : message.MessageId); } //anime need to upgrate if (message.Text == "/anime" || message.Text == "/anime@aaaclub_bot") { //await Bot.SendTextMessageAsync(message.Chat.Id, "Chose ganre", replyToMessageId: message.MessageId); var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] { new Telegram.Bot.Types.KeyboardButton("for paliy"), new Telegram.Bot.Types.KeyboardButton("for normal people"), new Telegram.Bot.Types.KeyboardButton("for artuturik") }, }, ResizeKeyboard = true }; keyboard.OneTimeKeyboard = true; await Bot.SendTextMessageAsync(message.Chat.Id, "Chose ganre?", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboard); } //monday if (message.Text == "/monday" || message.Text == "/monday@aaaclub_bot") { var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] { new Telegram.Bot.Types.KeyboardButton("yes, i`m ready"), new Telegram.Bot.Types.KeyboardButton("no, i`m not ready") }, }, ResizeKeyboard = true }; keyboard.OneTimeKeyboard = true; await Bot.SendTextMessageAsync(message.Chat.Id, "are u ready to zalupa?", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboard); } //answer to sqr if (answer) { try { string s = message.Text.ToLower(); if (math_1.input_message(s) == "error") { await Bot.SendTextMessageAsync(message.Chat.Id, "error", replyToMessageId : message.MessageId); } else { double x1 = 0, x2 = 0; math_1.x1x2(ref x1, ref x2); if (x1 == 2.228 && x2 == 2.228) { await Bot.SendTextMessageAsync(message.Chat.Id, "there are no roots", replyToMessageId : message.MessageId); } if (x2 == 2.228 && x1 != 2.228) { await Bot.SendTextMessageAsync(message.Chat.Id, "there is one root: " + Convert.ToString(x1), replyToMessageId : message.MessageId); } if (x1 != 2.228 && x2 != 2.228) { await Bot.SendTextMessageAsync(message.Chat.Id, "thereare two roots: " + Convert.ToString(x1) + " " + Convert.ToString(x2), replyToMessageId : message.MessageId); } } answer = false; } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { await Bot.SendTextMessageAsync(message.Chat.Id, "error", replyToMessageId : message.MessageId); } } //sqr if (message.Text == "/sqr" || message.Text == "/sqr@aaaclub_bot") { await Bot.SendTextMessageAsync(message.Chat.Id, "send me numbers", replyToMessageId : message.MessageId); answer = true; } //zinia answer if ((message.Text.ToLower().Contains("zinia") || message.Text.ToLower().Contains("зиня")) && !message.Text.ToLower().Contains("/zinia")) { Zinia zinia = new Zinia(); await Bot.SendTextMessageAsync(message.Chat.Id, zinia.res(message), replyToMessageId : message.MessageId); } //photo #1 if (message.Text == "/mamka" || message.Text == "/mamka@aaaclub_bot") { Telegram.Bot.Types.FileToSend fs = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/joBJ7c/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, fs, "mamka"); } //photo #2 if (message.Text == "/doge" || message.Text == "/doge@aaaclub_bot") { Telegram.Bot.Types.FileToSend fs = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/dHKuxc/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, fs, "doge #1"); Telegram.Bot.Types.FileToSend fs2 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/eV56Ax/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, fs2, "doge #2"); Telegram.Bot.Types.FileToSend fs3 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/cQhQ3H/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, fs3, "doge #3"); Telegram.Bot.Types.FileToSend fs4 = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/cgajxc/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, fs4, "doge #4"); } //mark`s code if (message.Text == "/pron" || message.Text == "/pron@aaaclub_bot") { await Bot.SendTextMessageAsync(message.Chat.Id, "zaidi v kod marka: https://drive.google.com/open?id=1_MTeOLrL1KMg2bP7jCob7fRSeOL0-osg", replyToMessageId : message.MessageId); } //nakuzin if (message.Text == "/nakuzin") { await Bot.SendTextMessageAsync(message.Chat.Id, "hAAAAA NAEBAL!"); } //mining if (message.Text == "/mining" || message.Text == "/mining@aaaclub_bot") { Telegram.Bot.Types.FileToSend fs = new Telegram.Bot.Types.FileToSend("https://media.giphy.com/media/cAy7aIZ4dv5KiOAjFs/giphy.gif"); await Bot.SendDocumentAsync(message.Chat.Id, fs, "mayni dogecoini: https://cryptocash.guru/coin/dogecoin/majning-kriptovalyuty-dogecoin/"); } //answers if (message.Text.ToLower() == "yes, i`m ready") { await Bot.SendTextMessageAsync(message.Chat.Id, "then u will die from biologi", replyToMessageId : message.MessageId); } if (message.Text.ToLower() == "no, i`m not ready") { await Bot.SendTextMessageAsync(message.Chat.Id, "you will die on zalupa", replyToMessageId : message.MessageId); } if (message.Text.ToLower() == "for normal people") { await Bot.SendTextMessageAsync(message.Chat.Id, "go to yummyanime.com/catalog/item/milyj-vo-frankce", replyToMessageId : message.MessageId); } if (message.Text.ToLower() == "for paliy") { await Bot.SendTextMessageAsync(message.Chat.Id, "https://yummyanime.com/catalog/item/lyubovnye-nepriyatnosti-tv1", replyToMessageId : message.MessageId); } if (message.Text.ToLower() == "for artuturik") { await Bot.SendTextMessageAsync(message.Chat.Id, "https://yummyanime.com/catalog/item/plastikovye-vospominaniya", replyToMessageId : message.MessageId); } //anime hater if ((message.Text.ToLower().Contains("anime") || message.Text.ToLower().Contains("аниме")) && !message.Text.ToLower().Contains("/")) { await Bot.SendTextMessageAsync(message.Chat.Id, "ANIME - tupoe govno tupogo govna", replyToMessageId : message.MessageId); } //translate if (message.Text.ToLower().Contains("/translate")) { int index = message.Text.ToLower().IndexOf("e"); string s_res = String.Empty; try { s_res = message.Text.ToLower().Substring(index + 2); } catch (Exception) { await Bot.SendTextMessageAsync(message.Chat.Id, "error", replyToMessageId : message.MessageId); } await Bot.SendTextMessageAsync(message.Chat.Id, translate.tr(s_res), replyToMessageId : message.MessageId); } //mamkate if (message.Text.ToLower().Contains("/mamkate")) { int index = message.Text.ToLower().IndexOf("e"); string s_res = String.Empty; try { s_res = message.Text.ToLower().Substring(index + 2); } catch (Exception) { await Bot.SendTextMessageAsync(message.Chat.Id, "error", replyToMessageId : message.MessageId); } Mamkate mamkate = new Mamkate(); await Bot.SendTextMessageAsync(message.Chat.Id, mamkate.tr(s_res), replyToMessageId : message.MessageId); } //analis rechi 2117 if (message.Text.ToLower().Contains("kofe") || message.Text.ToLower().Contains("кофе")) { Telegram.Bot.Types.FileToSend file = new Telegram.Bot.Types.FileToSend("https://image.ibb.co/jag72c/image.png"); await Bot.SendPhotoAsync(message.Chat.Id, file, "buy kofee for me, " + message.From.FirstName); } if (message.Text.ToLower().Contains("didur") || message.Text.ToLower().Contains("дидур")) { await Bot.SendTextMessageAsync(message.Chat.Id, "BLYAT DIDUR PIDOR", replyToMessageId : message.MessageId); } if (message.Text.ToLower().Contains("amd") || message.Text.ToLower().Contains("амд")) { await Bot.SendTextMessageAsync(message.Chat.Id, "AMD IS THE BEST KOMPANY", replyToMessageId : message.MessageId); } if (message.Text.ToLower().Contains("intel") || message.Text.ToLower().Contains("интел")) { await Bot.SendTextMessageAsync(message.Chat.Id, "INTEL HUINIA)", replyToMessageId : message.MessageId); } if (message.Text.ToLower().Contains("думал") || message.Text.ToLower().Contains("думать")) { await Bot.SendTextMessageAsync(message.Chat.Id, "Не надо думать, у вас такого органа нет", replyToMessageId : message.MessageId); } /* * if (message.Text.ToLower() .Contains("slavka daun")|| message.Text.ToLower().Contains("slavka eblan")|| message.Text.ToLower().Contains("славка даун") || message.Text.ToLower().Contains("славка еблан")) * { * //ban * * //u = message.From; * try * { * await Bot.SetChatDescriptionAsync(message.Chat.Id, message.Chat.Description + " " + message.From.FirstName + " " + message.From.LastName + " - pidrila"); * await Bot.DeleteMessageAsync(message.Chat.Id, message.MessageId); * } * catch(Exception) * { * * } * * }/* * if(u.FirstName!=null) * if(message.From.FirstName.ToLower()==u.FirstName.ToLower()) * { * await Bot.SendTextMessageAsync(message.Chat.Id, "SASAT, pidrila", replyToMessageId: message.MessageId); * } */ } offset = update.Id + 1; } } } catch (Exception) { Console.WriteLine(); } }
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); await Bot.SetWebhookAsync(""); int offset = 0; while (true) { Update[] updates; decimal conAttempts = 1; decimal allwaitingseconds = 0; while (true) { try { updates = await Bot.GetUpdatesAsync(offset); } catch (Exception ex) { allwaitingseconds += (conAttempts / 10); SendLog("No connection for the last " + allwaitingseconds + " seconds, attempt = " + conAttempts++); Thread.Sleep((int)conAttempts * 100); continue; } conAttempts = 1; break; } foreach (var update in updates) { Person p = null; if (update.Message.From.Username != null) { p = new Person(update.Message.From.Id, update.Message.From.Username, constr); } else { p = new Person(update.Message.From.Id, update.Message.From.FirstName + " " + update.Message.From.LastName, constr); } var keyboardStandart = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] { new Telegram.Bot.Types.KeyboardButton("Задание"), }, new[] { new Telegram.Bot.Types.KeyboardButton("Очки"), new Telegram.Bot.Types.KeyboardButton("ТОП-10"), new Telegram.Bot.Types.KeyboardButton("Помощь") }, }, OneTimeKeyboard = false, ResizeKeyboard = true }; var keyboardStandartFail = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] { new Telegram.Bot.Types.KeyboardButton("Задание") }, new[] { new Telegram.Bot.Types.KeyboardButton("Очки"), new Telegram.Bot.Types.KeyboardButton("ТОП-10"), new Telegram.Bot.Types.KeyboardButton("Помощь") }, new[] { new Telegram.Bot.Types.KeyboardButton("Ошибка в последнем вопросе?") }, }, OneTimeKeyboard = false, ResizeKeyboard = true }; var keyboardSerial = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] { new Telegram.Bot.Types.KeyboardButton(p.VSerial[0]), new Telegram.Bot.Types.KeyboardButton(p.VSerial[1]), new Telegram.Bot.Types.KeyboardButton(p.VSerial[2]), new Telegram.Bot.Types.KeyboardButton(p.VSerial[3]) }, }, OneTimeKeyboard = false, ResizeKeyboard = true }; var keyboardSeason = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup(); if (p.C_serial == "SGU") { keyboardSeason = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] { new Telegram.Bot.Types.KeyboardButton("1"), new Telegram.Bot.Types.KeyboardButton("2") }, }, OneTimeKeyboard = false, ResizeKeyboard = true }; } else { keyboardSeason = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] { new Telegram.Bot.Types.KeyboardButton(p.V_Season[0]), new Telegram.Bot.Types.KeyboardButton(p.V_Season[1]), new Telegram.Bot.Types.KeyboardButton(p.V_Season[2]), new Telegram.Bot.Types.KeyboardButton(p.V_Season[3]) }, }, OneTimeKeyboard = false, ResizeKeyboard = true }; } var keyboardSeries = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] { new Telegram.Bot.Types.KeyboardButton(p.V_Series[0]) }, new[] { new Telegram.Bot.Types.KeyboardButton(p.V_Series[1]) }, new[] { new Telegram.Bot.Types.KeyboardButton(p.V_Series[2]) }, new[] { new Telegram.Bot.Types.KeyboardButton(p.V_Series[3]) }, }, OneTimeKeyboard = false, ResizeKeyboard = true }; var message = update.Message; bool recognise = false; if (message.Type == Telegram.Bot.Types.Enums.MessageType.TextMessage) { #region stand_0 if (p.stand == 0) { if (message.Text == "/start") { p.Ask = false; recognise = true; if (p.task.Contains("http")) { await Bot.SendPhotoAsync(message.Chat.Id, new FileToSend(p.task), "Из какого сериала или фильмов эта картинка?", false, 0, keyboardSerial); } else { await Bot.SendTextMessageAsync(message.Chat.Id, "Из какого сериала или фильмов эта фраза? \n\n" + p.task, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardSerial); } } if (message.Text == p.VSerial[0] || message.Text == p.VSerial[1] || message.Text == p.VSerial[2] || message.Text == p.VSerial[3]) { p.Ask = false; recognise = true; if (message.Text == p.C_serial) { if (p.C_serial == "Movies") { p.stand += 2; p.SaveToSQl(); SendLog(message.Text + " FROM " + p.UserName + " ITIS " + "Correct" + " STAND " + p.stand + " TASK_ID " + p.taskId); if (p.task.Contains("http")) { await Bot.SendPhotoAsync(message.Chat.Id, new FileToSend(p.task), p.C_serial + ", верно! Какой фильм?", false, 0, keyboardSeries); } else { await Bot.SendTextMessageAsync(message.Chat.Id, p.C_serial + ", верно! Какой фильм? \n\n" + p.task, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardSeries); } } else { p.stand++; p.SaveToSQl(); SendLog(message.Text + " FROM " + p.UserName + " ITIS " + "Correct" + " STAND " + p.stand + " TASK_ID " + p.taskId); if (p.task.Contains("http")) { await Bot.SendPhotoAsync(message.Chat.Id, new FileToSend(p.task), p.C_serial + ", верно! Какой сезон?", false, 0, keyboardSeason); } else { await Bot.SendTextMessageAsync(message.Chat.Id, p.C_serial + ", верно! Какой сезон? \n\n" + p.task, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardSeason); } } } else { p.stand = 3; p.TaskWrong(); SendLog(message.Text + " FROM " + p.UserName + " ITIS " + "InCorrect" + " SCORE " + p.Score + " TASK_ID " + p.taskId); await Bot.SendTextMessageAsync(message.Chat.Id, "Неверно! Запросите новое задание!", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandartFail); } } } #endregion #region stand_1 if (p.stand == 1) { if (message.Text == "/start") { p.Ask = false; recognise = true; if (p.task.Contains("http")) { await Bot.SendPhotoAsync(message.Chat.Id, new FileToSend(p.task), p.C_serial + ", верно! Какой сезон?", false, 0, keyboardSeason); } else { await Bot.SendTextMessageAsync(message.Chat.Id, p.C_serial + ", верно! Какой сезон?\n\n" + p.task, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardSeason); } } if (p.C_serial == "SGU") { if (message.Text == "1" || message.Text == "2") { p.Ask = false; recognise = true; if (message.Text == p.C_season) { p.stand++; p.SaveToSQl(); SendLog(message.Text + " FROM " + p.UserName + " ITIS " + "Correct" + " STAND " + p.stand + " TASK_ID " + p.taskId); if (p.task.Contains("http")) { await Bot.SendPhotoAsync(message.Chat.Id, new FileToSend(p.task), p.C_season + ", верно! Какая серия?", false, 0, keyboardSeries); } else { await Bot.SendTextMessageAsync(message.Chat.Id, p.C_season + ", верно! Какая серия?\n\n" + p.task, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardSeries); } } else { p.stand = 3; p.TaskWrong(); SendLog(message.Text + " FROM " + p.UserName + " ITIS " + "InCorrect" + " SCORE " + p.Score + " TASK_ID " + p.taskId); await Bot.SendTextMessageAsync(message.Chat.Id, "Неверно! Запросите новое задание!", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandartFail); } } } else { if (message.Text == p.V_Season[0] || message.Text == p.V_Season[1] || message.Text == p.V_Season[2] || message.Text == p.V_Season[3]) { p.Ask = false; recognise = true; if (message.Text == p.C_season) { p.stand++; p.SaveToSQl(); SendLog(message.Text + " FROM " + p.UserName + " ITIS " + "Correct" + " STAND " + p.stand + " TASK_ID " + p.taskId); if (p.task.Contains("http")) { await Bot.SendPhotoAsync(message.Chat.Id, new FileToSend(p.task), p.C_season + ", верно! Какая серия?", false, 0, keyboardSeries); } else { await Bot.SendTextMessageAsync(message.Chat.Id, p.C_season + ", верно! Какая серия?\n\n" + p.task, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardSeries); } } else { p.stand = 3; p.TaskWrong(); SendLog(message.Text + " FROM " + p.UserName + " ITIS " + "InCorrect" + " SCORE " + p.Score + " TASK_ID " + p.taskId); await Bot.SendTextMessageAsync(message.Chat.Id, "Неверно! Запросите новое задание!", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandartFail); } } } } #endregion #region stand_2 if (p.stand == 2) { if (message.Text == "/start") { p.Ask = false; recognise = true; if (p.C_serial == "Movies") { if (p.task.Contains("http")) { await Bot.SendPhotoAsync(message.Chat.Id, new FileToSend(p.task), p.C_serial + ", верно! Какой фильм?", false, 0, keyboardSeries); } else { await Bot.SendTextMessageAsync(message.Chat.Id, p.C_serial + ", верно! Какой фильм?\n\n" + p.task, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardSeries); } } else { if (p.task.Contains("http")) { await Bot.SendPhotoAsync(message.Chat.Id, new FileToSend(p.task), p.C_season + ", верно! Какая серия?", false, 0, keyboardSeries); } else { await Bot.SendTextMessageAsync(message.Chat.Id, p.C_season + ", верно! Какая серия?\n\n" + p.task, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardSeries); } } } if (message.Text == p.V_Series[0] || message.Text == p.V_Series[1] || message.Text == p.V_Series[2] || message.Text == p.V_Series[3]) { p.Ask = false; recognise = true; if (message.Text == p.C_series) { p.stand++; p.TaskDone(); SendLog(message.Text + " FROM " + p.UserName + " ITIS " + "Correct" + " SCORE " + p.Score + " TASK_ID " + p.taskId); await Bot.SendTextMessageAsync(message.Chat.Id, p.C_series + ", верно! Вы молодец! Запрашивайте новое задание :)", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandart); } else { p.stand = 3; p.TaskWrong(); SendLog(message.Text + " FROM " + p.UserName + " ITIS " + "InCorrect" + " SCORE " + p.Score + " TASK_ID " + p.taskId); await Bot.SendTextMessageAsync(message.Chat.Id, "Неверно! Запросите новое задание!", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandartFail); } } } #endregion #region stand_3 if (p.stand == 3) { if (message.Text == "Задание") { recognise = true; p.Ask = false; p.stand = 0; p.GetTask(); SendLog(message.Text + " TO " + p.UserName + " TASK_ID " + p.taskId); if (p.task.Contains("http")) { await Bot.SendPhotoAsync(message.Chat.Id, new FileToSend(p.task), "Из какого сериала или фильмов эта картинка?", false, 0, keyboardSerial); } else { await Bot.SendTextMessageAsync(message.Chat.Id, "Из какого сериала или фильмов эта фраза?\n\n" + p.task, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardSerial); } } if (message.Text == "Ошибка в последнем вопросе?" && !p.done) { recognise = true; p.Ask = true; p.SaveToSQl(); SendLog("SEND_INSTRUCTION_TO_WRONG_MSG_TO " + p.UserName + " TASK_ID " + p.taskId + " ASK_UNIT " + p.Ask.ToString()); await Bot.SendTextMessageAsync(message.Chat.Id, "Отправьте сообщение с описанием проблемы на столько широко как сможете, так же тут можно оставить свой отзыв.", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandart); } if (message.Text == "Помощь") { p.Ask = false; recognise = true; SendLog(message.Text + " TO " + p.UserName); await Bot.SendTextMessageAsync(message.Chat.Id, "Просто отвечайте на вопросы и зарабатывайте очки. Верный ответ +1, неверный -1 балл.\nДля управления чатом используй кнопки внизу.", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandart); } if (message.Text == "ТОП-10") { p.Ask = false; recognise = true; SendLog(message.Text + " TO " + p.UserName); await Bot.SendTextMessageAsync(message.Chat.Id, getTopList(), Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandart); } if (message.Text == "Очки") { p.Ask = false; recognise = true; SendLog(message.Text + " TO " + p.UserName + " SCORE " + p.Score); await Bot.SendTextMessageAsync(message.Chat.Id, "Кол-во очков: " + p.Score, Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandart); } if (message.Text == "/start") { p.Ask = false; recognise = true; if (!p.amnew) { SendLog("NEW_OLD_USER " + p.Id + " NAME " + p.UserName); await Bot.SendTextMessageAsync(message.Chat.Id, "С Возвращением!\nИспользуйте клавиатуру для работы с чатом", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandart); } else { SendLog("NEW_USER " + p.Id + " NAME " + p.UserName); await Bot.SendTextMessageAsync(message.Chat.Id, "Добро пожаловать!\nИспользуйте клавиатуру для работы с чатом", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandart); } } } #endregion if (message.Text != "" && !recognise && !p.Ask) { SendLog(message.Text + " SOME_TEXT_WRONG " + " FROM " + p.UserName); await Bot.SendTextMessageAsync(message.Chat.Id, "Я не могу ответить на это сообщение, не кликайте на кнопку по нескольку раз, не дождавшись ответа и не пишите с клавиатуры до требования бота!"); } else if (message.Text != "" && p.Ask && !recognise) { p.Ask = false; SendLog(message.Text + " RECEIVING_MSG_FROM_USER " + p.UserName); AskToSQL(message.Text, p); p.SaveToSQl(); await Bot.SendTextMessageAsync(message.Chat.Id, "Ваше сообщение принято для обработки, со временем изменения вступят в силу", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboardStandart); } } else { SendLog("SOME_NOT_TEXT_WRONG " + " FROM " + p.UserName); await Bot.SendTextMessageAsync(message.Chat.Id, "Я могу отвечать только на текстовые сообщения!"); } offset = update.Id + 1; } } } catch (Exception ex) { File.WriteAllText(DateTime.Now.ToString("dd.MM.yy hh.mm.ss") + " errorlog.txt", DateTime.Now + " -- " + ex.Message + "\n" + ex.TargetSite.Name + "\n" + ex.StackTrace + "\n" + ex.HelpLink); Application.Current.Shutdown(); } }
async static void TelegramMetod() { string key = "417836710:AAHaiu8stm_QKQBiZX11MJqIcDCrOrTLyMk"; //telegram: @RandomPhoto_bot var bot = new Telegram.Bot.TelegramBotClient(key); await bot.SetWebhookAsync(""); int offset = 0; while (true) { var updates = await bot.GetUpdatesAsync(offset); // получаем массив обновлений foreach (var update in updates) // Перебираем все обновления { var message = update.Message; if (message?.Type == Telegram.Bot.Types.Enums.MessageType.TextMessage) { string rain = ""; if (message.Text == "/start") { await bot.SendTextMessageAsync(message.Chat.Id, "Привет " + message.Chat.FirstName); var keyboard = new Telegram.Bot.Types.ReplyMarkups.ReplyKeyboardMarkup { Keyboard = new[] { new[] // row 1 { new Telegram.Bot.Types.KeyboardButton("Пришли картинку"), new Telegram.Bot.Types.KeyboardButton("Пришли музыку") }, new[] // row 1 { new Telegram.Bot.Types.KeyboardButton("Какая погода?"), new Telegram.Bot.Types.KeyboardButton("Какая погода завтра?") }, }, ResizeKeyboard = true }; await bot.SendTextMessageAsync(message.Chat.Id, "Выбери что хочешь получить", ParseMode.Default, false, false, 0, keyboard, CancellationToken.None); } if (message.Text == "/getimage" || message.Text == "Пришли картинку") { string[] dirs = Directory.GetFiles( @"C:\Users\workstation1\Documents\Visual Studio 2015\Projects\TelegramBotGetImage\TelegramBotGetImage\Images"); Random rnd = new Random(); int i = rnd.Next(0, dirs.Length); string FileUrl = dirs[i]; using (var stream = System.IO.File.Open(FileUrl, FileMode.Open)) { FileToSend fts = new FileToSend(); fts.Content = stream; fts.Filename = FileUrl.Split('\\').Last(); await bot.SendPhotoAsync(message.Chat.Id, fts, "New IMG"); } } if (message.Text == "/getmusic" || message.Text == "Пришли музыку") { string[] dirs = Directory.GetFiles( @"C:\Users\workstation1\Documents\Visual Studio 2015\Projects\TelegramBotGetImage\TelegramBotGetImage\Music"); Random rnd = new Random(); int w = rnd.Next(0, dirs.Length); string FileUrl = dirs[w]; using (var stream = System.IO.File.Open(FileUrl, FileMode.Open)) { FileToSend fts = new FileToSend(); fts.Content = stream; fts.Filename = FileUrl.Split('\\').Last(); string[] eq = fts.Filename.Split('-'); string songName = eq.Last(); string athor = ""; for (int i = 0; i < eq.Length - 1; i++) { athor += eq[i]; } await bot.SendTextMessageAsync(message.Chat.Id, "Отправляю песню: " + athor + " - " + songName + " подождите"); await bot.SendAudioAsync(message.Chat.Id, fts, "Файл получен", 0, athor, songName); } } if (message.Text == "/about") { await bot.SendTextMessageAsync(message.Chat.Id, "Бот написан 22.09.2017\nАвтор: Тимофей Забалуев\nКонтактные данные: [email protected]"); } if (message.Text == "/weathernow" || message.Text == "Какая погода?") { var q = GetSimpleWeather.WeatherGetNow(); //if (q.rain != null) rain = " дождь"; await bot.SendTextMessageAsync(message.Chat.Id, "В городе: " + q.Name + " сейчас " + q.Main.temp + " градусов"); } if (message.Text == "/weathertomorrow" || message.Text == "Какая погода завтра?") { var w = GetSimpleWeather.WeatherGetFor5Days(); await bot.SendTextMessageAsync(message.Chat.Id, "В городе: " + w.city.name); string str = " "; for (int i = 1; i < 9; i++) { if (w.list[i].rain != null) { rain = " дождь"; } string[] split = w.list[i].dt_txt.Split(' ', ':', '-'); if (split[3] == "00") { str += split[2] + "/" + split[1] + " "; //Выводим дополнительно число и месяц если следующий день } else { str += "---------"; } str += split[3] + ":00 = " + w.list[i].main.temp + "° " + rain + "\n"; } await bot.SendTextMessageAsync(message.Chat.Id, str); } } offset = update.Id + 1; } } }
public static async Task SendFeedbackMessage(string subject, string message, string attachment = null) { Main mf = Application.OpenForms["Main"] as Main; if (mf == null) { return; } var bot = new Telegram.Bot.TelegramBotClient("397478316:AAFx_E18FZ5bxNdO-F3wQtbPcw7OlrPddfU"); try { await bot.SendTextMessageAsync(251417296, subject + "\n\n" + message); if (!String.IsNullOrWhiteSpace(attachment)) { try { string file = attachment; var fileName = file.Split('\\').Last(); using (var fileStream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read)) { var fts = new FileToSend(fileName, fileStream); if (System.Web.MimeMapping.GetMimeMapping(file).StartsWith("text/") || System.Web.MimeMapping.GetMimeMapping(file).StartsWith("application/")) { await bot.SendDocumentAsync(251417296, fts, subject); } if (System.Web.MimeMapping.GetMimeMapping(file).StartsWith("image/")) { await bot.SendPhotoAsync(251417296, fts, subject); } if (System.Web.MimeMapping.GetMimeMapping(file).StartsWith("video/")) { await bot.SendVideoAsync(251417296, fts); } } } catch (FileNotFoundException ex) { Logger.Write("Telegram Feedback Anhang Senden Fehlgeschlagen - Grund: " + ex.Message); //Text Info Output } } MetroMessageBox.Show(mf, "Dein Feedback wurde Erfolgreich verschickt ;-)", "Feedback Erfolgreich", MessageBoxButtons.OK, MessageBoxIcon.Question); mf.metroComboBox5.SelectedIndex = -1; mf.metroTextBox2.Clear(); mf.metroTextBox3.Clear(); mf.metroTextBox4.Clear(); mf.metroTextBox11.Clear(); mf.metroTextBox12.Clear(); } catch (Exception ex) { Logger.Write("Telegram Feedback Nachricht Senden Fehlgeschlagen - Grund: " + ex.Message); if (OSystem.IsAvailableNetworkActive()) { } MetroMessageBox.Show(mf, "Leider gab es ein Problem und dein Feedback konnte nicht erfolgreich verschickt werden." + Environment.NewLine + Environment.NewLine + "Bitte versuche es erneut oder Kontaktiere den Entwickler.", "Feedback Fehlgeschlagen", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private async Task GetQrCodeAsync(Update update, Employee employee) { string receiverCode = employee.Place.Id.ToString() + "-" + employee.Id.ToString(); string qrString = "ST00011|Name=ООО Чаевые-24|PersonalAcc=40702810970010113722|BankName=МОСКОВСКИЙ ФИЛИАЛ АО КБ \"МОДУЛЬБАНК\"|" + "BIC=044525092|CorrespAcc=30101810645250000092|PayeeINN=1651083591|" + "Purpose=Дарение чаевых коллективу по договору-оферте tips24.ru/" + receiverCode + "|" + "PayerAddress=" + employee.Place.City + ", " + employee.Place.Address + "|LastName=Гость|FirstName=заведения"; //string qrString = "ST00011|Name=ИП Галяутдинов Ринат Ибрагимович|PersonalAcc=40802810470210002677|BankName=МОСКОВСКИЙ ФИЛИАЛ АО КБ \"МОДУЛЬБАНК\"|BIC=044525092|CorrespAcc=30101810645250000092|PayeeINN=165117672519|" + // "Purpose=Дарение чаевых коллективу по договору-оферте tips24.ru/" + receiverCode + "|" + // "PayerAddress="+ employee.PlaceCity + ", " + employee.PlaceAddress + "|LastName=Гость|FirstName=заведения"; byte[] hash = GetQrHash(qrString); if (employee.QrCode != null && employee.QrCode.IsValid(hash)) { ReplyKeyboardMarkup keyboard = GetStandardKeyboardMarkup(employee); Message response = await _telegramClient.SendPhotoAsync(update.Message.From.Id, new InputOnlineFile(employee.QrCode.FileId), null, ParseMode.Default, false, 0, keyboard, _cts.Token); await this.WriteMessageLog(new QrCodeOutputMessageLog(employee, employee.QrCode.FileId, receiverCode, keyboard)); return; } QRCodeWriter qrWriter = new QRCodeWriter(); Dictionary <ZXing.EncodeHintType, object> hints = new Dictionary <ZXing.EncodeHintType, object>(); hints.Add(ZXing.EncodeHintType.CHARACTER_SET, "windows-1251"); hints.Add(ZXing.EncodeHintType.MARGIN, 1); ZXing.Common.BitMatrix matrix = qrWriter.encode(qrString, ZXing.BarcodeFormat.QR_CODE, 640, 640, hints); BarcodeWriter <Rgb24> writer = new BarcodeWriter <Rgb24>(); string fileId = null; using (MemoryStream ms = new MemoryStream()) { using (Image <Rgb24> image = writer.Write(matrix)) { image.Save(ms, new PngEncoder() { ColorType = PngColorType.Grayscale, BitDepth = PngBitDepth.Bit8 }); } ms.Position = 0; ReplyKeyboardMarkup keyboard = GetStandardKeyboardMarkup(employee); Message response = await _telegramClient.SendPhotoAsync(update.Message.From.Id, new InputOnlineFile(ms), null, ParseMode.Default, false, 0, keyboard, _cts.Token); fileId = response.Photo[0].FileId; await this.WriteMessageLog(new QrCodeOutputMessageLog(employee, fileId, receiverCode, keyboard)); } using (SqlConnection conn = _sqlServer.GetConnection()) { await conn.OpenAsync(); using (SqlCommand cmd = _sqlServer.GetSpCommand("telegram.UpdateQrCodeFileId", conn)) { cmd.AddBigIntParam("@UserId", employee.TelegramUserId); cmd.AddVarCharParam("@QrCodeFileId", 64, fileId); cmd.AddBinaryParam("@QrCodeStringHash", 40, hash); await cmd.ExecuteNonQueryAsync(); } } }
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(""); // Обязательно! убираем старую привязку к вебхуку для бота // Callback'и от кнопок Bot.OnCallbackQuery += async(object sc, Telegram.Bot.Args.CallbackQueryEventArgs ev) => { var message = ev.CallbackQuery.Message; if (ev.CallbackQuery.Data == "instruction") { await Bot.SendTextMessageAsync(message.Chat.Id, "Инструкция по эксплуатации:" + "\n\n1. Будьте терпеливы.\nУбедительная просьба не тыкать его палкой по крайней мере пока он работает. Он очень обидчивый."+ "\n\n2. Убедитесь в том, что введенные данные правильны ( это можно сделать с помощью команды /check )"+ "\n\n3. Воспользуйтесь командой /work для получения оценок. Терпеливо ждите окончания процесса (это не так много времени занимает)"); await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id); // отсылаем пустое, чтобы убрать "часики" на кнопке } else if (ev.CallbackQuery.Data == "faq") { await Bot.SendTextMessageAsync(message.Chat.Id, "FAQ:" + "\n\n1. Почему он так долго работает?\n\nОн добросовестно относится к своей работе и очень старается помочь Вам."+ "\n\n2. Что делать, если не выводит оценки?\n\nДождаться завершения работы. По завершению работы бот уведомит об её успешном или не очень результате. При каждом обращении к нему, у бота есть 3 попытки получить доступ к данным электронного дневника, но получается это не всегда в силу непредсказуемых обстоятельств (например: Ростелеком)."+ "\n\n3. Как поддержать разработчика?\n\nЭто не очень популярный вопрос, но всё же я на него отвечу :)"+ "\nПоддержать разработчика можно монетой, узнав реквизиты тыкнув на соответствующую кнопку. Сумма пожертвования никак не повлияет на работу бота, но разработчику будет очень приятно и может быть он прислушается к просьбам пользователей."); await Bot.AnswerCallbackQueryAsync(ev.CallbackQuery.Id); // отсылаем пустое, чтобы убрать "часики" на кнопке } else if (ev.CallbackQuery.Data == "support") { if (message.Chat.Id != 402256119) { // Log info await Bot.SendTextMessageAsync(402256119, $"{DateTime.Now}:\nПользователь {message.Chat.FirstName} {message.Chat.LastName} нажал на кнопку поддержки"); } await Bot.SendTextMessageAsync(message.Chat.Id, "Поддержка:" + "\nP.S. Автор ни в коем случае ни к чему не призывает и не обязывает." + "\nМне правда будет очень приятно :з" + "\n\nПоддержать \"программиста\" можно следующими способами:"); await Bot.SendTextMessageAsync(message.Chat.Id, "1. Карта Сбербанка:"); await Bot.SendTextMessageAsync(message.Chat.Id, "5469550037901797"); await Bot.SendTextMessageAsync(message.Chat.Id, "2. Яндекс кошелёк:"); await Bot.SendTextMessageAsync(message.Chat.Id, "410013502974226"); 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 == "/start") { bool newUser = true; string[] data = new string[2]; SqlDataReader sqlReader = null; SqlCommand command = new SqlCommand("SELECT ChatId, Login, Password FROM [Data]", sqlConnection); try { sqlReader = await command.ExecuteReaderAsync(); while (await sqlReader.ReadAsync()) { if (Convert.ToString(sqlReader["ChatId"]) == Convert.ToString(message.Chat.Id)) { newUser = false; data[0] = Convert.ToString(sqlReader["Login"]); data[1] = Convert.ToString(sqlReader["Password"]); break; } } } catch (Exception ex) { await Bot.SendTextMessageAsync(402256119, $"{DateTime.Now}: Начальник, случилась оказия!\n\n{ex.Message.ToString()}\n\n{ex.Source.ToString()}"); } finally { if (sqlReader != null) { sqlReader.Close(); } } if (newUser) { await Bot.SendTextMessageAsync(message.Chat.Id, "Привет! Я бот Параграф. Давай дружить.\nМне нужно, чтобы ты сказал мне логин и пароль. Тогда я думаю смогу тебе помочь"); await Bot.SendTextMessageAsync(message.Chat.Id, "Введи их пожалуйста в одном сообщении через пробел"); SqlCommand commandInsert = new SqlCommand("INSERT INTO [Data] (ChatId)VALUES(@ChatId)", sqlConnection); commandInsert.Parameters.AddWithValue("ChatId", Convert.ToString(message.Chat.Id)); await commandInsert.ExecuteNonQueryAsync(); // Log info await Bot.SendTextMessageAsync(402256119, $"{DateTime.Now}: Новый пользователь {message.Chat.FirstName} {message.Chat.LastName}"); } else { await Bot.SendTextMessageAsync(message.Chat.Id, $"Я тебя помню. Кажется ты уже пользовался моими услугами.\nПроверь пожалуйста свои данные:\n{data[0]}\n{data[1]}"); } } else if (message.Text[0] != '/' && message.Text.Contains(" ") && message.Text.Split().Count() == 2) { if (botFree) { string[] data = message.Text.Split(); // Cheching correct format of e-mail & password string emailPattern = @"^(?("")(""[^""]+?""@)|(([0-9a-z]((\.(?!\.))|[-!#\$%&'\*\+/=\?\^`\{\}\|~\w])*)(?<=[0-9a-z])@))" + @"(?(\[)(\[(\d{1,3}\.){3}\d{1,3}\])|(([0-9a-z][-\w]*[0-9a-z]*\.)+[a-z0-9]{2,17}))$"; Regex regexLogin = new Regex(emailPattern, RegexOptions.Compiled | RegexOptions.IgnoreCase | RegexOptions.IgnorePatternWhitespace); string passwordPattern = @"^(?=.*[a-z])(?=.*[0-9])"; Regex regexPass = new Regex(passwordPattern, RegexOptions.Compiled | RegexOptions.IgnoreCase); if (!regexLogin.IsMatch(data[0])) { await Bot.SendTextMessageAsync(message.Chat.Id, "Неправильный формат почты.\nПопробуй еще раз."); } else if (!regexPass.IsMatch(data[1])) { await Bot.SendTextMessageAsync(message.Chat.Id, "Неправильный формат пароля.\nПопробуй еще раз."); } else { SqlCommand command = new SqlCommand("UPDATE [Data] SET [Login]=@Login, [Password]=@Password, [Name]=@Name WHERE [ChatId]=@ChatId", sqlConnection); command.Parameters.AddWithValue("Login", data[0]); command.Parameters.AddWithValue("Password", data[1]); command.Parameters.AddWithValue("Name", message.Chat.FirstName + " " + message.Chat.LastName); command.Parameters.AddWithValue("ChatId", Convert.ToString(message.Chat.Id)); await command.ExecuteNonQueryAsync(); await Bot.SendTextMessageAsync(message.Chat.Id, "Хорошо, я запомнил.\nЕсли ты ввёл почту и пароль правильно, то всё будет хорошо"); await Bot.SendTextMessageAsync(message.Chat.Id, "Теперь введи команду /work, чтобы посмотреть свои оценки"); } } else { await Bot.SendTextMessageAsync(message.Chat.Id, botBusyMessage); } } else if (message.Text == "/work") { if (botFree) { botFree = false; int countOfViews = 0; await Bot.SendTextMessageAsync(message.Chat.Id, "Работаю..."); string currentUserLogin = ""; string currentUserPassword = ""; SqlDataReader sqlReader = null; SqlCommand command = new SqlCommand("SELECT Login, Password, Views FROM [Data] WHERE [ChatId]=@ChatId", sqlConnection); command.Parameters.AddWithValue("ChatId", Convert.ToString(message.Chat.Id)); try { sqlReader = await command.ExecuteReaderAsync(); while (await sqlReader.ReadAsync()) { currentUserLogin = Convert.ToString(sqlReader["Login"]); currentUserPassword = Convert.ToString(sqlReader["Password"]); countOfViews = Convert.ToInt32(Convert.ToString(sqlReader["Views"])); } await Bot.SendTextMessageAsync(message.Chat.Id, "1-ая ступень..."); } catch (Exception ex) { await Bot.SendTextMessageAsync(402256119, $"{DateTime.Now}: Начальник, случилась оказия!\n\n{ex.Message.ToString()}\n\n{ex.Source.ToString()}"); } finally { if (sqlReader != null) { sqlReader.Close(); } } User user = new User(currentUserLogin, currentUserPassword); await Bot.SendTextMessageAsync(message.Chat.Id, "2-ая ступень..."); List <string> data = await user.GetInfoAsync(); int t = 3; while (data.Count < 1 && t <= 5) { await Bot.SendTextMessageAsync(message.Chat.Id, $"{t}-ая ступень..."); data = await user.GetInfoAsync(); t++; } if (t <= 5) { if (user.Names.Count == 1) { if (user.Grades[0].Contains("Электив")) { await Bot.SendTextMessageAsync(message.Chat.Id, user.Names[0] + "\n\n" + user.Grades[0].Substring(0, user.Grades[0].IndexOf("Электив"))); } else { await Bot.SendTextMessageAsync(message.Chat.Id, user.Names[0] + "\n\n" + user.Grades[0]); } } else { for (int i = 0; i < user.Names.Count; i++) { if (user.Grades[i].Contains("Электив")) { await Bot.SendTextMessageAsync(message.Chat.Id, user.Names[i] + "\n\n" + user.Grades[i].Substring(0, user.Grades[i].IndexOf("Электив"))); } else { await Bot.SendTextMessageAsync(message.Chat.Id, user.Names[i] + "\n\n" + user.Grades[i]); } } } // Update count of views try { SqlCommand commandLogInfo = new SqlCommand("UPDATE [Data] SET [Views]=@Views WHERE [ChatId]=@ChatId", sqlConnection); commandLogInfo.Parameters.AddWithValue("Views", Convert.ToString(countOfViews + 1)); commandLogInfo.Parameters.AddWithValue("ChatId", Convert.ToString(message.Chat.Id)); await commandLogInfo.ExecuteNonQueryAsync(); } catch (Exception ex) { await Bot.SendTextMessageAsync(402256119, $"{DateTime.Now}: Начальник, случилась оказия!\n\n{ex.Message.ToString()}\n\n{ex.Source.ToString()}"); } finally { // Log info if (message.Chat.Id != 402256119) { await Bot.SendTextMessageAsync(402256119, $"{DateTime.Now}: Вход\nПользователь {message.Chat.FirstName} {message.Chat.LastName} ({countOfViews + 1})\n{currentUserLogin}"); } } } else { await Bot.SendTextMessageAsync(message.Chat.Id, "Не получилось :(\nПопробуй ещё раз"); } botFree = true; } else { await Bot.SendTextMessageAsync(message.Chat.Id, botBusyMessage); } } else if (message.Text == "/check") { if (botFree) { string[] data = new string[2]; SqlDataReader sqlReader = null; SqlCommand command = new SqlCommand("SELECT Login, Password FROM [Data] WHERE [ChatId]=@ChatId", sqlConnection); command.Parameters.AddWithValue("ChatId", Convert.ToString(message.Chat.Id)); try { sqlReader = await command.ExecuteReaderAsync(); while (await sqlReader.ReadAsync()) { data[0] = Convert.ToString(sqlReader["Login"]); data[1] = Convert.ToString(sqlReader["Password"]); } await Bot.SendTextMessageAsync(message.Chat.Id, "Ты хотел проверить информацию.\nВот твои данные:"); await Bot.SendTextMessageAsync(message.Chat.Id, data[0] + "\n" + data[1]); await Bot.SendTextMessageAsync(message.Chat.Id, "Если хочешь изменить информацию о себе, просто отправь мне логин и пароль через пробел.\nЯ пойму ;)"); } catch (Exception ex) { await Bot.SendTextMessageAsync(402256119, $"{DateTime.Now}: Начальник, случилась оказия!\n\n{ex.Message.ToString()}\n\n{ex.Source.ToString()}"); } finally { if (sqlReader != null) { sqlReader.Close(); } } } else { await Bot.SendTextMessageAsync(message.Chat.Id, botBusyMessage); } } else if (message.Text == "/help") { var keyboard = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup( new Telegram.Bot.Types.InlineKeyboardButton[][] { // First row new [] { new Telegram.Bot.Types.InlineKeyboardButton("FAQ", "faq"), }, // Second row new [] { new Telegram.Bot.Types.InlineKeyboardButton("Инструкция", "instruction"), }, // Third row new [] { new Telegram.Bot.Types.InlineKeyboardButton("Поддержать разработчика", "support"), }, } ); await Bot.SendTextMessageAsync(message.Chat.Id, "Справка:", false, false, 0, keyboard, Telegram.Bot.Types.Enums.ParseMode.Default); } else if (message.Text == "/revolution") { await Bot.SendPhotoAsync(message.Chat.Id, "http://aftamat4ik.ru/wp-content/uploads/2017/03/photo_2016-12-13_23-21-07.jpg", "Revolution!"); } else { bool madeOfDigits = true; string msg = message.Text.Trim(); int sum = 0; for (int i = 0; i < msg.Length; i++) { if (msg[i] >= '0' && msg[i] <= '9') { sum += (msg[i] - '0'); } else { madeOfDigits = false; break; } } if (madeOfDigits) { await Bot.SendTextMessageAsync(message.Chat.Id, $"Средний балл: {(float)sum/msg.Length}"); } } } }; // запускаем прием обновлений Bot.StartReceiving(); } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { Console.WriteLine(ex.Message); // если ключ не подошел - пишем об этом в консоль отладки } }
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(""); // Обязательно! убираем старую привязку к вебхуку для бота //TEST try { 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; string txt = Properties.Settings.Default.solo; if (message == null) { return; } if (message.Type == Telegram.Bot.Types.Enums.MessageType.Text) { var chtid = message.Chat.Id; int chtidi = (int)chtid; var username = message.From.Username; var name = message.From.FirstName; var surname = message.From.LastName; var chatname = message.Chat.Title; InputOnlineFile vzhuh = new InputOnlineFile("CAADAgADKwADCpgGDM8eYp6xnBJwAg"); InputOnlineFile stick = new InputOnlineFile("CAADAgADjAAD2kJgEdHmJbf9LcNAAg"); InputOnlineFile kickstick = new InputOnlineFile("CAADAgADFwADCpgGDPT5dlQ90N3vAg"); InputOnlineFile gogo = new InputOnlineFile("CAADAgADIgADCpgGDP2DujSOYxb2Ag"); InputOnlineFile stb_1 = new InputOnlineFile("CAADAgADKAADCpgGDAlPwj3jog11Ag"); InputOnlineFile pipi = new InputOnlineFile("MEDIA/bolt.jpg"); string offlist = System.IO.File.ReadAllText("offlist.txt"); try { if (message.Text.ToLower().Equals("987")) { string tempz = Properties.Settings.Default.SettingsKey; await Bot.SendTextMessageAsync(message.Chat.Id, tempz); return; } //ВЫЗОВ ИЗ ЧАТА if (message.Text.ToLower().Contains("ридонли")) { int iserid = message.ReplyToMessage.From.Id; //string usrid = iserid.ToString(); if (offlist.Contains(username)) { var RoS = message.Text.ToString(); Regex my_reg = new Regex(@"\D"); string out_string = my_reg.Replace(RoS, ""); int RoTime = Convert.ToInt32(out_string); DateTime untilDate = DateTime.Now.AddMinutes(RoTime); await Bot.RestrictChatMemberAsync(message.Chat.Id, iserid, untilDate); await Bot.SendStickerAsync(message.Chat.Id, vzhuh); await Bot.SendTextMessageAsync(message.Chat.Id, message.ReplyToMessage.From.FirstName + ", поздравляю! В качестве бонуса, ты получаешь РО на " + RoTime.ToString() + " минут.", replyToMessageId : message.ReplyToMessage.MessageId); await Bot.DeleteMessageAsync(message.Chat.Id, message.MessageId); return; } if (message.From.Id == iserid) { var RoS = message.Text.ToString(); Regex my_reg = new Regex(@"\D"); string out_string = my_reg.Replace(RoS, ""); int RoTime = Convert.ToInt32(out_string); DateTime untilDate = DateTime.Now.AddMinutes(RoTime); await Bot.RestrictChatMemberAsync(message.Chat.Id, iserid, untilDate); await Bot.SendStickerAsync(message.Chat.Id, vzhuh); await Bot.SendTextMessageAsync(message.Chat.Id, message.ReplyToMessage.From.FirstName + ", очень жаль, но это было твое решение :( Ты получаешь РО на " + RoTime.ToString() + " минут.", replyToMessageId : message.ReplyToMessage.MessageId); await Bot.DeleteMessageAsync(message.Chat.Id, message.MessageId); return; } return; } //ДЛЯ ЕВЫ if (message.Text.Contains("Ева, ")) { //В чате Кантины if (message.Chat.Id.Equals(-1001033483774)) { List <string> lstT = new List <string>(); Random randT = new Random(); var inxT = System.IO.File.ReadAllLines(tost); string[] str = new string[1]; // здесь будут храниться n случаные неповторяющиеся строки из inxT int k; for (int i = 0; i < str.Length; i++) { while (true) { k = randT.Next(inxT.Length); if (!lstT.Any(x => x.Equals(inxT[k]))) { lstT.Add(inxT[k]); str[i] = inxT[k]; break; } } } //await Bot.SendTextMessageAsync(message.Chat.Id, "Тут этого делать нельзя."); string lls = string.Join("\r\n", lstT.ToArray()); await Bot.SendTextMessageAsync(message.Chat.Id, "Я просто скажу тост:" + "\r\n" + lls); return; } //Во всех остальных чатах else { string inmess = message.Text.ToLower(); //TEST CHAT ID System.IO.File.AppendAllText(all_msg, DateTime.Now + " " + chatname + " " + username + " " + name + " " + surname + "\r\n" + message.Text + "\r\n"); string[] readText = System.IO.File.ReadAllLines(logs_path, Encoding.Default); if (inmess.Contains("hooba") && username.Equals("kanier")) { //string last_ten = System.IO.File.ReadAllText("123.txt"); //string n = readText[i]; await Bot.SendTextMessageAsync(message.Chat.Id, System.IO.File.ReadAllText("LOGS/123.txt")); return; } if (inmess.Contains("покажи всё") && username.Equals("kanier")) { //string last_ten = System.IO.File.ReadAllText("123.txt"); //string n = readText[i]; await Bot.SendTextMessageAsync(message.Chat.Id, System.IO.File.ReadAllText(logs_path)); return; } if (inmess.Contains("срейд")) { string srtext = System.IO.File.ReadAllText(sreid_path); //await Bot.SendTextMessageAsync(message.Chat.Id, "[Тестовая ссылка из бота](https://t.me/iv?url=https%3A%2F%2Fyavin4.ru%2Fother%2Fthe-sith-triumvirate%2F&rhash=a6a7d09d8d0768)"); await Bot.SendTextMessageAsync(message.Chat.Id, "Я просто оставлю это здесь...\n" + srtext); return; } if (inmess.Contains("взвод")) { await Bot.SendTextMessageAsync(message.Chat.Id, "https://yavin4.ru/other/tb-platoons/" + "\r\n" + "^^^^^^^^^^^^^^^^^^^^^^^^" + "\r\n" + "https://t.me/iv?url=https://yavin4.ru/other/tb-platoons/&rhash=a6a7d09d8d0768"); return; } if (inmess.Contains("экстерминатус") && username.Equals("kanier") || inmess.Contains("экстерминатус") && username.Equals("vlad_o_v")) { InputOnlineFile stream = new InputOnlineFile("MEDIA/flu.mp4"); //InputOnlineFile fts = new InputOnlineFile(stream); //Stream stream_flu = null; //fts.Content = stream; stream.FileName = "FLU"; //ТЕСТОВЫЙ КУСОК DateTime old_ticker_dt = Properties.Settings.Default.ticker_start; DateTime now_ticker_dt = DateTime.Now; TimeSpan alltime = Properties.Settings.Default.best_try; TimeSpan nowalltime = now_ticker_dt - old_ticker_dt; if (nowalltime > alltime) { Properties.Settings.Default.best_try = nowalltime; Properties.Settings.Default.Save(); } else { Properties.Settings.Default.best_try = alltime; Properties.Settings.Default.Save(); } ///Запомнить===>>//DateTime rec_time = Properties.Settings.Default.ticker_start; DateTime ticker = DateTime.Now; Properties.Settings.Default.ticker_start = ticker; Properties.Settings.Default.Save(); string txt_ticker = ticker.ToString(); //await Bot.SendTextMessageAsync(message.Chat.Id, "Мне очень печально это говорить но, ПРИНЕСИТЕ FLUGGEGECHEIMEN!!!", replyToMessageId: message.MessageId); //await Bot.SendDocumentAsync(message.Chat.Id, stream, "Мне очень печально это говорить но, ПРИНЕСИТЕ FLUGGEGECHEIMEN!!!"); await Bot.SendVideoAsync(message.Chat.Id, stream); return; } if (inmess.Contains("счетчик") || inmess.Contains("счётчик")) { string old_ticker = Properties.Settings.Default.ticker_start.ToString(); DateTime old_ticker_dt = Properties.Settings.Default.ticker_start; DateTime now_ticker_dt = DateTime.Now; TimeSpan alltime = now_ticker_dt - old_ticker_dt; //Properties.Settings.Default.best_try = alltime; //string final_count_full = alltime.ToString(); //string final_count_short = final_count_full.Substring(0, final_count_full.LastIndexOf(".")); //string final_count_wo_days = alltime.ToString("DD:MM:SS"); //await Bot.SendTextMessageAsync(message.Chat.Id, "Новый отсчёт был запущен: " + old_ticker); await Bot.SendTextMessageAsync(message.Chat.Id, "На Явине всё спокойно уже: " + string.Format("\nДней: {0:%d} \nЧасов: {0:%h} \nМинут: {0:%m} \nСекунд: {0:%s}", alltime) + "\nОтсчёт был запущен: " + old_ticker); string for_lbl = "На Явине всё спокойно уже: " + string.Format("\nДней: {0:%d} \nЧасов: {0:%h} \nМинут: {0:%m} \nСекунд: {0:%s}", alltime) + "\nОтсчёт был запущен: " + old_ticker; Properties.Settings.Default.out_txt = for_lbl; Properties.Settings.Default.Save(); TimeSpan best_try = Properties.Settings.Default.best_try; await Bot.SendTextMessageAsync(message.Chat.Id, string.Format("Лучшее время: Дней: {0:%d} Часов: {0:%h} Минут: {0:%m} Секунд: {0:%s}", best_try)); //await Bot.SendTextMessageAsync(message.Chat.Id, "Дней: " + final_count_short.Substring(0, final_count_short.LastIndexOf("."))); return; } if (inmess.Contains("обнули 900") && username.Equals("kanier")) { Properties.Settings.Default.best_try = new TimeSpan(0, 0, 0, 0); Properties.Settings.Default.Save(); return; } if (inmess.Contains("пришло время")) { await Bot.SendStickerAsync(message.Chat.Id, kickstick); return; } if (inmess.Contains("chatid") && username.Equals("kanier")) { await Bot.SendTextMessageAsync(message.Chat.Id, chtid.ToString()); return; } //TEST MESSAGE TO OTHER CHAT if (inmess.Contains("отправь") && offlist.Contains(username)) { if (inmess.Contains("в кантину кота")) { await Bot.SendStickerAsync("-1001033483774", vzhuh); return; } if (inmess.Contains("стикер кик")) { await Bot.SendStickerAsync("-1001119850321", kickstick); return; } ////Properties.Settings.Default.buffer = inmess; //string sendinmess = inmess.Replace("Ева, ", ""); //Properties.Settings.Default.buffer = sendinmess; //Properties.Settings.Default.Save(); //string smess = Properties.Settings.Default.buffer; await Bot.SendTextMessageAsync("-1001119850321", message.Text.Replace("Ева, отправь ", "")); return; } //if (inmess.Contains("гого")&& offlist.Contains(username)) // { // try // { // //await Bot.SendDocumentAsync("-1001119850321", fts, "Все на ТБ!!!"); // await Bot.SendStickerAsync("-1001119850321", gogo); // await Bot.SendStickerAsync("-1001121566331 ", gogo); // // //await Bot.SendDocumentAsync(message.Chat.Id, new InputOnlineFile("GP.xlsx")); // return; // } // catch (Exception ex) // { // System.IO.File.WriteAllText("LOGS/errorall.txt", ex.Message); // //await Bot.SendTextMessageAsync(message.Chat.Id, "Что-то не так"); // return; // } // } if (inmess.Contains("привет") || inmess.Contains("как дела") || inmess.Contains("здрав")) { await Bot.SendTextMessageAsync(message.Chat.Id, "Привет, " + name + "." + "\r\n" + "Что ты хочешь знать?" + "\r\n" + "Я могу напомнить тебе правила Ямы или ААТ, показать список солистов или памятку по ТБ. Могу напомнить, кто закрывает соло следующую Яму-0. И многое другое ;) Достаточно обратиться ко мне по имени. К примеру: \"Ева, кто закрывает соло?\"", replyToMessageId : message.MessageId); return; } if (inmess.Contains("соло") || inmess.Contains("закрывает")) { if (offlist.Contains(username)) { // в ответ на команду выводим сообщение await Bot.SendTextMessageAsync(message.Chat.Id, txt); return; } else { string ntxt = Properties.Settings.Default.short_solo; string wotxt = ntxt.Replace("@", ""); await Bot.SendTextMessageAsync(message.Chat.Id, "Для закрытия следующей Ямы-0, Колесом Фортуны избран " + wotxt + " !"); return; } } //ТЕСТ РИДОНЛИ if (inmess.Contains("накати") || inmess.Contains("рря") || inmess.Contains("тост")) { List <string> lstT = new List <string>(); Random randT = new Random(); var inxT = System.IO.File.ReadAllLines(tost); string[] str = new string[1]; // здесь будут храниться n случаные неповторяющиеся строки из inxT int k; for (int i = 0; i < str.Length; i++) { while (true) { k = randT.Next(inxT.Length); if (!lstT.Any(x => x.Equals(inxT[k]))) { lstT.Add(inxT[k]); str[i] = inxT[k]; break; } } } string lls = string.Join("\r\n", lstT.ToArray()); await Bot.SendTextMessageAsync(message.Chat.Id, lls); return; } if (inmess.Contains("стб")) { string f1text = System.IO.File.ReadAllText("TEXT/STB/f1.txt"); string f2text = System.IO.File.ReadAllText("TEXT/STB/f2.txt"); string f3text = System.IO.File.ReadAllText("TEXT/STB/f3.txt"); string f4text = System.IO.File.ReadAllText("TEXT/STB/f4.txt"); string f5text = System.IO.File.ReadAllText("TEXT/STB/f5.txt"); string f6text = System.IO.File.ReadAllText("TEXT/STB/f6.txt"); var stream1 = System.IO.File.Open("MEDIA/STB.jpg", FileMode.Open); InputOnlineFile pipi1 = new InputOnlineFile(stream1) { //pipi1.ContentContent = stream1, //pipi1.FileName = "MEDIA/STB.jpg" }; if (inmess.Contains("1")) { await Bot.SendPhotoAsync(message.Chat.Id, photo : pipi1); await Bot.SendTextMessageAsync(message.Chat.Id, f1text); return; } if (inmess.Contains("2")) { await Bot.SendPhotoAsync(message.Chat.Id, photo : pipi1); await Bot.SendTextMessageAsync(message.Chat.Id, f2text); return; } if (inmess.Contains("3")) { await Bot.SendPhotoAsync(message.Chat.Id, photo : pipi1); await Bot.SendTextMessageAsync(message.Chat.Id, f3text); return; } if (inmess.Contains("4")) { await Bot.SendPhotoAsync(message.Chat.Id, photo : pipi1); await Bot.SendTextMessageAsync(message.Chat.Id, f4text); return; } if (inmess.Contains("5")) { await Bot.SendPhotoAsync(message.Chat.Id, photo : pipi1); await Bot.SendTextMessageAsync(message.Chat.Id, f5text); return; } if (inmess.Contains("6")) { await Bot.SendPhotoAsync(message.Chat.Id, photo : pipi1); await Bot.SendTextMessageAsync(message.Chat.Id, f6text); return; } string tbfile = System.IO.File.ReadAllText("TEXT/STB/tb.txt"); await Bot.SendTextMessageAsync(message.Chat.Id, tbfile); return; } if (inmess.Contains("ттб")) { await Bot.SendTextMessageAsync(message.Chat.Id, "К сожалению, мне пока ничего об этом не известно. Посмотрим, что там нахерачили ЕА.", replyToMessageId : message.MessageId); return; } if (inmess.Contains("прости") || inmess.Contains("извин")) { await Bot.SendTextMessageAsync(message.Chat.Id, "Ничего страшного! Но я это запомню...", replyToMessageId : message.MessageId); return; } if (inmess.Contains("ям") || inmess.Contains("ранкор")) { List <string> lstR = new List <string>(); var inxR = System.IO.File.ReadAllLines(rancor_path); string llsR = string.Join("\r\n", inxR.ToArray()); await Bot.SendTextMessageAsync(message.Chat.Id, "Я напомню тебе правила)))" + "\r\n" + llsR); return; } if (inmess.Contains("чудо") || inmess.Contains("хорошая") || inmess.Contains("умни") || inmess.Contains("умна") || inmess.Contains("крас")) { await Bot.SendTextMessageAsync(message.Chat.Id, "Спасибо, мне очень приятно!"); return; } if (inmess.Contains("список")) { try { List <string> lstL = new List <string>(); string lstall = System.IO.File.ReadAllText(solo_path); string newlst = lstall.Replace("@", ""); await Bot.SendTextMessageAsync(message.Chat.Id, newlst, replyToMessageId : message.MessageId); return; } catch { await Bot.SendTextMessageAsync(message.Chat.Id, "Список солистов пуст. Надо бы обновить."); return; } } if (inmess.Contains("аат") || inmess.Contains("танк")) { List <string> lstR = new List <string>(); var inxR = System.IO.File.ReadAllLines(aat_path); string llsR = string.Join("\r\n", inxR.ToArray()); await Bot.SendTextMessageAsync(message.Chat.Id, llsR, replyToMessageId : message.MessageId); return; } if (inmess.Contains("думаешь")) { await Bot.SendTextMessageAsync(message.Chat.Id, name + ", у меня просто нет слов.", replyToMessageId : message.MessageId); return; } if (inmess.Contains("выбери нового солиста")) { if (offlist.Contains(username)) { //var checksolo = System.IO.File.ReadAllLines("solo.txt"); //if (checksolo.Length == 0) //{ // MessageBox.Show("Файл пуст!"); //} string lastsolo = Properties.Settings.Default.short_solo; var soloL = System.IO.File.ReadAllText(solo_path); var soloX = soloL.Replace(lastsolo, ""); //var soloF = soloX.Replace("\n\n", "\n"); //var lines = System.IO.File.ReadAllLines("solo.txt"); //string[] linesX = lines.re //System.IO.File.WriteAllLines("solo.txt", lines); //MessageBox.Show(lastsolo); //MessageBox.Show(soloF); System.IO.File.WriteAllText(solo_path, soloX); string fileName = solo_path; string outputFileName = "TEXT/solotemp.txt"; string inputLine; System.IO.StreamReader sr = new System.IO.StreamReader(fileName); System.IO.StreamWriter sw = new System.IO.StreamWriter(outputFileName); inputLine = sr.ReadLine(); while (inputLine != null) { if (inputLine.Length > 0) { sw.WriteLine(inputLine); } // read the next line inputLine = sr.ReadLine(); } sr.Close(); sw.Close(); var transf = System.IO.File.ReadAllText("TEXT/solotemp.txt"); System.IO.File.WriteAllText(solo_path, transf); try { List <string> lst = new List <string>(); Random rand = new Random(); var inx = System.IO.File.ReadAllLines(solo_path); string[] str = new string[1]; // здесь будут храниться n случаные неповторяющиеся строки из inx int k; for (int i = 0; i < str.Length; i++) { while (true) { k = rand.Next(inx.Length); if (!lst.Any(x => x.Equals(inx[k]))) { lst.Add(inx[k]); str[i] = inx[k]; break; } } } string lls = string.Join("\r\n", lst.ToArray()); Properties.Settings.Default.short_solo = lls; Properties.Settings.Default.solo = "Для закрытия следующей Ямы-0, Колесом Фортуны избран " + lls + " !"; Properties.Settings.Default.Save(); await Bot.SendTextMessageAsync(message.Chat.Id, "В этот раз Фортуна избрала " + lls, replyToMessageId : message.MessageId); return; } catch { await Bot.SendTextMessageAsync(message.Chat.Id, "Список солистов пуст. Надо бы обновить"); return; } } else { await Bot.SendTextMessageAsync(message.Chat.Id, name + " , мне не говорили, что тебе можно это делать. Извини.", replyToMessageId : message.MessageId); return; } } if (inmess.Contains("спасибо") || inmess.Contains("благодар")) { await Bot.SendTextMessageAsync(message.Chat.Id, name + ", не стоит. Мне было даже немного приятно)))"); return; } await Bot.SendTextMessageAsync(message.Chat.Id, name + ", что за ересь? Я не понимаю, что ты имеешь в виду((("); return; } } } catch (Exception ex) { System.IO.File.AppendAllText(logs_path, "\r\n" + DateTime.Now + "\r\n" + ex.Message + "\r\n"); return; } try { if (message.Text.Equals("Ева") || message.Text.Equals("/info") || message.Text.Equals("/info@YavinIV_rollbot")) { await Bot.SendTextMessageAsync(message.Chat.Id, "Слушаю тебя, " + name + "." + "\r\n" + "Что ты хочешь знать?" + "\r\n" + "Я могу напомнить тебе правила Ямы или ААТ, показать список солистов или памятку по ТБ. Могу напомнить, кто закрывает соло следующую Яму-0. И многое другое ;) Достаточно обратиться ко мне по имени. К примеру: \"Ева, кто закрывает соло?\"", replyToMessageId : message.MessageId); return; } } catch (Exception ex) { System.IO.File.AppendAllText(logs_path, "\r\n" + DateTime.Now + "\r\n" + ex.Message + "\r\n"); System.IO.File.WriteAllText("LOGS/123.txt", "\r\n" + DateTime.Now + "\r\n" + ex.Message + "\r\n"); return; } } }; // запускаем прием обновлений Bot.StartReceiving(); } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { System.IO.File.WriteAllText("LOGS/error.log", "\r\n" + DateTime.Now + "\r\n" + ex.Message + "\r\n"); // если ключ не подошел - пишем об этом в консоль отладки } } catch (Exception ex) { System.IO.File.AppendAllText(logs_path, "\r\n" + DateTime.Now + "\r\n" + ex.Message + "\r\n"); System.IO.File.WriteAllText("LOGS/123.txt", "\r\n" + DateTime.Now + "\r\n" + ex.Message + "\r\n"); } }
public async void BotOnMessageReceived(object sender, MessageEventArgs messageEventArgs) { Message message = messageEventArgs.Message; if (message == null || message.Type != MessageType.TextMessage) { return; } _chatid = message.Chat.Id; try { Logger.ColoredConsoleWrite(ConsoleColor.Red, "[TelegramAPI] Got Request from " + message.From.Username + " | " + message.Text); string username = _botSettings.TelegramName; string telegramAnswer = string.Empty; if (username != message.From.Username) { using (System.IO.Stream stream = new System.IO.MemoryStream()) { PokemonGo.RocketAPI.Logic.Properties.Resources.norights.Save(stream, System.Drawing.Imaging.ImageFormat.Jpeg); stream.Position = 0; await _telegram.SendPhotoAsync(_chatid, new FileToSend("norights.jpg", stream), replyMarkup : new ReplyKeyboardHide()).ConfigureAwait(false); } return; } // [0]-Commando; [1+]-Argument var msgText = message.Text; string[] textCMD = msgText.Split(new char[] { ' ' }, StringSplitOptions.RemoveEmptyEntries); TelegramUtilTask cmd = getTask(textCMD[0]); switch (cmd) { case TelegramUtilTask.UNKNOWN: telegramAnswer = string.Format("Usage:\r\n{0}\r\n{1}\r\n{2}\r\n{3}\r\n{4}\r\n{5}\r\n{6}\r\n{7}\r\n{8}\r\n{9}", @"/stats - Get Current Stats", @"/livestats - Enable/Disable Live Stats", @"/information <topic> - Enable/Disable Information topics", @"/top <HowMany?> - Outputs Top (?) Pokemons", @"/transfer pokemon cp - transfer pokemons that matches with the given data", @"/items - Outputs Items List", @"/drop item amount - Throws the amount of items given", @"/forceevolve - Forces Evolve", @"/snipe pokemon latitude, longitude - snipe desired pokemon", @"/stopbot - stop running bot"); break; case TelegramUtilTask.GET_STATS: var ps = _client.Inventory.GetPlayerStats(); int l = ps.First().Level; long expneeded = ((ps.First().NextLevelXp - ps.First().PrevLevelXp) - StringUtils.getExpDiff(ps.First().Level)); long curexp = ((ps.First().Experience - ps.First().PrevLevelXp) - StringUtils.getExpDiff(ps.First().Level)); double curexppercent = (Convert.ToDouble(curexp) / Convert.ToDouble(expneeded)) * 100; string curloc = _client.CurrentLatitude + "%20" + _client.CurrentLongitude; curloc = curloc.Replace(",", "."); string curlochtml = "https://www.google.com/maps/search/" + curloc + "/"; double shortenLng = Math.Round(_client.CurrentLongitude, 3); double shortenLat = Math.Round(_client.CurrentLatitude, 3); var player = _client.Player.GetPlayer(); telegramAnswer += "\nNickname: " + player.PlayerData.Username; telegramAnswer += "\nLevel: " + ps.First().Level; telegramAnswer += "\nEXP Needed: " + ((ps.First().NextLevelXp - ps.First().PrevLevelXp) - StringUtils.getExpDiff(ps.First().Level)); telegramAnswer += $"\nCurrent EXP: {curexp} ({Math.Round(curexppercent)}%)"; telegramAnswer += "\nEXP to Level up: " + ((ps.First().NextLevelXp) - (ps.First().Experience)); telegramAnswer += "\nKM walked: " + ps.First().KmWalked; telegramAnswer += "\nPokeStops visited: " + ps.First().PokeStopVisits; telegramAnswer += "\nStardust: " + player.PlayerData.Currencies.ToArray()[1].Amount; telegramAnswer += "\nPokemons: " + (_client.Inventory.GetPokemons()).Count() + "/" + player.PlayerData.MaxPokemonStorage; telegramAnswer += "\nItems: " + _client.Inventory.GetItems().Count() + " / " + player.PlayerData.MaxItemStorage; telegramAnswer += "\nCurentLocation:\n" + curlochtml; break; case TelegramUtilTask.GET_TOPLIST: int shows = 10; if (textCMD.Length > 1 && !int.TryParse(textCMD[1], out shows)) { telegramAnswer += $"Error! This is not a Number: {textCMD[1]}\nNevermind...\n"; shows = 10; //TryParse error will reset to 0 } telegramAnswer += "Showing " + shows + " Pokemons...\nSorting..."; await _telegram.SendTextMessageAsync(_chatid, telegramAnswer, replyMarkup : new ReplyKeyboardHide()).ConfigureAwait(false); var myPokemons = _client.Inventory.GetPokemons(); myPokemons = myPokemons.OrderByDescending(x => x.Cp); var PogoUsername = _client.Player.GetPlayer().PlayerData.Username; telegramAnswer = $"Top {shows} Pokemons of {PogoUsername}:"; IEnumerable <PokemonData> topPokemon = myPokemons.Take(shows); foreach (PokemonData pokemon in topPokemon) { telegramAnswer += string.Format("\n{0} | CP: {1} ({2}% perfect)", pokemon.PokemonId, pokemon.Cp, Math.Round(PokemonInfo.CalculatePokemonPerfection(pokemon), 2)); } break; case TelegramUtilTask.SWITCH_LIVESTATS: _livestats = SwitchAndGetAnswer(_livestats, out telegramAnswer, "Live Stats"); break; case TelegramUtilTask.SWITCH_INFORMATION: //_informations = SwitchAndGetAnswer(_informations, out telegramAnswer, "Information"); Array topics = Enum.GetValues(typeof(TelegramUtilInformationTopics)); if (textCMD.Length > 1) { if (textCMD[1] == "all-enable") { foreach (TelegramUtilInformationTopics topic in topics) { String niceName = topic.ToString().Substring(0, 1).ToUpper() + topic.ToString().Substring(1).ToLower(); telegramAnswer += "Enabled information topic " + niceName + "\n"; _information[topic] = true; } break; } else if (textCMD[1] == "all-disable") { foreach (TelegramUtilInformationTopics topic in topics) { String niceName = topic.ToString().Substring(0, 1).ToUpper() + topic.ToString().Substring(1).ToLower(); telegramAnswer += "Disabled information topic " + niceName + "\n"; _information[topic] = false; } break; } else { foreach (TelegramUtilInformationTopics topic in topics) { if (textCMD[1].ToLower() == topic.ToString().ToLower()) { String niceName = topic.ToString().Substring(0, 1).ToUpper() + topic.ToString().Substring(1).ToLower(); _information[topic] = !_information[topic]; telegramAnswer = (_information[topic] ? "En" : "Dis") + "abled information topic " + niceName + "\n"; break; } } } } else { foreach (TelegramUtilInformationTopics topic in topics) { String niceName = topic.ToString().Substring(0, 1).ToUpper() + topic.ToString().Substring(1).ToLower(); telegramAnswer += " - " + niceName + "\n"; telegramAnswer += " - " + _informationDescription[topic] + "\n"; telegramAnswer += " - Currently " + (_information[topic] ? "enabled" : "disabled") + "\n"; telegramAnswer += "\n"; } telegramAnswer += " - all-disable\n"; telegramAnswer += " - " + TranslationHandler.GetString("telegram-disable-all", "Disable all topics") + "\n"; telegramAnswer += "\n"; telegramAnswer += " - all-enable\n"; telegramAnswer += " - " + TranslationHandler.GetString("telegram-enable-all", "Enable all topics") + "\n"; telegramAnswer += "\n"; break; } break; case TelegramUtilTask.RUN_FORCEEVOLVE: IEnumerable <PokemonData> pokemonToEvolve = Setout.GetPokemonToEvolve(true); if (pokemonToEvolve.Count() > 3) { Setout.UseLuckyEgg(_client); } foreach (PokemonData pokemon in pokemonToEvolve) { if (_botSettings.pokemonsToEvolve.Contains(pokemon.PokemonId)) { var evolvePokemonOutProto = _client.Inventory.EvolvePokemon((ulong)pokemon.Id); if (evolvePokemonOutProto.Result == POGOProtos.Networking.Responses.EvolvePokemonResponse.Types.Result.Success) { await _telegram.SendTextMessageAsync(_chatid, $"Evolved {pokemon.PokemonId} successfully for {evolvePokemonOutProto.ExperienceAwarded}xp", replyMarkup : new ReplyKeyboardHide()).ConfigureAwait(false); } else { await _telegram.SendTextMessageAsync(_chatid, $"Failed to evolve {pokemon.PokemonId}. EvolvePokemonOutProto.Result was {evolvePokemonOutProto.Result}, stopping evolving {pokemon.PokemonId}", replyMarkup : new ReplyKeyboardHide()).ConfigureAwait(false); } RandomHelper.RandomSleep(2000); } } telegramAnswer = "Done."; break; case TelegramUtilTask.RUN_SNIPE: telegramAnswer = ProcessSnipeCommand(msgText.Replace(textCMD[0], "").Trim()); break; case TelegramUtilTask.FORCE_STOP: var secs = 1; if (textCMD.Length > 1) { int.TryParse(textCMD[1].Trim(), out secs); } telegramAnswer = $"Stopping bot in {secs} seconds"; await _telegram.SendTextMessageAsync(_chatid, telegramAnswer, replyMarkup : new ReplyKeyboardHide()).ConfigureAwait(false); _telegram.StopReceiving(); RandomHelper.RandomSleep(secs * 1000); Environment.Exit(0); break; case TelegramUtilTask.TRANSFER_POKEMON: telegramAnswer = ProcessTransferPokemon(msgText.Replace(textCMD[0], "").Trim()); break; case TelegramUtilTask.GET_ITEMSLIST: telegramAnswer = ProcessGetItemList(); break; case TelegramUtilTask.DROP_ITEM: telegramAnswer = ProcessDropItem(msgText.Replace(textCMD[0], "").Trim()); break; } await _telegram.SendTextMessageAsync(_chatid, telegramAnswer, replyMarkup : new ReplyKeyboardHide()).ConfigureAwait(false); } catch (Exception ex) { Logger.Debug(ex.ToString()); var apiRequestException = ex as ApiRequestException; if (apiRequestException != null) { await _telegram.SendTextMessageAsync(_chatid, apiRequestException.Message, replyMarkup : new ReplyKeyboardHide()).ConfigureAwait(false); } } }
async void do_work(object sender, DoWorkEventArgs e) { var worker = sender as BackgroundWorker; var key = e.Argument as String; try { var bot = new Telegram.Bot.TelegramBotClient(key); await bot.SetWebhookAsync(""); AIMLbot.Bot lazy = new AIMLbot.Bot(); lazy.loadSettings(); lazy.loadAIMLFromFiles(); lazy.isAcceptingUserInput = false; AIMLbot.User us = new AIMLbot.User("Username", lazy); lazy.isAcceptingUserInput = true; bot.OnCallbackQuery += async(object sc, Telegram.Bot.Args.CallbackQueryEventArgs ev) => { Telegram.Bot.Types.FileToSend s; var message = ev.CallbackQuery.Message; if (ev.CallbackQuery.Data == "callback1") { s = new Telegram.Bot.Types.FileToSend("https://i.pinimg.com/originals/f7/e9/80/f7e980c9700c8395535b835e66f02a59.jpg"); } else if (ev.CallbackQuery.Data == "callback2") { s = new Telegram.Bot.Types.FileToSend("https://static.independent.co.uk/s3fs-public/thumbnails/image/2012/02/29/22/pg-28-sloth-cooke.jpg"); } await bot.SendPhotoAsync(message.Chat.Id, s, "Sure! But... not today :)"); 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[0] == '/') { if (message.Text == "/test") { await bot.SendTextMessageAsync(message.Chat.Id, "Yeah...", replyToMessageId : message.MessageId); } if (message.Text == "/sleep") { var s = new Telegram.Bot.Types.FileToSend("https://beano-uploads-production.imgix.net/store/f4046f22dffe92e3f2167accb6942f788159d0f979f970dcda59f1d0e529?auto=compress&w=752&h=423&fit=min"); await bot.SendPhotoAsync(message.Chat.Id, s, "Yeeeeeeeeeah, sleeeeeeeeep!"); } if (message.Text == "/song") { var s = new Telegram.Bot.Types.FileToSend("http://store.naitimp3.ru/download/0/cGR1a0tRTWJwZW8wMlI2aitkT1UzVkxNdXE2dUNiRTAvcGRkeGphMTVFVTdQcGFURWlFOFQyUGZFTXJ6UVo4cWxVSUNza2NOQUpoZkJOU2ozYTJhWUpLSVdiUTRTanQrVmZnN1hQV1U5Tkk9/eels_i_need_some_sleep_(NaitiMP3.ru).mp3"); await bot.SendAudioAsync(message.Chat.Id, s, "", 4, "Eels", "I need some sleep..."); } if (message.Text == "/work") { var keyboard = new Telegram.Bot.Types.ReplyMarkups.InlineKeyboardMarkup( new Telegram.Bot.Types.InlineKeyboardButtons.InlineKeyboardButton[][] { // First row new [] { // First column new Telegram.Bot.Types.InlineKeyboardButtons.InlineKeyboardCallbackButton("Work", "callback1"), // Second column new Telegram.Bot.Types.InlineKeyboardButtons.InlineKeyboardCallbackButton("Work harder", "callback2") }, } ); await bot.SendTextMessageAsync(message.Chat.Id, "Hmmmm... What should I do?..!", Telegram.Bot.Types.Enums.ParseMode.Default, false, false, 0, keyboard); } } else if ((message.Text[0] >= 'а' && message.Text[0] <= 'я') || (message.Text[0] >= 'А' && message.Text[0] <= 'Я')) { await bot.SendTextMessageAsync(message.Chat.Id, "I'm too lazy to learn russian, sorry...", replyToMessageId : message.MessageId); } else { AIMLbot.Request r = new AIMLbot.Request(message.Text, us, lazy); AIMLbot.Result res = lazy.Chat(r); await bot.SendTextMessageAsync(message.Chat.Id, res.Output, replyToMessageId : message.MessageId); } } }; bot.StartReceiving(); } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { Console.WriteLine(ex.Message); } }
async void launchWorkerAsync(object sender, DoWorkEventArgs e) { BackgroundWorker worker = sender as BackgroundWorker; string key = e.Argument as String; try { Bot = new Telegram.Bot.TelegramBotClient(key); await Bot.SetWebhookAsync(""); int offset = 0; while (true) { var messages = await Bot.GetUpdatesAsync(offset); foreach (var message in messages) { var msgText = message.Message; User currentUser; if (users.ContainsKey(msgText.Chat.Id)) { currentUser = users[msgText.Chat.Id]; } else { currentUser = new User("Уважаемый", bot); currentUser.Predicates.addSetting("favouriteanimal", "default"); currentUser.Predicates.addSetting("name", "default"); users[msgText.Chat.Id] = currentUser; } if (msgText.Type == Telegram.Bot.Types.Enums.MessageType.Text && msgText.Text.Contains("/game")) { string text = msgText.Text; text = text.Replace("/game ", ""); string[] clues = text.Split(','); clues = clues.Select(x => x.Trim().ToLower()).ToArray(); List <string> games = Program.SetupFacts(clues.ToList(), ""); if (games.Count == 0) { await Bot.SendTextMessageAsync(msgText.Chat.Id, "Не знаю таких игра :("); } else { string res = games.Aggregate((i, j) => i + '?' + j); res += '?'; await Bot.SendTextMessageAsync(msgText.Chat.Id, "Я что-то такое знаю. " + res); } } else if (msgText.Type == Telegram.Bot.Types.Enums.MessageType.Text) { Console.WriteLine(msgText.Text.ToUpper()); Request r = new Request(msgText.Text, currentUser, bot); Result res = bot.Chat(r); if (res.Output != "") { if (res.Output.EndsWith(".jpg.")) { await Bot.SendPhotoAsync(msgText.Chat.Id, res.Output.Remove(res.Output.Count() - 1, 1)); } else if (res.Output == "time.") { var time = "У меня " + DateTime.Now.Hour.ToString() + ":" + DateTime.Now.Minute.ToString() + ", сколько у вас - не знаю"; await Bot.SendTextMessageAsync(msgText.Chat.Id, time); } else if (res.Output == "foot.") { string table = football.getTable(); await Bot.SendTextMessageAsync(msgText.Chat.Id, table); } else if (res.Output == "anec.") { string anec = Anecdot.anec(); await Bot.SendTextMessageAsync(msgText.Chat.Id, anec); } else if (res.Output == "voice.") { string anec = Anecdot.anec(); SpeechSynthesizer speaker = new SpeechSynthesizer(); speaker.Rate = 2; speaker.Volume = 100; speaker.Speak(anec); speaker.SetOutputToWaveFile("soundfile.wav"); speaker.Speak(anec + "\n АХАХАХАХАХАХ"); speaker.SetOutputToDefaultAudioDevice(); var fStream = new FileStream("soundfile.wav", FileMode.OpenOrCreate); await Bot.SendVoiceAsync(msgText.Chat.Id, new Telegram.Bot.Types.InputFiles.InputOnlineFile(fStream)); fStream.Dispose(); } else if (res.Output == "beauty.") { var fStream = new FileStream("..\\..\\1beauty.jpg", FileMode.OpenOrCreate); await Bot.SendPhotoAsync(msgText.Chat.Id, new Telegram.Bot.Types.InputFiles.InputOnlineFile(fStream), "Красивее не сыскать"); } else if (res.Output.Contains("poetryFlag")) { var poem = res.Output.Replace("poetryFlag", ""); SpeechSynthesizer speaker = new SpeechSynthesizer(); speaker.Rate = 2; speaker.Volume = 100; speaker.SetOutputToWaveFile("soundfile.wav"); speaker.Speak(poem); speaker.SetOutputToDefaultAudioDevice(); var fStream = new FileStream("soundfile.wav", FileMode.OpenOrCreate); await Bot.SendVoiceAsync(msgText.Chat.Id, new Telegram.Bot.Types.InputFiles.InputOnlineFile(fStream)); fStream.Dispose(); } else { await Bot.SendTextMessageAsync(msgText.Chat.Id, res.Output); } } } else if (msgText.Type == Telegram.Bot.Types.Enums.MessageType.Photo) { ProcessImage(msgText.Photo[msgText.Photo.Length - 1].FileId, "", msgText.Chat.Id); } offset = message.Id + 1; } } } catch (Telegram.Bot.Exceptions.ApiRequestException exception) { Console.WriteLine(exception.Message); asyncWorker.RunWorkerAsync("999037946:AAHbd0xIjp5l6iS0aGuVB-jIP2R4a99EUFo"); } }
private void processUpdate(Telegram.Bot.Types.Update update) { switch (update.Type) { case Telegram.Bot.Types.Enums.UpdateType.Message: var text = update.Message.Text; string imagePath = null; var state = _clientStates.ContainsKey(update.Message.Chat.Id) ? _clientStates[update.Message.Chat.Id] : null; if (state != null) { switch (state.State) { case State.SearchMusic: if (text.Equals(TEXT_BACK)) { _client.SendTextMessageAsync(update.Message.Chat.Id, "Выберите:", replyMarkup: GetButtons()); _clientStates[update.Message.Chat.Id] = null; } else { var songs = GetSongsByAuthor(author: text); if (songs?.Item2 != null && songs.Item2.Count > 0) { state.State = State.SearchSong; state.Author = text; imagePath = Path.Combine(Environment.CurrentDirectory, songs.Item1); using (var stream = File.OpenRead(imagePath)) { var r = _client.SendPhotoAsync(update.Message.Chat.Id, new Telegram.Bot.Types.InputFiles.InputOnlineFile(stream), caption: state.Author).Result; } _client.SendTextMessageAsync(update.Message.Chat.Id, "Введите название песни:", replyMarkup: getSongsButtons(songs.Item2)); } else { _client.SendTextMessageAsync(update.Message.Chat.Id, "Ничего не найдено\nВведите автора:", replyMarkup: getAuthors()); } } break; case State.SearchSong: if (text.Equals(TEXT_BACK)) { state.State = State.SearchMusic; _client.SendTextMessageAsync(update.Message.Chat.Id, "Введите автора:", replyMarkup: getAuthors()); } else { var songPath = getSongPath(text); var songs2 = GetSongsByAuthor(author: state.Author); if (!string.IsNullOrEmpty(songPath) && File.Exists(songPath)) { _client.SendTextMessageAsync(update.Message.Chat.Id, "Песня загружается..."); using (var stream = File.OpenRead(songPath)) { var r = _client.SendAudioAsync(update.Message.Chat.Id, new Telegram.Bot.Types.InputFiles.InputOnlineFile(stream), replyMarkup: getSongsButtons(songs2.Item2)).Result; } } else { _client.SendTextMessageAsync(update.Message.Chat.Id, "Ничего не найдено\nВведите название песни:", replyMarkup: getSongsButtons(songs2.Item2)); } } break; } } else { switch (text) { case TEXT_MUSIC: _clientStates[update.Message.Chat.Id] = new UserState { State = State.SearchMusic }; _client.SendTextMessageAsync(update.Message.Chat.Id, "Введите автора:", replyMarkup: getAuthors()); break; case TEXT_1: imagePath = Path.Combine(Environment.CurrentDirectory, "1.png"); using (var stream = File.OpenRead(imagePath)) { var r = _client.SendPhotoAsync(update.Message.Chat.Id, new Telegram.Bot.Types.InputFiles.InputOnlineFile(stream), caption: "1", replyMarkup: GetInlineButton(1)).Result; } break; case TEXT_2: imagePath = Path.Combine(Environment.CurrentDirectory, "2.png"); using (var stream = File.OpenRead(imagePath)) { var r = _client.SendPhotoAsync(update.Message.Chat.Id, new Telegram.Bot.Types.InputFiles.InputOnlineFile(stream), caption: "2", replyMarkup: GetInlineButton(2)).Result; } break; case TEXT_3: imagePath = Path.Combine(Environment.CurrentDirectory, "3.png"); using (var stream = File.OpenRead(imagePath)) { var r = _client.SendPhotoAsync(update.Message.Chat.Id, new Telegram.Bot.Types.InputFiles.InputOnlineFile(stream), caption: "3", replyMarkup: GetInlineButton(3)).Result; } break; case TEXT_4: imagePath = Path.Combine(Environment.CurrentDirectory, "4.png"); using (var stream = File.OpenRead(imagePath)) { var r = _client.SendPhotoAsync(update.Message.Chat.Id, new Telegram.Bot.Types.InputFiles.InputOnlineFile(stream), caption: "4", replyMarkup: GetInlineButton(4)).Result; } break; default: _client.SendTextMessageAsync(update.Message.Chat.Id, "Receive text :" + text, replyMarkup: GetButtons()); break; } } break; case Telegram.Bot.Types.Enums.UpdateType.CallbackQuery: switch (update.CallbackQuery.Data) { case "1": var msg1 = _client.SendTextMessageAsync(update.CallbackQuery.Message.Chat.Id, $"Заказ `{update.CallbackQuery.Data}` принят", replyMarkup: GetButtons()).Result; break; case "2": var msg2 = _client.SendTextMessageAsync(update.CallbackQuery.Message.Chat.Id, $"Заказ `{update.CallbackQuery.Data}` принят", replyMarkup: GetButtons()).Result; break; case "3": var msg3 = _client.SendTextMessageAsync(update.CallbackQuery.Message.Chat.Id, $"Заказ `{update.CallbackQuery.Data}` принят", replyMarkup: GetButtons()).Result; break; case "4": var msg4 = _client.SendTextMessageAsync(update.CallbackQuery.Message.Chat.Id, $"Заказ `{update.CallbackQuery.Data}` принят", replyMarkup: GetButtons()).Result; break; } break; default: Console.WriteLine(update.Type + " Not ipmlemented!"); break; } }