Ejemplo n.º 1
0
        private static void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            try
            {
                Bot.HandleCallBackQuery(e.CallbackQuery).GetAwaiter().GetResult();
            }
            catch (Exception exception)
            {
                if (exception is MessageIsNotModifiedException)
                {
                    return;
                }

                if (exception is ApiRequestException)
                {
                    return;
                }

                if (exception is WrongPageException)
                {
                    Bot.AnswerCallbackQueryAsync(callbackQueryId: e.CallbackQuery.Id, exception.Message).GetAwaiter().GetResult();
                    return;
                }

                throw;
            }
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Обработчик телеграм кнопок
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var m = e.CallbackQuery;    //аргументы события

            //Если в списке городов есть совпадение с сообщением польозвателя
            if (wc.citiesCollection.Contains(m.Data))
            {
                w.Dispatcher.Invoke(new Action(async() =>
                {
                    //Получение погоду
                    weatherString = await WeatherClient.GetWeather(m.Data);
                    //Создание объекта
                    wc.ow       = JsonConvert.DeserializeObject <WeatherClient.OpenWeather>(weatherString);
                    var weather = wc.ow;
                    //Составление строки из данных объекта погоды для отправки
                    string weatherMessage =
                        $"City: {m.Data}\n" +
                        $"Temp: {weather.main.Temp.ToString("0.##")} ℃\n" +
                        $"{weather.weather[0].description}\n" +
                        $"Humidity: {weather.main.humidity.ToString()}\n" +
                        $"Pressure: {((int)weather.main.Pressure).ToString()}\n" +
                        $"WindSpeed: {weather.wind.speed.ToString()}\n" +
                        $"WindDeg: {weather.wind.deg.ToString()}";

                    await bot.SendTextMessageAsync(m.From.Id, weatherMessage);
                }));
            }
        }
Ejemplo n.º 3
0
        // просмотр списка компьютерных комплектующих заданной категории
        static async public void ListComputerParts(Telegram.Bot.Args.CallbackQueryEventArgs e, string viewParts)
        {
            bool check = false;

            string sql = "SELECT * FROM ComputerParts";

            SqlCommand    sqlCommand = new SqlCommand(sql, connection);
            SqlDataReader reader     = sqlCommand.ExecuteReader();

            while (reader.Read())
            {
                string product     = reader.GetString(1);
                string description = reader.GetString(2);
                double price       = reader.GetDouble(3);
                string producer    = reader.GetString(4);
                string photo       = reader.GetString(5);
                string link        = reader.GetString(6);

                if (product.Contains($"{viewParts}"))
                {
                    await Program.bot.SendPhotoAsync(e.CallbackQuery.Message.Chat.Id, photo : $"{photo}", caption : $"{product}\n\n<b>Описание товара: </b>{description}\n" +
                                                     $"<b>Цена: </b>{price}р.\n<b>Производитель: </b>{producer}\n<a href=\"{link}\">Подробнее</a>", Telegram.Bot.Types.Enums.ParseMode.Html);

                    check = true;
                }
            }
            if (!check)
            {
                await Program.bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, "❗ Данного товара нет в списках!\n");
            }

            await Program.bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, $"❕ Вы просмотрели весь список наличия товаров данной категории! Я могу вам помочь подобрать товар по вашей цене.", replyMarkup : (IReplyMarkup)FrettiBot.Program.ComputerPartsInlineKeyboard()); // меню

            reader.Close();
        }
Ejemplo n.º 4
0
        private async void BotClient_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs callbackQueryEventArgs)
        {
            CallbackQuery callbackQuery = callbackQueryEventArgs.CallbackQuery;

            if (await IsCanAnswer(callbackQuery.From, callbackQuery.Message))
            {
                await botClient.SendChatActionAsync(callbackQuery.Message.Chat.Id, ChatAction.Typing);

                await Task.Delay(500);

                string[] callbackData = callbackQuery.Data.Split('|');
                if (callbackData.Length > 1)
                {
                    Command command = commands.FirstOrDefault(c => c.Name == callbackData[0]);
                    if (command != null)
                    {
                        if (command.Callback != null)
                        {
                            await command.Callback.Execute(callbackQuery, botClient);
                        }
                    }
                    else
                    {
                        await botClient.SendTextMessageAsync(callbackQuery.Message.Chat.Id, "Unknown command").ConfigureAwait(false);
                    }
                }
            }
        }
