ShowStickersInGroup.cs 1.5 KB

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