// Этот метод вызывается при вызове, например, // InlineKeyboardButton.WithCallbackData("Пункт 1") private static async void BotOnCallbackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { // текст, ассоциированный с нажатой кнопкой string buttonText = e.CallbackQuery.Data; string name = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}"; Console.WriteLine($"{name} нажал кнопку {buttonText}"); if (buttonText == "Картинка") { // e.CallbackQuery.From.Id -- id чата, в котором пользователь // взаимодействует с ботом await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "https://i.ytimg.com/vi/f-e9hSUSlSM/maxresdefault.jpg"); } else if (buttonText == "Видео") { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "https://www.youtube.com/watch?v=f-e9hSUSlSM"); } // Отобразиться у клиента в виде всплывающего сообщения по центру чата // e.CallbackQuery.Id -- id кнопки, которую пользователь // нажимает при взаимодействии с ботом await Bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"Вы нажали кнопку {buttonText}"); }
private static async void BotOnCallBackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { string buttonText = e.CallbackQuery.Data; string name = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}"; Console.WriteLine($"{name} нажал кнопку {buttonText}"); try { if (buttonText == "Замены") { Message x = await Bot.SendTextMessageAsync(e.CallbackQuery.Id, "http://kipt.sumdu.edu.ua/zaninu-na-zavtra.html"); } else if (buttonText == "ИптКиСумДу") { Message x = await Bot.SendTextMessageAsync(e.CallbackQuery.Id, "https://www.youtube.com/watch?v=mj4tAgzhE7E"); } await Bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"Вы нажали конпку {buttonText}"); } catch (Exception ex) { Console.WriteLine(ex.Message); } }
private static void Api_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { if (!Devs.Contains(e.CallbackQuery.From.Id)) { return; } var q = e.CallbackQuery; if (q.Data == "close") { Api.DeleteMessageAsync(DevGroup, q.Message.MessageId); return; } var id = int.Parse(q.Data); var t = Commands[id]; var user = t[0].From; var startTime = t[0].Date; var endTime = t[t.Count - 1].Date; var ticks = (endTime - startTime).Ticks; ticks /= t.Count; var avg = new TimeSpan(ticks); var msg = ($"User @{user.Username} ({user.Id}): {t.Count} - Average time between commands: {avg}\n"); msg = t.Aggregate(msg, (a, b) => a + $"{b.Text}: {b.Date}\n"); Api.SendTextMessageAsync(DevGroup, msg); Api.AnswerCallbackQueryAsync(q.Id); }
private static async void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { string buttonText = e.CallbackQuery.Data; string name = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}"; Console.WriteLine($"{name} нажал кнопку '{buttonText}'"); await Bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"Вы нажали кнопу '{buttonText}'"); }
private static async void CallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { string buttonText = e.CallbackQuery.Data; string name = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}"; Console.WriteLine($"{name} Push on the button {buttonText}"); await bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"you push the button {buttonText}"); }
private static async void BotOnCallbackQueryRecived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { await Bot.AnswerCallbackQueryAsync( callbackQueryId : e.CallbackQuery.Id, text : $"Button {e.CallbackQuery.Data} has been pressed"); await Bot.SendTextMessageAsync( chatId : e.CallbackQuery.Message.Chat.Id, text : $"Button {e.CallbackQuery.Data} has been pressed"); }
private static void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { if (api.IsDownload) { SendFile(e); } else { NewDirOnCallbackQuery(e); } }
private static async void BotOnCallbackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { string buttonText = e.CallbackQuery.Data; string name = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}"; if (buttonText == "Добавить доход") { var telegramExpencesData = new CollectedExpencesData(); telegramExpencesData.TransactionTime = e.CallbackQuery.Message.Date; string text = "Please enter the amount, spend on, and type (cash or credit)" + Environment.NewLine + "For example: 1000, food, credit"; await botClient.SendTextMessageAsync(e.CallbackQuery.From.Id, text); } }
private static async void BotOnCallbackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { string buttonText = e.CallbackQuery.Data; string name = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}"; Console.WriteLine($"{name} выбрал(-а): {buttonText}"); //throw new NotImplementedException(); try { await Bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"Вы выбрали: {buttonText}"); } catch { } }
private static async void BotOnCallbackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { string buttonText = e.CallbackQuery.Data; string name = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}"; Console.WriteLine($"{name} Нажал кнопку {buttonText}"); if (buttonText == "Картинка") { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "https://www.sunhome.ru/i/wallpapers/200/planeta-zemlya-kartinka.960x540.jpg"); } else if (buttonText == "Видео") { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "https://www.youtube.com/watch?v=sZgXUK5L3Ss"); } await Bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"Вы нажали кнопку {buttonText}"); }
private static async void BotOnCallbackQueryRecieved(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { string buttonText = e.CallbackQuery.Data; string name = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}"; Console.WriteLine($"{name} нажал кнопку {buttonText}"); if (buttonText == "Изображение") { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "https://pixabay.com/ru/photos/"); } else if (buttonText == "Видео") { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "https://www.youtube.com/"); } await Bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"Вы нажали кнопку {buttonText}"); }
private static void Api_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { try { if (!Devs.Contains(e.CallbackQuery.From.Id)) { return; } var q = e.CallbackQuery; if (q.Data == "close") { Api.DeleteMessageAsync(DevGroup, q.Message.MessageId); return; } var id = int.Parse(q.Data); if (!Commands.TryGetValue(id, out var t)) { Api.AnswerCallbackQueryAsync(q.Id, "Sorry, this flood isn't in my memory anymore! :(", true).Wait(); return; } var user = t[0].From; var startTime = t[0].Date; var endTime = t[t.Count - 1].Date; var ticks = (endTime - startTime).Ticks; ticks /= t.Count; var avg = new TimeSpan(ticks); var msg = ($"User @{user.Username} ({user.Id}): {t.Count} - Average time between commands: {avg}\n"); msg = t.Aggregate(msg, (a, b) => a + $"{b.Text}: {b.Date}\n"); Api.SendTextMessageAsync(DevGroup, msg); Api.AnswerCallbackQueryAsync(q.Id); } catch (Exception exc) { var trace = exc.StackTrace; var error = ""; do { error += exc.Message + "\n\n"; exc = exc.InnerException; }while (exc != null); Api.SendTextMessageAsync(DevGroup, error + trace).Wait(); } }
private static async void bot_chaqirish(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { if (!string.IsNullOrEmpty(e.CallbackQuery.Data)) { var data = e.CallbackQuery.Data; var cid = e.CallbackQuery.Message.Chat.Id; var cbid = e.CallbackQuery.Id; if (data == "sayhi") { await bot.AnswerCallbackQueryAsync(cbid, "salom foydalanuvchi"); await bot.SendTextMessageAsync(cid, "sdfsdfsd"); } else if (data == "saybye") { await bot.AnswerCallbackQueryAsync(cbid, "Xayr foydalanuvchi", true); } } }
static void makeChoice(object sc, Telegram.Bot.Args.CallbackQueryEventArgs ev) { if (data == null) { return; } var message = ev.CallbackQuery.Data; Console.WriteLine(message); var chatID = ev.CallbackQuery.Message.Chat.Id; data = DBClass.getComands(Users[chatID]); try { String[] messArr = message.Split("_"); if (messArr[0] != Users[chatID]) { return; } if (messArr[1] == "back") { Comand t = DBClass.getComand(messArr[0]); Users[chatID] = t.ParentID; showMessage(chatID); } else if (messArr[1] == "helpyes") { workWithHelp(chatID, true); } else if (messArr[1] == "helpno") { Comand t = DBClass.getComand(messArr[0]); Users[chatID] = t.ParentID; showMessage(chatID); } else { Users[chatID] = data[Convert.ToInt32(messArr[1])].Id; showMessage(chatID); } } catch (Exception) { } }
private static async void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { if (!string.IsNullOrEmpty(e.CallbackQuery.Data)) { var data = e.CallbackQuery.Data; var cid = e.CallbackQuery.Message.Chat.Id; var cbid = e.CallbackQuery.Id; Console.WriteLine(e.CallbackQuery.Message.Chat.FirstName + " " + e.CallbackQuery.Message.Chat.LastName + " " + e.CallbackQuery.Data); OnInlineCallBackHandler.HandleSurahQuery(e, bot); try { await bot.AnswerCallbackQueryAsync(cbid, data); } catch (Telegram.Bot.Exceptions.ApiRequestException ex) { Console.WriteLine(e.CallbackQuery.Message.Chat.Id + " EXCEPTION" + ex.Message); }; } }
public static void CallbackReceived(object sender, CallbackQueryEventArgs e) { new Task(() => { HandleCallback(e.CallbackQuery); }).Start(); }
public static void CallbackReceived(object sender, CallbackQueryEventArgs e) { using (var DB = new WWContext()) { try { var query = e.CallbackQuery; string[] args = query.Data.Split('|'); InlineKeyboardMarkup menu; Group grp; List<InlineKeyboardButton> buttons = new List<InlineKeyboardButton>(); long groupid = 0; if (args[0] == "vote") { var node = Bot.Nodes.FirstOrDefault(x => x.ClientId.ToString() == args[1]); node?.SendReply(query); return; } groupid = long.Parse(args[1]); grp = DB.Groups.FirstOrDefault(x => x.GroupId == groupid); if (grp == null && args[0] != "getlang") return; var command = args[0]; var choice = ""; if (args.Length > 2) choice = args[2]; if (choice == "cancel") { Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); return; } switch (command) { case "validate": //choice = args[1]; if (choice == "All") { Helpers.LanguageHelper.ValidateFiles(query.Message.Chat.Id, query.Message.MessageId); return; } //var menu = new ReplyKeyboardHide { HideKeyboard = true, Selective = true }; //Bot.SendTextMessage(id, "", replyToMessageId: update.Message.MessageId, replyMarkup: menu); var langOptions = Directory.GetFiles(Bot.LanguageDirectory) .Select( x => new { Name = XDocument.Load(x) .Descendants("language") .First() .Attribute("name") .Value, FilePath = x }); var option = langOptions.First(x => x.Name == choice); LanguageHelper.ValidateLanguageFile(query.Message.Chat.Id, option.FilePath, query.Message.MessageId); return; case "getlang": Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, "One moment..."); if (choice == "All") LanguageHelper.SendAllFiles(query.Message.Chat.Id); else LanguageHelper.SendFile(query.Message.Chat.Id, choice); break; case "upload": Console.WriteLine(choice); if (choice == "current") { Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, "No action taken."); return; } Helpers.LanguageHelper.UseNewLanguageFile(choice, query.Message.Chat.Id, query.Message.MessageId); return; case "vote": //send it back to the game; var node = Bot.Nodes.FirstOrDefault(x => x.ClientId.ToString() == args[1]); node?.SendReply(query); break; case "lang": //load up each file and get the names var langs = Directory.GetFiles(Bot.LanguageDirectory) .Select( x => new { Name = XDocument.Load(x) .Descendants("language") .First() .Attribute("name") .Value, Base = XDocument.Load(x) .Descendants("language") .First() .Attribute("base") .Value, Variant = XDocument.Load(x) .Descendants("language") .First() .Attribute("variant") .Value, FileName = Path.GetFileNameWithoutExtension(x) }); buttons.Clear(); buttons.AddRange(langs.Select(x => x.Base).Distinct().OrderBy(x => x).Select(x => new InlineKeyboardButton(x, $"setlang|{groupid}|{x}|null|base"))); var baseMenu = new List<InlineKeyboardButton[]>(); for (var i = 0; i < buttons.Count; i++) { if (buttons.Count - 1 == i) { baseMenu.Add(new[] { buttons[i] }); } else baseMenu.Add(new[] { buttons[i], buttons[i + 1] }); i++; } menu = new InlineKeyboardMarkup(baseMenu.ToArray()); var curLang = langs.First(x => x.FileName == grp.Language); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What Language?\nCurrent: {curLang.Base}", replyMarkup: menu); break; case "setlang": //first, is this the base or variant? var isBase = args[4] == "base"; //ok, they picked a language, let's set it. var validlangs = Directory.GetFiles(Bot.LanguageDirectory) .Select( x => new { Name = XDocument.Load(x) .Descendants("language") .First() .Attribute("name") .Value, Base = XDocument.Load(x) .Descendants("language") .First() .Attribute("base") .Value, Variant = XDocument.Load(x) .Descendants("language") .First() .Attribute("variant") .Value, FileName = Path.GetFileNameWithoutExtension(x) }); //ok, if base we need to check for variants.... var lang = validlangs.First(x => x.Base == choice); if (isBase) { var variants = validlangs.Where(x => x.Base == choice); if (variants.Count() > 1) { buttons.Clear(); buttons.AddRange(variants.Select(x => new InlineKeyboardButton(x.Variant, $"setlang|{groupid}|{x.Base}|{x.Variant}|v"))); var twoMenu = new List<InlineKeyboardButton[]>(); for (var i = 0; i < buttons.Count; i++) { if (buttons.Count - 1 == i) { twoMenu.Add(new[] { buttons[i] }); } else twoMenu.Add(new[] { buttons[i], buttons[i + 1] }); i++; } menu = new InlineKeyboardMarkup(twoMenu.ToArray()); var curVariant = validlangs.First(x => x.FileName == grp.Language); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What Variant?\nCurrent: {curVariant.Variant}", replyMarkup: menu); return; } //only one variant, move along } else { lang = validlangs.First(x => x.Base == choice && x.Variant == args[3]); } if ( Directory.GetFiles(Bot.LanguageDirectory) .Any( x => String.Equals(Path.GetFileNameWithoutExtension(x), lang.FileName, StringComparison.InvariantCultureIgnoreCase))) { //now get the group grp.Language = lang.FileName; //check for any games running var ig = GetGroupNodeAndGame(groupid); ig?.LoadLanguage(lang.FileName); menu = GetConfigMenu(groupid); Bot.Api.AnswerCallbackQuery(query.Id, $"Language set to {lang.Base}{(String.IsNullOrWhiteSpace(lang.Variant) ? "" : ": " + lang.Variant)}"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: menu); } DB.SaveChanges(); break; case "online": buttons.Add(new InlineKeyboardButton("Yes", $"setonline|{groupid}|show")); buttons.Add(new InlineKeyboardButton("No", $"setonline|{groupid}|hide")); buttons.Add(new InlineKeyboardButton("Cancel", $"setonline|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"Do you want your group to be notified when the bot is online?\nCurrent: {grp.DisableNotification != false}", replyMarkup: menu); break; case "setonline": grp.DisableNotification = (choice == "hide"); Bot.Api.AnswerCallbackQuery(query.Id, $"Notification will {(grp.DisableNotification == true ? "not " : "")}be shown on startup"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "flee": buttons.Add(new InlineKeyboardButton("Yes", $"setflee|{groupid}|enable")); buttons.Add(new InlineKeyboardButton("No", $"setflee|{groupid}|disable")); buttons.Add(new InlineKeyboardButton("Cancel", $"setflee|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"Do you want to allow fleeing once the game has started?\nNote: players can still flee during join phase\nCurrent: Players can {(grp.DisableFlee == false ? "" : "not ")}flee", replyMarkup: menu); break; case "setflee": grp.DisableFlee = (choice == "disable"); Bot.Api.AnswerCallbackQuery(query.Id, $"Players will {(grp.DisableFlee == true ? "not " : "")}be allowed to flee after game start"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "maxplayer": buttons.Add(new InlineKeyboardButton("10", $"setmaxplayer|{groupid}|10")); buttons.Add(new InlineKeyboardButton("15", $"setmaxplayer|{groupid}|15")); buttons.Add(new InlineKeyboardButton("20", $"setmaxplayer|{groupid}|20")); buttons.Add(new InlineKeyboardButton("25", $"setmaxplayer|{groupid}|25")); buttons.Add(new InlineKeyboardButton("30", $"setmaxplayer|{groupid}|30")); buttons.Add(new InlineKeyboardButton("35", $"setmaxplayer|{groupid}|35")); buttons.Add(new InlineKeyboardButton("Cancel", $"setmaxplayer|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"How many players would like to set as the maximum?\nCurrent: {grp.MaxPlayers ?? Settings.MaxPlayers}", replyMarkup: menu); break; case "setmaxplayer": grp.MaxPlayers = int.Parse(choice); Bot.Api.AnswerCallbackQuery(query.Id, $"Max players set to {choice}"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "roles": buttons.Add(new InlineKeyboardButton("Show", $"setroles|{groupid}|show")); buttons.Add(new InlineKeyboardButton("Hide", $"setroles|{groupid}|hide")); buttons.Add(new InlineKeyboardButton("Cancel", $"setroles|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"Show or Hide roles on death?\nCurrent: {(grp.ShowRoles == false ? "Hidden" : "Shown")}", replyMarkup: menu); break; case "setroles": grp.ShowRoles = (choice == "show"); Bot.Api.AnswerCallbackQuery(query.Id, $"Roles will be {(grp.ShowRoles == false ? "hidden" : "shown")} on death."); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "mode": buttons.Add(new InlineKeyboardButton("Normal Only", $"setmode|{groupid}|Normal")); buttons.Add(new InlineKeyboardButton("Chaos Only", $"setmode|{groupid}|Chaos")); buttons.Add(new InlineKeyboardButton("Player Choice", $"setmode|{groupid}|Player")); buttons.Add(new InlineKeyboardButton("Cancel", $"setmode|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What game mode will the group be?\nCurrent: {grp.Mode}", replyMarkup: menu); break; case "setmode": grp.Mode = choice; Bot.Api.AnswerCallbackQuery(query.Id, $"Game mode set to {choice}"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "endroles": buttons.Add(new InlineKeyboardButton("Don't show any", $"setendroles|{groupid}|None")); buttons.Add(new InlineKeyboardButton("Show only living players", $"setendroles|{groupid}|Living")); buttons.Add(new InlineKeyboardButton("Show all players", $"setendroles|{groupid}|All")); buttons.Add(new InlineKeyboardButton("Cancel", $"setendroles|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"How do you want roles to be shown at the end?\nCurrent: {grp.ShowRolesEnd}", replyMarkup: menu); break; case "setendroles": grp.ShowRolesEnd = choice; Bot.Api.AnswerCallbackQuery(query.Id, $"Roles shown at end set to: {choice}"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "day": buttons.Add(new InlineKeyboardButton("30", $"setday|{groupid}|30")); buttons.Add(new InlineKeyboardButton("60", $"setday|{groupid}|60")); buttons.Add(new InlineKeyboardButton("90", $"setday|{groupid}|90")); buttons.Add(new InlineKeyboardButton("120", $"setday|{groupid}|120")); buttons.Add(new InlineKeyboardButton("Cancel", $"setday|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"Choose the base time (in seconds) for day time. This will still be modified based on number of players.\nMinimum time added based on players is 60 seconds. Default setting: {Settings.TimeDay}\nCurrent: {grp.DayTime ?? Settings.TimeDay}", replyMarkup: menu); break; case "setday": grp.DayTime = int.Parse(choice); Bot.Api.AnswerCallbackQuery(query.Id, $"Base day time set to {choice} seconds"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "night": buttons.Add(new InlineKeyboardButton("30", $"setnight|{groupid}|30")); buttons.Add(new InlineKeyboardButton("60", $"setnight|{groupid}|60")); buttons.Add(new InlineKeyboardButton("90", $"setnight|{groupid}|90")); buttons.Add(new InlineKeyboardButton("120", $"setnight|{groupid}|120")); buttons.Add(new InlineKeyboardButton("Cancel", $"setnight|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"Choose the time (in seconds) for night time. Default setting: {Settings.TimeNight}\nCurrent:{grp.NightTime ?? Settings.TimeNight}", replyMarkup: menu); break; case "setnight": grp.NightTime = int.Parse(choice); Bot.Api.AnswerCallbackQuery(query.Id, $"Night time set to {choice} seconds"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "lynch": buttons.Add(new InlineKeyboardButton("30", $"setlynch|{groupid}|30")); buttons.Add(new InlineKeyboardButton("60", $"setlynch|{groupid}|60")); buttons.Add(new InlineKeyboardButton("90", $"setlynch|{groupid}|90")); buttons.Add(new InlineKeyboardButton("120", $"setlynch|{groupid}|120")); buttons.Add(new InlineKeyboardButton("Cancel", $"setlynch|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"Choose the time (in seconds) for lynch voting. Default setting: {Settings.TimeLynch}\nCurrent:{grp.LynchTime ?? Settings.TimeLynch}", replyMarkup: menu); break; case "setlynch": grp.LynchTime = int.Parse(choice); Bot.Api.AnswerCallbackQuery(query.Id, $"Lynch voting time set to {choice} seconds"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "fool": buttons.Add(new InlineKeyboardButton("Allow", $"setfool|{groupid}|true")); buttons.Add(new InlineKeyboardButton("Disallow", $"setfool|{groupid}|false")); buttons.Add(new InlineKeyboardButton("Cancel", $"setfool|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"Allow fool as a role option?\nCurrent: {grp.AllowFool}", replyMarkup: menu); break; case "setfool": grp.AllowFool = (choice == "true"); Bot.Api.AnswerCallbackQuery(query.Id, $"Fool as a role set to: {choice}"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "tanner": buttons.Add(new InlineKeyboardButton("Allow", $"settanner|{groupid}|true")); buttons.Add(new InlineKeyboardButton("Disallow", $"settanner|{groupid}|false")); buttons.Add(new InlineKeyboardButton("Cancel", $"settanner|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"Allow tanner as a role option?\nCurrent: {grp.AllowTanner}", replyMarkup: menu); break; case "settanner": grp.AllowTanner = (choice == "true"); Bot.Api.AnswerCallbackQuery(query.Id, $"Tanner as a role set to: {choice}"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "cult": buttons.Add(new InlineKeyboardButton("Allow", $"setcult|{groupid}|true")); buttons.Add(new InlineKeyboardButton("Disallow", $"setcult|{groupid}|false")); buttons.Add(new InlineKeyboardButton("Cancel", $"setcult|{groupid}|cancel")); menu = new InlineKeyboardMarkup(buttons.Select(x => new[] { x }).ToArray()); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"Allow cult as a role option?\nCurrent: {grp.AllowCult}", replyMarkup: menu); break; case "setcult": grp.AllowCult = (choice == "true"); Bot.Api.AnswerCallbackQuery(query.Id, $"Cult as a role set to: {choice}"); Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, $"What would you like to do?", replyMarkup: GetConfigMenu(groupid)); DB.SaveChanges(); break; case "done": Bot.Api.EditMessageText(query.Message.Chat.Id, query.Message.MessageId, "Thank you, have a good day :)"); break; } } catch (Exception ex) { } } }
private static void BotOnCallbackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { string buttonText = e.CallbackQuery.Data; // string name = $"{e.CallbackQuery.From.f}" }
private static void BotOnCallbackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { buttonText = e.CallbackQuery.Data; }
private static async void Bot_OnCallbackQueryReseived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { string[] userRequest = e.CallbackQuery.Data.Split('※'); switch (userRequest[1]) { case "1": //search by color { FindUser findUser = new FindUser(); findUser.color = userRequest[0]; var json = JsonConvert.SerializeObject(findUser); var data = new StringContent(json, Encoding.UTF8, "application/json"); using var client = new HttpClient(); var content = await client.PostAsync("https://wallpaperapi.azurewebsites.net/api/Wallpaper/color", data); string result = content.Content.ReadAsStringAsync().Result; WallhavenResponse wallhaven = JsonConvert.DeserializeObject <WallhavenResponse>(result); if (result == "BAD") { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "Very bad"); break; } if (wallhaven.results.Count == null || wallhaven.results.Count == 0) { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "Very bad"); break; } List <List <InlineKeyboardButton> > inlineKeyboardList = new List <List <InlineKeyboardButton> >(); int a = 0; foreach (var photo in wallhaven.results) //dynamic buttons { List <InlineKeyboardButton> ts = new List <InlineKeyboardButton>(); ts.Add(InlineKeyboardButton.WithUrl(photo.id, photo.urls.full)); ts.Add(InlineKeyboardButton.WithCallbackData("Add", photo.id + "※3")); inlineKeyboardList.Add(ts); } var inline = new InlineKeyboardMarkup(inlineKeyboardList); await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "________________________________________", replyMarkup : inline); break; } case "2": // search by category { FindUser findUser = new FindUser(); findUser.category = userRequest[0]; var json = JsonConvert.SerializeObject(findUser); var data = new StringContent(json, Encoding.UTF8, "application/json"); using var client = new HttpClient(); var content = await client.PostAsync("https://wallpaperapi.azurewebsites.net/api/Wallpaper/category", data); string result = content.Content.ReadAsStringAsync().Result; WallhavenResponse wallhaven = JsonConvert.DeserializeObject <WallhavenResponse>(result); if (result == "BAD") { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "Very bad"); break; } if (wallhaven.results.Count == null || wallhaven.results.Count == 0) { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "Very bad"); break; } List <List <InlineKeyboardButton> > inlineKeyboardList = new List <List <InlineKeyboardButton> >(); int a = 0; foreach (var photo in wallhaven.results) { List <InlineKeyboardButton> ts = new List <InlineKeyboardButton>(); ts.Add(InlineKeyboardButton.WithUrl(photo.id, photo.urls.full)); ts.Add(InlineKeyboardButton.WithCallbackData("Add", photo.id + "※3")); inlineKeyboardList.Add(ts); } var inline = new InlineKeyboardMarkup(inlineKeyboardList); await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "________________________________________", replyMarkup : inline); break; } case "3": //add to favourite { try { Console.WriteLine("Using DB"); FindUser findUser = new FindUser(); findUser.id = e.CallbackQuery.From.Id; findUser.photoId = userRequest[0]; var json = JsonConvert.SerializeObject(findUser); var data = new StringContent(json, Encoding.UTF8, "application/json"); using var client = new HttpClient(); var content = await client.PostAsync("https://wallpaperapi.azurewebsites.net/api/Wallpaper/addfavourite", data); string result = content.Content.ReadAsStringAsync().Result; await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, result); break; } catch { Console.WriteLine("Exeption"); break; } } case "4": //delete from favourite { try { Console.WriteLine("Using DB"); FindUser findUser = new FindUser(); findUser.id = e.CallbackQuery.From.Id; findUser.photoId = userRequest[0]; var json = JsonConvert.SerializeObject(findUser); var data = new StringContent(json, Encoding.UTF8, "application/json"); using var client = new HttpClient(); var content = await client.PutAsync("https://wallpaperapi.azurewebsites.net/api/Wallpaper/delfavourite", data); string result = content.Content.ReadAsStringAsync().Result; await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, result); break; } catch { Console.WriteLine("Exeption"); break; } } default: { Console.WriteLine("Doupe"); break; } } string name = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}"; Console.WriteLine($"{name} tap on {userRequest}"); }
private static void Bot_OnCallbackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { }
private static async void BotOnCallBackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { string buttonText = e.CallbackQuery.Data; string user_name = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.Id}"; Users_answer = buttonText; Console.WriteLine($"{user_name} нажал на кнопку {buttonText}"); try { if (buttonText == "Назад") { try { await Bot.DeleteMessageAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Message.MessageId - 1); await Bot.DeleteMessageAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Message.MessageId); } catch { } } else if (buttonText == "Добавить данные") { //await Bot.DeleteMessageAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Message.MessageId + 1); await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "Напишите через запятую ваши хобби (5 штук)"); //message_id = e.CallbackQuery.Message.MessageId; //string test = e.CallbackQuery.Message.Text; } else if (buttonText == "Изменить данные") { //try //{ // await Bot.DeleteMessageAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Message.MessageId + 1); //} //catch { } await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "Напишите новые запятую ваши хобби (5 штук)"); //message_id = e.CallbackQuery.Message.MessageId; } else if (buttonText == "Найти людей") { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "Начинаю поиск..."); //message_id = e.CallbackQuery.Message.MessageId; string answer_message = search_users(e.CallbackQuery.From.Id); //await Bot.DeleteMessageAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Message.MessageId + 1); await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, answer_message); } } catch (Exception ex) { Console.WriteLine(ex.Message); } //await Bot.SendTextMessageAsync(e.CallbackQuery.Id, $"{buttonText}"); }
public async void BotOnCallbackQueryReceived(object sender, CallbackQueryEventArgs callbackQueryEventArgs) { await _telegram.AnswerCallbackQueryAsync(callbackQueryEventArgs.CallbackQuery.Id, $"Received {callbackQueryEventArgs.CallbackQuery.Data}"); }
private static void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { throw new NotImplementedException(); }
private static async void BotOnCallBackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e) { string buttonText = e.CallbackQuery.Data; string name = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}"; Console.WriteLine($"{name} нажал кнопку {buttonText}"); if (buttonText == "Картинка") { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "https://pp.userapi.com/c850432/v850432120/bbcf/Ewn3iF2WE4c.jpg"); } else if (buttonText == "Видео") { await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "https://www.youtube.com/watch?v=PEKN8NtBDQ0"); } await Bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"Вы нажали кнопку {buttonText}"); }
private static async void BotOnCallbackQueryReceived(object sender, CallbackQueryEventArgs callbackQueryEventArgs) { await Bot.AnswerCallbackQueryAsync(callbackQueryEventArgs.CallbackQuery.Id, $"Received {callbackQueryEventArgs.CallbackQuery.Data}"); }