Ejemplo n.º 5
0
        private static void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            long chatID = e.CallbackQuery.Message.Chat.Id;

            DatabaseContext db  = new DatabaseContext();
            Subscribers     sub = db.subscribers.Where(s => s.chatID == chatID).FirstOrDefault();

            if (sub == null)
            {
                sub               = new Subscribers();
                sub.chatID        = chatID;
                sub.wantsDlcInfo  = false;
                sub.wantsGameInfo = false;
                db.subscribers.Add(sub);
            }

            switch (e.CallbackQuery.Data)
            {
            case gameOnly:
                sub.wantsDlcInfo  = false;
                sub.wantsGameInfo = true;

                bot.SendTextMessageAsync(
                    chatId: chatID,
                    text: "Thank you, I will let you know when I find some free games!",
                    replyMarkup: new ReplyKeyboardRemove()
                    );

                SendFreeGameMessage(sub);
                break;

            case gameanddlc:
                sub.wantsDlcInfo  = true;
                sub.wantsGameInfo = true;

                bot.SendTextMessageAsync(
                    chatId: chatID,
                    text: "Thank you, I will let you know when I find some free games and dlcs!",
                    replyMarkup: new ReplyKeyboardRemove()
                    );

                SendFreeGameMessage(sub);
                break;

            case dlcsOnly:
                sub.wantsDlcInfo  = true;
                sub.wantsGameInfo = false;

                bot.SendTextMessageAsync(
                    chatId: chatID,
                    text: "Thank you, I will let you know when I find some free dlcs!",
                    replyMarkup: new ReplyKeyboardRemove()
                    );

                SendFreeGameMessage(sub);
                break;
            }

            db.SaveChanges();
        }
Ejemplo n.º 6
0
        /// <summary>
        /// Обработчик событий нажатия от пользователя
        /// </summary>
        /// <param name="sender">Объект отправивший сигнал</param>
        /// <param name="e">Событие отправки сигнала</param>
        private static async void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            string buttonText = e.CallbackQuery.Data;

            if (buttonText == menu["Story"])
            {
                // Выбран рассказ сказки
                Console.WriteLine($"Сказка для пользователя username: '******', имя: '{e.CallbackQuery.From.FirstName}', фамилия: {e.CallbackQuery.From.LastName}, идентификатор: '{e.CallbackQuery.From.Id}'");  // логирование

                await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, returnFairyTale(@"C:\SKILLBOX_STUDY\C#\HOMEWORK\9\TelegramBot\Data_Files\FairyTales.json"));
            }

            if (buttonText == menu["Sities"])
            {
                // Выбрана игра в города
                string answerText = "<b>ГОРОДА.</b>\n" +
                                    "<i>В игре учавствуют названия городов, состоящие из одного слова и не включающие в себя знак '-'.\n" +
                                    "Каждый игрок по очереди пишет название города, начинающееся с той буквы на которую заканчивалось название предыдущего города." +
                                    "Проигрывает тот, кто напишет 'конец'.</i>";

                await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, answerText, parseMode : ParseMode.Html);

                await Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, "Теперь можешь назвать город.");

                long chatId = e.CallbackQuery.Message.Chat.Id;

                List <string> copyCities = new List <string>();
                copyCities.AddRange(cities);                                                                                                                                                                                          // делаем копию списка городов, чтобы источник не менялся

                Console.WriteLine($"Играет пользователь username: '******', имя: '{e.CallbackQuery.From.FirstName}', фамилия: {e.CallbackQuery.From.LastName}, идентификатор: '{e.CallbackQuery.From.Id}'"); // логирование

                games.addGame(new CitiesGame(chatId, copyCities));                                                                                                                                                                    // добавляет новую игру в города с ботом
            }
        }
