ShowStickersInGroup.cs 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System.Threading.Tasks;
  2. using CardCollector.Controllers;
  3. using CardCollector.DataBase.Entity;
  4. using CardCollector.Resources;
  5. using Telegram.Bot.Types;
  6. namespace CardCollector.Commands.InlineQuery
  7. {
  8. /* Отображение стикеров в чатах, кроме личной беседы с ботом */
  9. public class ShowStickersInGroup : InlineQuery
  10. {
  11. /* Команда - пустая строка, поскольку пользователь может вводить любые слова
  12. после @имя_бота, введенная фраза будет использоваться для фильтрации стикеров */
  13. protected override string CommandText => "";
  14. public override async Task Execute()
  15. {
  16. // Фильтр - введенная пользователем фраза
  17. var filter = Update.InlineQuery!.Query;
  18. // Получаем список стикеров
  19. var stickersList = await User.GetStickersList(filter);
  20. var results = stickersList.ToTelegramResults(Command.send_sticker, false);
  21. // Посылаем пользователю ответ на его запрос
  22. await MessageController.AnswerInlineQuery(InlineQueryId, results);
  23. }
  24. /* Команда пользователя удовлетворяет условию, если она вызвана
  25. в беседе/канале */
  26. protected internal override bool IsMatches(string command)
  27. {
  28. return command.Contains("Group") || command.Contains("Supergroup");
  29. }
  30. public ShowStickersInGroup() { }
  31. public ShowStickersInGroup(UserEntity user, Update update) : base(user, update) { }
  32. }
  33. }