Esempio n. 1
1
        // Этот метод вызывается при вызове, например,
        // 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}");
        }
Esempio n. 2
0
        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);
            }
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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}'");
        }
Esempio n. 5
0
        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}");
        }
Esempio n. 6
0
        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");
        }
Esempio n. 7
0
 private static void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     if (api.IsDownload)
     {
         SendFile(e);
     }
     else
     {
         NewDirOnCallbackQuery(e);
     }
 }
Esempio n. 8
0
        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);
            }
        }
Esempio n. 9
0
        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
            { }
        }
Esempio n. 10
0
        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}");
        }
Esempio n. 11
0
        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}");
        }
Esempio n. 12
0
 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();
     }
 }
Esempio n. 13
0
        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);
                }
            }
        }
Esempio n. 14
0
        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) { }
        }
Esempio n. 15
0
        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);
                };
            }
        }
Esempio n. 16
0
 public static void CallbackReceived(object sender, CallbackQueryEventArgs e)
 {
     new Task(() => { HandleCallback(e.CallbackQuery); }).Start();
 }
Esempio n. 17
0
        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)
                {

                }
            }
        }
Esempio n. 18
0
 private static void BotOnCallbackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     string buttonText = e.CallbackQuery.Data;
     // string name = $"{e.CallbackQuery.From.f}"
 }
Esempio n. 19
0
 private static void BotOnCallbackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     buttonText = e.CallbackQuery.Data;
 }
Esempio n. 20
0
        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)
 {
 }
Esempio n. 22
0
        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}");
        }
Esempio n. 23
0
 public async void BotOnCallbackQueryReceived(object sender, CallbackQueryEventArgs callbackQueryEventArgs)
 {
     await _telegram.AnswerCallbackQueryAsync(callbackQueryEventArgs.CallbackQuery.Id, $"Received {callbackQueryEventArgs.CallbackQuery.Data}");
 }
Esempio n. 24
0
 private static void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     throw new NotImplementedException();
 }
Esempio n. 25
-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 == "Картинка")
            {
                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}");
        }
Esempio n. 26
-1
 private static async void BotOnCallbackQueryReceived(object sender, CallbackQueryEventArgs callbackQueryEventArgs)
 {
     await Bot.AnswerCallbackQueryAsync(callbackQueryEventArgs.CallbackQuery.Id,
         $"Received {callbackQueryEventArgs.CallbackQuery.Data}");
 }