Ejemplo n.º 7
0
        private void _TBC_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var chat = e.CallbackQuery?.Message?.Chat;
            var user = e.CallbackQuery?.From;
            var data = e.CallbackQuery?.Data;

            if (chat == null || user == null || user.IsBot != false || data.IsNullOrEmpty())
            {
                return;
            }

            var options = EnumEx.ToStringArray <OptionKeys>();

            var args = data.Split(" ");

            if (!options.Any(x => x == args[0]))
            {
                return; //no options found
            }
            _logger.Log($"[info] => Chat: @{chat.Username ?? "undefined"}:{chat.Id.ToString()} => User: @{user.Username ?? "undefined"}:{user.Id.ToString()} => Callback ({e.CallbackQuery.Id}): '{data}'");

            _ssCbqLocker.Lock(() =>
            {
                _callbacks.Add(e.CallbackQuery);
            });
        }
Ejemplo n.º 8
0
        private async void OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            try
            {
                IQueryData queryData = _queryDataSerializer.DecodeBase64(e.CallbackQuery.Data);
                Group      group     = await _groupService.GetByChatTokenAsync(queryData.ChatToken);

                Customer[] customers = await _customerService.GetListAsync(group.Id);

                // Собираем всю информацию о пользователе и сообщении.
                UserMessageInfo userMessageInfo = new UserMessageInfo
                {
                    Group       = group,
                    Customers   = customers,
                    UserName    = e.CallbackQuery.From.Username,
                    UserToken   = e.CallbackQuery.From.Id.ToString(),
                    MessageType = Models.MessageType.Query,
                    Message     = new MessageInfo
                    {
                        Token     = e.CallbackQuery.Message.MessageId.ToString(),
                        Text      = e.CallbackQuery.Message.Text,
                        QueryData = queryData
                    }
                };

                OnMessage?.Invoke(this, userMessageInfo);
            }
            catch (Exception ex)
            {
                _logger.Error($"{GetType().Name}: Произошла ошибка во время обработки query запроса ", ex);
            }
        }
Ejemplo n.º 9
0
        private static void TBot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var tBot   = sender as TelegramBotClient;
            var ourBot = Bots[tBot];

            ourBot.Scheme.Next(e);
        }
        private async void _telegramBotClient_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            await _telegramBotClient.SendChatActionAsync(e.CallbackQuery.Message.Chat.Id, ChatAction.Typing);

            var level = int.Parse(e.CallbackQuery.Data);

            await SendStartingMessage(e.CallbackQuery.Message);

            var story = await _storyRepository.GetAnyStoryAsync(level);

            if (story == null)
            {
                await _telegramBotClient.SendChatActionAsync(e.CallbackQuery.Message.Chat.Id, ChatAction.Typing);

                await _telegramBotClient.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, $"Ops! We are so sorry. 😿 We don't have A1 level story.");

                return;
            }

            await SendImageWhenExists(e.CallbackQuery.Message, story);

            await SendStoryInformation(e.CallbackQuery.Message, story);

            await SendStoryContent(e.CallbackQuery.Message, story);

            await SendSoundWhenExists(e.CallbackQuery.Message, story);

            await _telegramBotClient.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, $"Don't be a stranger! 💖");
        }
Ejemplo n.º 11
0
 private async void Client_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     if (answer.DeleteQuestion(e.CallbackQuery.Data).Result)
     {
         await messageService.DeleteMessage(client, e.CallbackQuery.Message.Chat, e.CallbackQuery.Message.MessageId);
     }
 }
