aiogram 3 - Telegram бот на python #4 Магические фильтры, Кастомные фильтры, фильтрация сообщений

Поделиться
HTML-код
  • Опубликовано: 26 ноя 2024

Комментарии • 124

  • @nohtyp_gniyduts838
    @nohtyp_gniyduts838 8 месяцев назад +7

    Отлично, что есть отсыл к документации. Вы учите не только писать ботов, но и работать с ней: что очень ценно и интересно.

  • @zh4kk
    @zh4kk 10 месяцев назад +22

    Это действительно первый плейлист, видео которого я чекаю каждый день)

  • @Евгений-т3ц9к
    @Евгений-т3ц9к 10 месяцев назад +12

    Каждый день захожу, в надежде увидеть новый видос! Автор красава! Подача материала просто супер! Хочется продолжение и как можно больше!)

  • @МійСайт
    @МійСайт 10 дней назад

    Ждем с нетерпеньем Ваших обучающих видео уроков

  • @nnowi
    @nnowi 6 месяцев назад +3

    На самом деле это лучшее что я смотрел, и так классно донес и показал, без заумных слов. До этого я смотрел много видео по айограму и питону, но твои уроки реально помогли. Я запутывался в хэндлерах, а сейчас смотря документацию, получается то что задумывал)) От души спасибо!

    • @CoinsDealer
      @CoinsDealer 6 месяцев назад

      действительно круто!

  • @МійСайт
    @МійСайт 10 дней назад

    Просто СУПЕРРРР!!!!! Огромное спасибо, хоть мне уже и не 18 как молодому программисту но очень многое из сказанного я понял без труда. СПАСИБО!

  • @RoboTron_Channel
    @RoboTron_Channel 10 месяцев назад +8

    Хорошая и качественная подача материала. С нетерпением ждем продолжения!

  • @shemyatin_konstantin
    @shemyatin_konstantin 10 месяцев назад +5

    Автор, спасибо. Подача материала, как всегда на высоте!
    Ждем продолжение!

  • @voodoo879
    @voodoo879 9 месяцев назад +1

    Превосходно подан материал! Благодарю за качественный контент, всё разжевали и положили, нужно только проглотить 👍

  • @sutusa
    @sutusa 10 месяцев назад +4

    Спасибо за понятное объяснение, жду продолжение

  • @АндрейЛосюк
    @АндрейЛосюк 4 месяца назад

    Спасибо большое за этот замечательные курсы ! Понятно объясняете !!! 👍👍👍

  • @ig141
    @ig141 10 месяцев назад +4

    Спасибо,очень познавательно
    Я редко когда пишу комментарии
    Благодарю вас

  • @glebgurzhiy1055
    @glebgurzhiy1055 10 месяцев назад

    чувак,спасибо тебе огромное ты лучший я не видел чтоб кто-то объяснял так же понятно что-то как ты

  • @vladimirIvanov-ut9fo
    @vladimirIvanov-ut9fo 9 месяцев назад

    Отдельная благодарность за тайм-коды ко всем видео!

  • @Great_Ave
    @Great_Ave 9 месяцев назад +1

    Спасибо большое за труд! Вы очень круто объясняете.

  • @dims2688
    @dims2688 8 месяцев назад

    ты делаешь просто офигенные вещи, продолжай в том же духе!!!
    подписка однозначно

  • @user-fq5lr4mb8j
    @user-fq5lr4mb8j 7 месяцев назад

    Мужик, ты реально крут. Хорошо объясняешь. Спасибо тебе большое

  • @Jon_Britva
    @Jon_Britva 6 месяцев назад

    18:24 - Вот что мне надо было)) спасибашки огромные

  • @alsoduos
    @alsoduos 10 месяцев назад +2

    С каждым уроком всё интереснее и интереснее! Огромнейшее Вам спасибо!
    Подскажите, пожалуйста, Вы пользуетесь Telegram Desktop или через какой-то эмулятор? Выглядит, как экран смартфона

    • @PythonHubStudio
      @PythonHubStudio  10 месяцев назад +2

      Десктоп, просто потяните за край окна и измените соотношение сторон

    • @alsoduos
      @alsoduos 10 месяцев назад

      @@PythonHubStudio Спасибо Вам большое за ответ!

  • @ivanom1076
    @ivanom1076 3 месяца назад

    Автор, красавец ✊🏻
    Подписан и даже ютуб уже канал в авторитеты назначил 😎
    Подробно всё объясняет, конечно есть нюансы с обновлениями, но иногда чатgpt подсказывает каких методов в aiogram нет 😎
    Большое спасибо 🙏🏻

  • @AngelA-jx6vf
    @AngelA-jx6vf 10 месяцев назад +1

    Лайк❤❤❤❤и большое -большое огромное 🎉🎉🎉

  • @photo_graf_khv
    @photo_graf_khv 6 месяцев назад

    Отличная инфа! Спасибо тебе!

  • @ВладСкопен
    @ВладСкопен 7 месяцев назад

    C кнопками супер, контент подьехал

  • @belford123
    @belford123 10 месяцев назад +1

    спасибо автор большое! с меня лайк и подписка!

  • @ВладиславГлуховский
    @ВладиславГлуховский 7 месяцев назад +1

    Вы очень круто все рассказываете и показываете! С таким подходом, даже при обновлении библиотеки можно будет использовать ваш плейлист как рекомендацию по освоению навыка написания ботов! Огромное спасибо! Идем дальше!

    • @PythonHubStudio
      @PythonHubStudio  7 месяцев назад +1

      👍, так и задумано было, как новый формат видео, чтоб Вы научились не просто повторять, а и использовать документацию!

  • @konstantinvoylokov2398
    @konstantinvoylokov2398 9 месяцев назад

    все классно и понятно=) Спасибо!

  • @sheospace
    @sheospace 9 месяцев назад +1

    У меня, как по папкам разложили, неизменно выдает ошибку в основном файле
    in from handlers.user_private import user_private_router
    и в user_private.py
    in from filters.chat_types import ChatTypeFilter ModuleNotFoundError: No module named 'filters.chat_types'

    • @PythonHubStudio
      @PythonHubStudio  9 месяцев назад

      Запускается не тот файл, нужно запускать app.py

  • @ВладиславРуденкоІН-03
    @ВладиславРуденкоІН-03 10 месяцев назад +1

    Куда делся курс по созданию бота для пиццерии на aiogram 2? Понимаю что он уже не очень актуален, но хотелось бы пересмотреть

  • @MILAshka666
    @MILAshka666 7 месяцев назад +2

    подскажите пожалуйста, я код переписывал, он ошибки не выдает, но почему то код не видит set_my_commands

  • @ArtemNerin
    @ArtemNerin 10 месяцев назад +3

    Спасибо за внимание к мелочам!
    drop_pending_updates=True - очень полезно!
    А как организовать когда Бот появился в онлайн чтобы он маякнул одним сообщением всем кто писал запросы что я уже Онлайн и доступен ?

    • @РусланТитаренко-ф6я
      @РусланТитаренко-ф6я 3 месяца назад

      интересный вопрос. Думаю в этом случае необходимо как раз таки await bot.delete_webhook(drop_pending_updates=True) обработать другим методом. Написать эту строку таким образом, что бы ответ на вебхук был один для всех, внезависимости от самого запроса и игнор всех последующих запросов от тех же юзеров. Но опять же, думаю, что именно этого и избегают разработчики удаля вебхук.

  • @alexandr_segeda
    @alexandr_segeda 9 месяцев назад

    И конечно бы еще хотелось обновленного курса по питону увидеть, по самым важным и актуальным моментам, которые используются при работе - я в основном занимаюсь чат ботами (но на конструкторах), а хотелось бы больше окунуться в питон с аиограмом

    • @PythonHubStudio
      @PythonHubStudio  9 месяцев назад +1

      В курсе по python ничего особенного не изменилось, он до сих пор актуален (и на канале есть видео и по ООП , и по парсингу). Погружение в aiogram, легко - следуйте этому курсу и что самое главное - смотрите и читайте документацию, пробуйте, тестируйте, это будет максимальный плюс к содержимому видео!!!

    • @alexandr_segeda
      @alexandr_segeda 9 месяцев назад

      @@PythonHubStudio я так и делаю, спасибо

  • @GRECHKA230
    @GRECHKA230 10 месяцев назад +1

    Как думаете, python больше подходит для выполнения заказов на фрилансе или для работы в компании? Хотелось бы узнать ваше мнение.

    • @PythonHubStudio
      @PythonHubStudio  10 месяцев назад +4

      Мое мнение на эту тему: см. видео на моем канале "что реально пишут на python и какой roadmap". Потому что ваш вопрос поставлен странно... С чем сравнивать? Но отвечу так: для фриланса - лучше всех, для работы в компании - зависит от сферы деятельности этой компании - см. то видео.

  • @АндрейСудаков-с1х
    @АндрейСудаков-с1х 9 месяцев назад

    спасибо! полезно

  • @РусланТитаренко-ф6я
    @РусланТитаренко-ф6я 3 месяца назад

    шото не запускалось 2 месяца назад, и вот, спустя 3 курса по питону и джанго все магическим образом заработало XD (джанго месяц учился тем временем в pycharm)

  • @erkanat_iman
    @erkanat_iman 10 месяцев назад

    Спасибо, думаю можно его к какому нибудь онлаин сервису (API) прикрутить , чтобы самому список не заполнять запрещенные слова

  • @belford123
    @belford123 10 месяцев назад +1

    Кстати мастер, будет ли в конце что-то про деплоймент?

  • @Vladimir_F609
    @Vladimir_F609 10 месяцев назад

    Приветствую, дорогой автор! Спасибо огромное за крутые видосы! Возник вопрос: В функции main, в переменной - ALLOWED_MESSAGE, указаны типы - message и edited_message. Тогда почему handler с магическим фильтром F.photo срабатывает? Или тип фото тоже относится к типу message?

    • @PythonHubStudio
      @PythonHubStudio  10 месяцев назад +2

      Как говорилось, сообщение (message) это не только текст, а все что пользователь отправил в чат: text, photo, audio, video, sticker, animation и тд. Это все message

  • @gingerbreaddy
    @gingerbreaddy 10 месяцев назад +1

    aiogram обновился до версии 3.4.0. Теперь немного другой код в документации в кастомных фильтрах

    • @PythonHubStudio
      @PythonHubStudio  9 месяцев назад

      Глянул, вроде тот-же..

    • @PythonHubStudio
      @PythonHubStudio  9 месяцев назад

      Новой версии на данный момент вообще не было (самая последняя для установки на данный момент 3.3.0, хотя даже на странице с документацией указана 3.4.0, но тем не менее, такое менять никто не будет даже в следующих контрибуциях), и нового там ничего не заметил после просмотра. См. свой код или для сравнения есть работающий код с гитхаба из этого видео.

  • @alexandr_segeda
    @alexandr_segeda 9 месяцев назад

    Очень крутой урок, спасибо. Правда, не до конца разобрался как правильно работать с фильтрами - то откуда берется group, supergroup). И все таки хотелось бы разобраться - если я захочу реализовать свой функционал бота, а я не до конца разобрался и понял как работать с билиотекой, то что посоветуете? Например, как делать теги чтобы потом по тегам делать рассылки и как вообще делать в питоне с библиотекой рассылки, постинги и так далее...много вопросов))

    • @PythonHubStudio
      @PythonHubStudio  9 месяцев назад

      Тип чата есть в любом событии. private, group, supergroup... Это строки, и такие же строки мы передаём в фильтр для проверки сравнения строк из события с ними

  • @AndBul
    @AndBul 10 месяцев назад

    огонь

  • @iiiiii7171
    @iiiiii7171 4 месяца назад

    Здравствуйте! Подскажите, пожалуйста, а есть где-нибудь видео о том, как парсить в тг бог информацию из тг каналов. Не информацию о участниках групп, а именно сводку по постам определенного набора групп

  • @Python-i2z
    @Python-i2z 5 месяцев назад

    Здравствуйте, очень полезное видео, спасибо, но есть вопрос почему просто не использовать условия вместо F ?

    • @PythonHubStudio
      @PythonHubStudio  5 месяцев назад

      F и другие фильтры работают до кода самого хендлера, а если событие попало в хендлер, то другие хендлеры его уже смотреть не будут.

    • @Python-i2z
      @Python-i2z 5 месяцев назад

      @@PythonHubStudio все спасибо, пересмотрел видео а там есть объяснение, спасибо за фидбэк

  • @CryT0R
    @CryT0R 9 месяцев назад +1

    core telegram у тебя в темной теме.. С помощью чего реализовано?

    • @PythonHubStudio
      @PythonHubStudio  9 месяцев назад +1

      В браузере где не вводятся конфиденциальные данные расширение (не помню как называется, что-то вроде dark и что-то с чтением))) (у расширения есть доступ к чтению всего содержимого страницы). Хотя странно что на портале для разработчиков не темной темы сайта...

  • @old_time144
    @old_time144 4 месяца назад

    Интересное видео, но у меня почему-то не работает фильтр F, вроде все сделал, как на видео, но сообщение не отправляется

  • @ciklomat
    @ciklomat 10 месяцев назад

    Очень интересно. Скажите а написать телеграм бота, который должен слушать сообщения другого стороннего телеграм бота и по результатам парсинга сообщения выполнять какие-то действия. Это реально или невозможно, если известно только имя стороннего бота?

  • @nurullaevakbarkhon1131
    @nurullaevakbarkhon1131 8 месяцев назад +2

    Что то фильтра на тип чата не работает. Бот совсем перестал отвечать после этого фильтра, помогите пожалуйста))

    • @PythonHubStudio
      @PythonHubStudio  8 месяцев назад

      По такому описанию могу помочь только так: сверьтесь с исходником на GitHub, чтоб найти ошибку.

    • @МагестЛоил
      @МагестЛоил 4 месяца назад

      @@PythonHubStudio аналогичная проблема. Код написан верно, но фильтры не работают.

    • @МагестЛоил
      @МагестЛоил 4 месяца назад

      у себя я нашел ошибку. Я неправильно написал класс с фильтрами. Внимательно смотрите его на схожесть, прям до буквы.

  • @baloobear70
    @baloobear70 10 месяцев назад +1

    Я облаял это видео. Лай 20

    • @DayX155
      @DayX155 10 месяцев назад

      Наркоман

  • @МагестЛоил
    @МагестЛоил 4 месяца назад

    у меня не получается создать команды. когда я запускаю откуда ни возьмись появляется папка с файлом bot_cmds_list.cpython-311.pyc который не читается и не ясно в чем дело.

    • @МагестЛоил
      @МагестЛоил 4 месяца назад

      все разобрался. Все работало просто не ясно из за чего не сработало с 1 раза.

  • @t3xtov1k
    @t3xtov1k 5 месяцев назад

    здравствуйте! при тестировании написанного кода раз за разом я замечал ошибку. При выполнении команд команда старт выполняется всегда, а последующие команды, фильтры выполняются через раз. вместо нужного сообщения например команда /menu отправляет не нужный мне текст, а /menu, то есть она мне возвращает зеркальное сообщение, ошибка: Failed to fetch updates - TelegramConflictError: Telegram server says - Conflict: terminated by other getUpdates request; make sure that only one bot instance is running
    Sleep for 1.000000 seconds and try again...

    • @PythonHubStudio
      @PythonHubStudio  5 месяцев назад

      У вас произошел глюк (такое в aiogram бывает), после перезапуска старый процесс не завершился, и в новом - это сообщение. Закройте/откройте редактор и все должно прийти в норму. (Старый ароцесс должен завершиться).

    • @t3xtov1k
      @t3xtov1k 5 месяцев назад

      @@PythonHubStudio а если до сих пор ошибка даже после перезапуска?

  • @MrWeoss
    @MrWeoss 8 месяцев назад

    А можно как то сделать чтобы фильтр реагировал на сообщения в чате, в который добавлен бот? В личных сообщениях все работает, но в чате бот ничего не делает

    • @PythonHubStudio
      @PythonHubStudio  8 месяцев назад

      В видео же это было показано... Ошибок в коде нет?

  • @vid4477
    @vid4477 8 месяцев назад

    from common.bot_cmds_list import private
    ModuleNotFoundError: No module named 'common'

  • @sergirad
    @sergirad 7 месяцев назад

    У меня такая проблема: "BotCommandScopeAllGroupChats" is not defined Pylance

    • @PythonHubStudio
      @PythonHubStudio  7 месяцев назад

      А если проигнорировать это оповещение о том что pylance что-то там не видит (pylance это помощник подсказок и тд).
      Какая версия aiogram установлена(посмотреть команда pip list)?

  • @СтаниславГолбан-у3б
    @СтаниславГолбан-у3б 8 месяцев назад

    Спасибо за урок, подскажите пожалуйста. Все писал правильно, но выдает 2 ошибки. После проверки просто скопировал с гита Ваш код, но ничего не изменилось. И то где папки с файлами находятся и перезапускал vs. Все то же
    Traceback (most recent call last):
    File "d:\tg_bot\myvenv\app.py", line 10, in
    from handlers.user_private import user_private_router
    File "d:\tg_bot\myvenv\handlers\user_private.py", line 3, in
    from filters.chat_types import ChatTypeFilter
    ModuleNotFoundError: No module named 'filters.chat_types'

    • @СтаниславГолбан-у3б
      @СтаниславГолбан-у3б 8 месяцев назад

      UPD
      Помогло создание файлов __init__.py в папках фильтров и ручек
      и from common.bot_cmd_list import private
      cmd вместо cmds

    • @PythonHubStudio
      @PythonHubStudio  8 месяцев назад

      Возможно проект открыт на директорию выше чем положено, поэтому не видит эти папки.

  • @АлексейМилютин-в2ы
    @АлексейМилютин-в2ы 8 месяцев назад

    У меня пропала кнопка меню которую я поставил через botfather и не появилась новая 6:42

    • @PythonHubStudio
      @PythonHubStudio  8 месяцев назад

      Проверьте код в функции main. Метод который удаляет команды должен быть вызван только один раз для их удаления, а не удалять его каждый раз при старте бота, после назначения новых команд. (Сверьтесь с исходником на гитхабе, этого видео и/или следующего).

  • @Дима-г6р7у
    @Дима-г6р7у 7 месяцев назад

    мужик ты объяснил бы как ты импортируешь на времени 5:30 не понятно что жмешь как меню вылазит для импорта

    • @PythonHubStudio
      @PythonHubStudio  7 месяцев назад

      Это относится к теме настройки вашего редактора, о чем было сказано в первом видео. Это не относится к теме этого видео курса, потому что это всего лишь помощник импорта, но на канале есть видео, как так настроить редактор vscode, чтоб были подсказки по импорту, или пишите вручную если лень настраивать.

  • @ИванИванов-м4л6ц
    @ИванИванов-м4л6ц 8 месяцев назад

    Скажите пожалуйста! Если человек пишет в группу команду (меню) как перенаправить эту команду в личку?!

    • @PythonHubStudio
      @PythonHubStudio  8 месяцев назад

      Просто по юзер ид отправьте сообщение пользователю через экземпляр бота:
      await bot.send_message

    • @ИванИванов-м4л6ц
      @ИванИванов-м4л6ц 8 месяцев назад

      @@PythonHubStudio Понял! Спасибо!

  • @shellestovilya
    @shellestovilya 9 месяцев назад

    При написании класса возникает ошибка ( def __init__(self, chat_types: list[str]) -> None:
    TypeError: 'type' object is not subscriptable). Может кто-нибудь подскажет в чём причина?

    • @PythonHubStudio
      @PythonHubStudio  9 месяцев назад +1

      Какой версии python у вас? В видео используется 3.11, если более старой версии(не значит что нужно менять его или что он в прямом смысле "старый"), он не понимает такой синтаксис аннотации типов как list[str]. Нужно тогда так:
      from typing import List
      List[str],
      Или можете вообще на аннотацию типов забить

    • @shellestovilya
      @shellestovilya 9 месяцев назад

      @@PythonHubStudio спасибо, версия стоит 3.8. Добавил импорт, всё заработало.

  • @Артембойко-к1о
    @Артембойко-к1о 9 месяцев назад

    что делать? повторил те же действия что и на видео, а кнопки меню в боте не появляется. Ошибок код не выдает

    • @PythonHubStudio
      @PythonHubStudio  9 месяцев назад

      Сравните с исходником на GitHub, так как понять что-либо по такому описанию невозможно.

    • @Артембойко-к1о
      @Артембойко-к1о 9 месяцев назад

      @@PythonHubStudio Спасибо! Совсем забыл про гитхаб

    • @2bdriveservice675
      @2bdriveservice675 7 месяцев назад

      @@Артембойко-к1о Здравствуйте. Вы решили проблему с кнопкой? У меня ни через ботфазер ни через написание кода кнопка не появляется. Сверился с GitHub. Все так же. Питон, айограм, пайчарм - все обновлено
      Если Вы нашли решение проблемы поделитесь пожалуйста
      upd. Решил проблему заменив такен на вновь созданный

  • @marin426
    @marin426 9 месяцев назад

    Подача материала просто пушка , хотел уточнить у меня не работает 😢ничего делаю все на ка видео . Помогите кто нибудь

    • @PythonHubStudio
      @PythonHubStudio  9 месяцев назад

      Возьмите исходник с GitHub и проверьте/сравните

  • @2bdriveservice675
    @2bdriveservice675 7 месяцев назад +4

    🤮🥴😵Если у вас все четко как у автора, но не появляется кнопка МЕНЮ, то замените ТОКЕN на новый (создайте нового бота в ботфазере). Мне помогло

    • @100-po7dv
      @100-po7dv 3 месяца назад

      Попробовал но не помогло, хотя код тот же

    • @100-po7dv
      @100-po7dv 3 месяца назад

      Автор если ты читаешь этот комент то попробуй сейчас запустить скрипт.

    • @beardedman721
      @beardedman721 Месяц назад

      Все работает, что-то вы значит проглядели

  • @dalersirojidinov279
    @dalersirojidinov279 10 месяцев назад

    а где третий урок?

    • @PythonHubStudio
      @PythonHubStudio  10 месяцев назад

      В смысле где? Везде. И в плейлисте и просто на канале и тд... В чем проблема?

  • @A_e_m555
    @A_e_m555 9 месяцев назад

    Доброго времени суток , я столкнулся с такой проблемой, в pycharm в 9 линии моего кода написано from common.bot_cmds_list import private
    Запускаю код и выдается ошибка line 9 in
    No module named ‘common.bot_cmds_list’

    • @A_e_m555
      @A_e_m555 9 месяцев назад

      Подскажите пожалуйста как исправить

    • @PythonHubStudio
      @PythonHubStudio  9 месяцев назад

      Закройте/откройте редактор, если глюк не прошел, переименуйте common на что-то.

  • @KonstantinKrasavchik-g1p
    @KonstantinKrasavchik-g1p 8 месяцев назад

    Спасибо автору за мастер класс, повторял все в точности за ним, но на 7:20 всплыла ошибка [BOT_COMMAND_INVALID
    Unclosed client session
    client_session:
    Unclosed connector
    connections: ['[(, 1891138.14)]']
    connector: ]
    Может кто нибудь объяснить что за ошибка и как ее исправить?
    В гугле нашел, что это из-за незакрытых сессий каких-то, но как именно их закрывать и что вообще за сессии - так и не понял

    • @PythonHubStudio
      @PythonHubStudio  8 месяцев назад +1

      Ваш прошлый процесс работы бота не был закрыт командой из редактора. Варианты: закрыть/открыть редактор заново, если не поможет, закрыть редактор, и потом найти процесс python, работающий "без причин" и завершить его через диспетчер

    • @vitaliinomadov2436
      @vitaliinomadov2436 2 месяца назад

      @@PythonHubStudio присоединяюсь к автору комментария. Точно такая же проблема, процесса python у меня нигде нет, код в точности совпадает с приведенным в видео, не помогла даже перезагрузка пк. Притом удаляешь строку
      await bot.set_my_commands(commands=private, scope=types.BotCommandScopeAllPrivateChats()), все работает

  • @steponaszonys8385
    @steponaszonys8385 10 месяцев назад

    Спасибо за видео. А это нормально что shipping имеет команду menu_cmd? :
    @user_private_router.message((F.text.lower().contains('доставк')) | (F.text.lower() == 'варианты доставки'))
    @user_private_router.message(Command("shipping"))
    async def menu_cmd(message: types.Message):
    await message.answer("Варианты доставки:")

    • @steponaszonys8385
      @steponaszonys8385 10 месяцев назад

      У меня from aiogram import F, types, Router Pylance F видит как константу, как лечить?

    • @PythonHubStudio
      @PythonHubStudio  10 месяцев назад

      1) переименуйте
      2) Никак. Работает? Так и должно быть

    • @steponaszonys8385
      @steponaszonys8385 10 месяцев назад

      Спасибо что помогаете. Весь путь прошол step-by-step, всё работало до 4 видео 9.54 сек, где прописывается F.text. Далше никак пока... Тоесть бот работает, но разные рандом меседжы неловит.