Ejemplo n.º 12
0
        // просмотр производителей данного товара
        static public async void ProducerComputerParts(Telegram.Bot.Args.CallbackQueryEventArgs e, string viewParts, string productName)
        {
            bool check = false;

            string sql = "SELECT * FROM ComputerParts";

            SqlCommand    sqlCommand = new SqlCommand(sql, connection);
            SqlDataReader reader     = sqlCommand.ExecuteReader();

            while (reader.Read())
            {
                string product     = reader.GetString(1);
                string description = reader.GetString(2);
                double price       = reader.GetDouble(3);
                string producer    = reader.GetString(4);
                string photo       = reader.GetString(5);
                string link        = reader.GetString(6);

                if (producer == $"{viewParts}" && product.Contains($"{productName}") == true)
                {
                    await FrettiBot.Program.bot.SendPhotoAsync(e.CallbackQuery.Message.Chat.Id, photo : $"{photo}", caption : $"{product}\n\n<b>Описание товара: </b>{description}\n" +
                                                               $"<b>Цена: </b>{price} р.\n<b>Производитель: </b>{producer}\n<a href=\"{link}\">Подробнее</a>", parseMode : Telegram.Bot.Types.Enums.ParseMode.Html);

                    check = true;
                }
            }
            if (!check)
            {
                await FrettiBot.Program.bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, "❗ Такого производителя для данного товара нет в базе данных", replyMarkup : (IReplyMarkup)FrettiBot.Program.ComputerPartsInlineKeyboard());
            }
            await FrettiBot.Program.bot.SendTextMessageAsync(e.CallbackQuery.Message.Chat.Id, $"❕ Вы только что просмотрели производителей, может вам что-то понравилось? Можете нажать на *Подробнее* и изучить более детально," +
                                                             " а если нет, то мы всегда можем продолжить!", Telegram.Bot.Types.Enums.ParseMode.Markdown, replyMarkup : (IReplyMarkup)FrettiBot.Program.ComputerPartsInlineKeyboard());

            reader.Close();
        }
Ejemplo n.º 13
0
        private static async void OnCallbackQueryReceived(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            string data         = e.CallbackQuery.Data;
            int    chatId       = e.CallbackQuery.From.Id;
            Event  currentEvent = eventsInProccess[chatId];

            if (Status == Status.WantToAdd)
            {
                if (Months.Any(o => string.Equals(o.Name, data, StringComparison.OrdinalIgnoreCase)))
                {
                    Month month = Months.First(o => string.Equals(o.Name, data, StringComparison.OrdinalIgnoreCase));
                    currentEvent.Month = month;
                    Status             = Status.MonthSelected;
                    await BotClient.DeleteMessageAsync(chatId, e.CallbackQuery.Message.MessageId);

                    await BotClient.SendTextMessageAsync(chatId, $"Окей. Месяц - {month.Name}. Теперь выберите число:", replyMarkup : Keyboards.Days(month));
                }
            }
            else if (Status == Status.MonthSelected)
            {
                currentEvent.Day = Int32.Parse(data);
                Status           = Status.DaySelected;
                await BotClient.DeleteMessageAsync(chatId, e.CallbackQuery.Message.MessageId);

                await BotClient.SendTextMessageAsync(chatId, $"Отлично, {currentEvent.Month.Name} {currentEvent.Day}. Теперь напишите название события:");

                //eventsInProccess[chatId] = currentEvent;
            }
        }
Ejemplo n.º 14
0
        static async void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var buttonName = e.CallbackQuery.Data;
            var name       = $"{e.CallbackQuery.From.FirstName} {e.CallbackQuery.From.LastName}";

            Console.WriteLine($"{name} press on {buttonName}");
            await Bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, "Hey!");
        }
Ejemplo n.º 15
0
        private static async void bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var    callbackQuery = e.CallbackQuery;
            string messageBody   = callbackQuery.Data;
            var    chatId        = callbackQuery.Message.Chat.Id;

            await bot.SendTextMessageAsync(chatId, messageBody);
        }
Ejemplo n.º 16
0
        private void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            Message m = e.CallbackQuery.Message;

            m.Text = e.CallbackQuery.Data;

            saveLogAndHandleMessage(m);
        }
Ejemplo n.º 17
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.FirstName}";

            Console.WriteLine($"{name} нажал кнопку {buttonText}");

            await Bot.AnswerCallbackQueryAsync(e.CallbackQuery.Id, $"вы нажали кнопку {buttonText}");
        }
Ejemplo n.º 18
0
 private void OnCallbackQuery(Object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     //--- Обработчик команд.
     if (commands.Any(p => p.Equals(e.CallbackQuery.Data)))
     {
         ICommand command = commands.FirstOrDefault(p => p.Equals(e.CallbackQuery.Data));
         command.Execute(BotClient, e.CallbackQuery);
     }
 }
Ejemplo n.º 19
0
        static void TemperatureI(Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var   message = e.CallbackQuery.Data;
            float i       = 0;

            switch (message)
            {
            case "-5": i = 1.29f;
                SendCurrent(i, e);
                break;

            case "0": i = 1.24f;
                SendCurrent(i, e);
                break;

            case "+5": i = 1.20f;
                SendCurrent(i, e);
                break;

            case "+10": i = 1.15f;
                SendCurrent(i, e);
                break;

            case "+15": i = 1.11f;
                SendCurrent(i, e);
                break;

            case "+20": i = 1.05f;
                SendCurrent(i, e);
                break;

            case "+25": i = 1.00f;
                SendCurrent(i, e);
                break;

            case "+30": i = 0.94f;
                SendCurrent(i, e);
                break;

            case "+35": i = 0.88f;
                SendCurrent(i, e);
                break;

            case "+40": i = 0.81f;
                SendCurrent(i, e);
                break;

            case "+45": i = 0.74f;
                SendCurrent(i, e);
                break;

            case "+50": i = 0.67f;
                SendCurrent(i, e);
                break;
            }
        }
Ejemplo n.º 20
0
        private void CallBack(System.Object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            if (commands.Any(c => c.Equals(e.CallbackQuery.Data)))                               // проверка есть ли команда в списке
            {
                ICommand Command = commands.FirstOrDefault(c => c.Equals(e.CallbackQuery.Data)); // вытягиваем класс
                Command.Execute(BotClient, e.CallbackQuery, pairs, baseContext);
            }
            else if (calendars.Any(c => c.Equals(e.CallbackQuery.Data)))
            {
                if (!keyValues.Any(c => c.Key == e.CallbackQuery.From.Id) || keyValues.Count == 0)
                {
                    keyValues.Add(e.CallbackQuery.From.Id, new Calendar());
                }

                ICalendar Command = calendars.FirstOrDefault(c => c.Equals(e.CallbackQuery.Data));                 // вытягиваем класс
                if (Command.Name == "BackToStart" || Command.Name == "BackToCalendar" ||
                    Command.Name == "Calendar" || Command.Name == "<" ||
                    Command.Name == ">")
                {
                    Command.Execute(BotClient, e.CallbackQuery, keyValues, baseContext);
                }
                else
                {
                    Command.Execute(BotClient, e.CallbackQuery, eventCals, baseContext);
                }
            }
            else if (commandSettings.Any(c => c.Equals(e.CallbackQuery.Data)))
            {
                ICommandSettings ISettings = commandSettings.FirstOrDefault(c => c.Equals(e.CallbackQuery.Data));
                ISettings.Execute(BotClient, e.CallbackQuery, iSettings, baseContext);
            }
            else if (commandiOrganizer.Any(c => c.Equals(e.CallbackQuery.Data)))
            {
                IOrganizer iTOrganizer = commandiOrganizer.FirstOrDefault(c => c.Equals(e.CallbackQuery.Data));
                iTOrganizer.Execute(BotClient, e.CallbackQuery, iOrganizer, baseContext);
            }
            else
            {
                User users = baseContext._User.Where(p => p.ID == e.CallbackQuery.From.Id).FirstOrDefault();
                if (users.Work / 100 <= 22)
                {
                    ChouseItem chouseItem = new ChouseItem();
                    chouseItem.Execute(BotClient, e.CallbackQuery, pairs, baseContext);
                }
                else if (users.Work / 100 == 30)
                {
                    ChouseData chouseData = new ChouseData();
                    chouseData.Execute(BotClient, e.CallbackQuery, baseContext);
                }
                else if (users.Work % 100 >= 26 && users.Work % 100 <= 28)
                {
                    ShowItemCalndar showItemCalnder = new ShowItemCalndar();
                    showItemCalnder.Execute(BotClient, e.CallbackQuery, eventCals, baseContext);
                }
            }
        }
Ejemplo n.º 21
0
        private async void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            if (bShouldIgnore)
            {
                bShouldIgnore = false;
                return;
            }

            var callback = e.CallbackQuery;
            await bot.AnswerCallbackQueryAsync(callback.Id);

            if (OfferDispatcher.GetSearch(callback.Data) is SearchBase search)
            {
                var sent = await bot.SendTextMessageAsync(callback.Message.Chat.Id, "Please wait, processing...");

                Offers = search.GetLoaded()
                         .Where(x => x.Space > 15)
                         .Distinct()
                         .OrderBy(x => x.Price)
                         .ThenByDescending(x => x.Space)
                         .ToList() // Force load
                ;
                CurrentOffer = Offers.First();
                await bot.DeleteMessageAsync(sent.Chat.Id, sent.MessageId);

                SetOffer(callback.Message);
            }
            else if (callback.Data == "NextOffer")
            {
                Offers       = Offers.Skip(1);
                CurrentOffer = Offers.FirstOrDefault();
                if (CurrentOffer is null)
                {
                    await bot.EditMessageTextAsync(callback.Message.Chat.Id, callback.Message.MessageId, "Hot damn, you just ran out of searches...");
                }
                else
                {
                    SetOffer(callback.Message);
                }
            }
            else if (callback.Data == "MapDist")
            {
                if (!(CurrentOffer is null || CurrentOffer.Location is null))
                {
                    if (CurrentOffer.Location.GetData() is MapLocation.DistanceInfo info)
                    {
                        await bot.SendTextMessageAsync(callback.Message.Chat.Id, $"Distance: {info.Distance}\nDuration: {info.Duration}");
                    }
                }
            }
            else if (callback.Data == "SaveOffer" && !(CurrentOffer is null))
            {
                var path = Path.Combine(Program.GetDirectory(), "saved.log");
                File.AppendAllText(path, CurrentOffer.Url.ToString() + Environment.NewLine);
            }
        }
Ejemplo n.º 22
0
        private async void BotClient_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var messageID = e.CallbackQuery.Message.MessageId;

            if (_callbackActions.ContainsKey(messageID))
            {
                await _callbackActions[messageID](e.CallbackQuery);
                _callbackActions.Remove(messageID);
            }
        }
Ejemplo n.º 23
0
 private async void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     if (_tweetUsers.ContainsKey(e.CallbackQuery.From.Id))
     {
         var user = _tweetUsers[e.CallbackQuery.From.Id];
         await
         ProccessUserCommand(e.CallbackQuery.Data, user,
                             messageId : e.CallbackQuery.Message.MessageId);
     }
 }
Ejemplo n.º 24
0
 private static void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     try
     {
     }
     catch (Exception ex)
     {
         StaticUtils.Logger.Error("{0} {1}", ex.Message, ex.StackTrace);
     }
 }
Ejemplo n.º 25
0
 private void TelegramService_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     try
     {
     }
     catch (Exception ex)
     {
         Console.WriteLine(ex.Message);
     }
 }
Ejemplo n.º 26
0
        private void Bot_OnCallBack(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            string operation = e.CallbackQuery.Data.ToString().Substring(0, 6);
            string value     = e.CallbackQuery.Data.ToString().Substring(7);
            string text;

            Telegram.Bot.Types.InputFiles.InputOnlineFile photo;
            switch (operation)
            {
            case "info_s":
                var species = _context.Species.Where(s => s.Name == value).FirstOrDefault();
                text = "Назва породи: " + species.Name + "\n" + "Середня тривалість життя: " + species.Lifetime.ToString() + "\n"
                       + "Розмір: " + species.Size.ToString() + " \n" + "Шерсть: " + species.Wool + "\n" + "Країна: " + species.Country;
                try
                {
                    var imageFileS = System.IO.File.Open("C:/Users/Asus/source/repos/Cats/Web_Lab1_Cats/wwwroot/img/" + species.Photo, FileMode.Open);
                    photo = new Telegram.Bot.Types.InputFiles.InputOnlineFile(imageFileS);
                    Bot.SendPhotoAsync(e.CallbackQuery.From.Id, photo,
                                       caption: text).GetAwaiter().GetResult();
                    imageFileS.Close();
                }
                catch
                {
                    Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, text);
                }
                break;

            case "info_c":

                var    cats = _context.Cats.Where(a => a.Name == value).FirstOrDefault();
                string info = cats.Info;        //.Substring(0, 200);
                text = "Ім'я котика: " + cats.Name + "\n" + "Вік: " + cats.Age.ToString() + "\n" + "Порода: " + cats.Species.Name + "\n"
                       + "Опис: " + info;
                try
                {
                    // Console.WriteLine("/home/vasmax10/Документи/WebLab1ver2/WebLab1ver2/wwwroot" + actors.Photo);
                    var imageFileC = System.IO.File.Open("C:/Users/Asus/source/repos/Cats/Web_Lab1_Cats/wwwroot/img/" + cats.Photo, FileMode.Open);

                    photo = new Telegram.Bot.Types.InputFiles.InputOnlineFile(imageFileC);
                    Bot.SendPhotoAsync(e.CallbackQuery.From.Id, photo).GetAwaiter().GetResult();
                    Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, text);
                    imageFileC.Close();
                }
                catch
                {
                    Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, text);
                }
                break;

            default:
                Bot.SendTextMessageAsync(e.CallbackQuery.From.Id, e.CallbackQuery.Data + "\n" +
                                         "У мене лапки. Я не розумію. Спробуй /info");
                break;
            }
        }
 private async void TelegramClient_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     try
     {
         var ar = new MessageResult(e);
         ar.Client = this;
         OnAction(ar);
     }
     catch
     {
     }
 }
Ejemplo n.º 28
0
        private static void Client_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            //TODO: use reflection to build callback commands
            var args = e.CallbackQuery.Data.Split('|');

            switch (args[0])
            {
            case "events":
                Helpers.SwitchEvent(e.CallbackQuery);
                break;
            }
        }
Ejemplo n.º 29
0
        // добавление отзыва для суперадмина
        static public void AddRating(Telegram.Bot.Args.CallbackQueryEventArgs e)
        {
            var    args      = e.CallbackQuery;
            long   messageId = args.Message.MessageId + 2;
            string text      = args.Data;

            var sql = @"INSERT INTO Owner (MessageId, Text)" +
                      $"VALUES({messageId}, N'{text}')";

            SqlCommand sqlCommand = new SqlCommand(sql, connection);

            sqlCommand.ExecuteNonQuery();
        }
Ejemplo n.º 30
0
 private static async void Bot_OnCallbackQuery(object sender, Telegram.Bot.Args.CallbackQueryEventArgs e)
 {
     // chaton 1488228
     if (e.CallbackQuery.Data.Split(' ').First() == "chaton")
     {
         Pizdezh = true;
         person  = long.Parse(e.CallbackQuery.Data.Split(' ').Last());
     }
     else if (e.CallbackQuery.Data.Split(' ').First() == "chatoff")
     {
         _ = await bot.SendTextMessageAsync(long.Parse(e.CallbackQuery.Data.Split(' ').Last()), "Выход");
     }
 }