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

  Рет қаралды 17,000

Python Hub Studio

Python Hub Studio

Күн бұрын

В этом видео по разработке бота для Telegram на python, поработаем с магическими фильтрами фреймворка aiogram 3, создадим свой кастомный фильтр, для того чтоб наш бот в разных телеграм чатах работал по разному, а также поработаем с кнопкой меню.
00:00 Программная реализации кнопки команд бота в aiogram
07:42 Магические фильтры в aiogram 3
25:31 Работа бота в телеграм группах
27:12 Фильтрация / модерация ботом сообщений в группах
36:19 Фильтры для роутеров
38:30 Кастомный фильтр. Пишем фильтр на тип чата в aiogram 3
Поддержать канал:
На канале доступна функция Спонсорство с дополнительными бонусами.
Присоединиться:
/ pythonhubstudio
А также кнопка Суперспасибо под видео (отображается не во всех странах).
Документация API Telegram:
core.telegram.org/api
Документация aiogram:
docs.aiogram.dev/en/latest/
Код из видео:
github.com/PythonHubStudio/ai...
Этот плейлист:
• Telegram бот на python...
Курс по python 7 часов:
• Учим python за 7 часов...
Видео про асинхронность:
• Асинхронность, многопо...
Курс по Django 15 часов:
• Полный курс уроков по ...
Курс HTML / CSS:
• Учим HTML и CSS за 7 ч...
Не забудьте подписаться и включить оповещения, чтоб не пропустить новые выпуски!

Пікірлер: 104
@pyquent
@pyquent 5 ай бұрын
Это действительно первый плейлист, видео которого я чекаю каждый день)
@kent5140
@kent5140 4 ай бұрын
+1
@user-cp8ou1ot5z
@user-cp8ou1ot5z 4 ай бұрын
Каждый день захожу, в надежде увидеть новый видос! Автор красава! Подача материала просто супер! Хочется продолжение и как можно больше!)
@nnowi
@nnowi Ай бұрын
На самом деле это лучшее что я смотрел, и так классно донес и показал, без заумных слов. До этого я смотрел много видео по айограму и питону, но твои уроки реально помогли. Я запутывался в хэндлерах, а сейчас смотря документацию, получается то что задумывал)) От души спасибо!
@CoinsDealer
@CoinsDealer Ай бұрын
действительно круто!
@RoboTron_Channel
@RoboTron_Channel 4 ай бұрын
Хорошая и качественная подача материала. С нетерпением ждем продолжения!
@sutusa
@sutusa 4 ай бұрын
Спасибо за понятное объяснение, жду продолжение
@shemyatin_konstantin
@shemyatin_konstantin 5 ай бұрын
Автор, спасибо. Подача материала, как всегда на высоте! Ждем продолжение!
@nohtyp_gniyduts838
@nohtyp_gniyduts838 3 ай бұрын
Отлично, что есть отсыл к документации. Вы учите не только писать ботов, но и работать с ней: что очень ценно и интересно.
@voodoo879
@voodoo879 3 ай бұрын
Превосходно подан материал! Благодарю за качественный контент, всё разжевали и положили, нужно только проглотить 👍
@Great_Ave
@Great_Ave 4 ай бұрын
Спасибо большое за труд! Вы очень круто объясняете.
@vladimirIvanov-ut9fo
@vladimirIvanov-ut9fo 3 ай бұрын
Отдельная благодарность за тайм-коды ко всем видео!
@ig141
@ig141 5 ай бұрын
Спасибо,очень познавательно Я редко когда пишу комментарии Благодарю вас
@glebgurzhiy1055
@glebgurzhiy1055 4 ай бұрын
чувак,спасибо тебе огромное ты лучший я не видел чтоб кто-то объяснял так же понятно что-то как ты
@Jon_Britva
@Jon_Britva Ай бұрын
18:24 - Вот что мне надо было)) спасибашки огромные
@dims2688
@dims2688 2 ай бұрын
ты делаешь просто офигенные вещи, продолжай в том же духе!!! подписка однозначно
@photo_graf_khv
@photo_graf_khv Ай бұрын
Отличная инфа! Спасибо тебе!
@user-fq5lr4mb8j
@user-fq5lr4mb8j 2 ай бұрын
Мужик, ты реально крут. Хорошо объясняешь. Спасибо тебе большое
@konstantinvoylokov2398
@konstantinvoylokov2398 4 ай бұрын
все классно и понятно=) Спасибо!
@AngelA-jx6vf
@AngelA-jx6vf 5 ай бұрын
Лайк❤❤❤❤и большое -большое огромное 🎉🎉🎉
@belford123
@belford123 5 ай бұрын
спасибо автор большое! с меня лайк и подписка!
@user-gu1eo9oy1y
@user-gu1eo9oy1y 2 ай бұрын
C кнопками супер, контент подьехал
@user-zn6uk1dn6q
@user-zn6uk1dn6q 4 ай бұрын
спасибо! полезно
@AndBul
@AndBul 5 ай бұрын
огонь
@user-lf7eq3gn9s
@user-lf7eq3gn9s 2 ай бұрын
Вы очень круто все рассказываете и показываете! С таким подходом, даже при обновлении библиотеки можно будет использовать ваш плейлист как рекомендацию по освоению навыка написания ботов! Огромное спасибо! Идем дальше!
@PythonHubStudio
@PythonHubStudio 2 ай бұрын
👍, так и задумано было, как новый формат видео, чтоб Вы научились не просто повторять, а и использовать документацию!
@2bdriveservice675
@2bdriveservice675 2 ай бұрын
🤮🥴😵Если у вас все четко как у автора, но не появляется кнопка МЕНЮ, то замените ТОКЕN на новый (создайте нового бота в ботфазере). Мне помогло
@alsoduos
@alsoduos 4 ай бұрын
С каждым уроком всё интереснее и интереснее! Огромнейшее Вам спасибо! Подскажите, пожалуйста, Вы пользуетесь Telegram Desktop или через какой-то эмулятор? Выглядит, как экран смартфона
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Десктоп, просто потяните за край окна и измените соотношение сторон
@alsoduos
@alsoduos 4 ай бұрын
@@PythonHubStudio Спасибо Вам большое за ответ!
@user-jw9tr1wo9r
@user-jw9tr1wo9r 5 ай бұрын
Куда делся курс по созданию бота для пиццерии на aiogram 2? Понимаю что он уже не очень актуален, но хотелось бы пересмотреть
@ArtemNerin
@ArtemNerin 4 ай бұрын
Спасибо за внимание к мелочам! drop_pending_updates=True - очень полезно! А как организовать когда Бот появился в онлайн чтобы он маякнул одним сообщением всем кто писал запросы что я уже Онлайн и доступен ?
@crypto_profitex
@crypto_profitex 4 ай бұрын
И конечно бы еще хотелось обновленного курса по питону увидеть, по самым важным и актуальным моментам, которые используются при работе - я в основном занимаюсь чат ботами (но на конструкторах), а хотелось бы больше окунуться в питон с аиограмом
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
В курсе по python ничего особенного не изменилось, он до сих пор актуален (и на канале есть видео и по ООП , и по парсингу). Погружение в aiogram, легко - следуйте этому курсу и что самое главное - смотрите и читайте документацию, пробуйте, тестируйте, это будет максимальный плюс к содержимому видео!!!
@crypto_profitex
@crypto_profitex 4 ай бұрын
@@PythonHubStudio я так и делаю, спасибо
@erkanat_iman
@erkanat_iman 4 ай бұрын
Спасибо, думаю можно его к какому нибудь онлаин сервису (API) прикрутить , чтобы самому список не заполнять запрещенные слова
@Vladimir_F609
@Vladimir_F609 4 ай бұрын
Приветствую, дорогой автор! Спасибо огромное за крутые видосы! Возник вопрос: В функции main, в переменной - ALLOWED_MESSAGE, указаны типы - message и edited_message. Тогда почему handler с магическим фильтром F.photo срабатывает? Или тип фото тоже относится к типу message?
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Как говорилось, сообщение (message) это не только текст, а все что пользователь отправил в чат: text, photo, audio, video, sticker, animation и тд. Это все message
@ciklomat
@ciklomat 5 ай бұрын
Очень интересно. Скажите а написать телеграм бота, который должен слушать сообщения другого стороннего телеграм бота и по результатам парсинга сообщения выполнять какие-то действия. Это реально или невозможно, если известно только имя стороннего бота?
@belford123
@belford123 5 ай бұрын
Кстати мастер, будет ли в конце что-то про деплоймент?
@PythonHubStudio
@PythonHubStudio 5 ай бұрын
Желательно...
@GRECHKA230
@GRECHKA230 5 ай бұрын
Как думаете, python больше подходит для выполнения заказов на фрилансе или для работы в компании? Хотелось бы узнать ваше мнение.
@PythonHubStudio
@PythonHubStudio 5 ай бұрын
Мое мнение на эту тему: см. видео на моем канале "что реально пишут на python и какой roadmap". Потому что ваш вопрос поставлен странно... С чем сравнивать? Но отвечу так: для фриланса - лучше всех, для работы в компании - зависит от сферы деятельности этой компании - см. то видео.
@MILAshka666
@MILAshka666 2 ай бұрын
подскажите пожалуйста, я код переписывал, он ошибки не выдает, но почему то код не видит set_my_commands
@sheospace
@sheospace 3 ай бұрын
У меня, как по папкам разложили, неизменно выдает ошибку в основном файле 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 3 ай бұрын
Запускается не тот файл, нужно запускать app.py
@crypto_profitex
@crypto_profitex 4 ай бұрын
Очень крутой урок, спасибо. Правда, не до конца разобрался как правильно работать с фильтрами - то откуда берется group, supergroup). И все таки хотелось бы разобраться - если я захочу реализовать свой функционал бота, а я не до конца разобрался и понял как работать с билиотекой, то что посоветуете? Например, как делать теги чтобы потом по тегам делать рассылки и как вообще делать в питоне с библиотекой рассылки, постинги и так далее...много вопросов))
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Тип чата есть в любом событии. private, group, supergroup... Это строки, и такие же строки мы передаём в фильтр для проверки сравнения строк из события с ними
@CryT0R
@CryT0R 4 ай бұрын
core telegram у тебя в темной теме.. С помощью чего реализовано?
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
В браузере где не вводятся конфиденциальные данные расширение (не помню как называется, что-то вроде dark и что-то с чтением))) (у расширения есть доступ к чтению всего содержимого страницы). Хотя странно что на портале для разработчиков не темной темы сайта...
@baloobear70
@baloobear70 5 ай бұрын
Я облаял это видео. Лай 20
@DayX155
@DayX155 5 ай бұрын
Наркоман
@nurullaevakbarkhon1131
@nurullaevakbarkhon1131 3 ай бұрын
Что то фильтра на тип чата не работает. Бот совсем перестал отвечать после этого фильтра, помогите пожалуйста))
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
По такому описанию могу помочь только так: сверьтесь с исходником на GitHub, чтоб найти ошибку.
@MrWeoss
@MrWeoss 3 ай бұрын
А можно как то сделать чтобы фильтр реагировал на сообщения в чате, в который добавлен бот? В личных сообщениях все работает, но в чате бот ничего не делает
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
В видео же это было показано... Ошибок в коде нет?
@dimonster2212
@dimonster2212 5 ай бұрын
А в чем будет отличие мидлвари и фильтра при навешивании на роутер?
@PythonHubStudio
@PythonHubStudio 5 ай бұрын
По сути очень похоже, это так, но middleware нужны для добавления дополнительного поведения над апдейтами не относящиеся к фильтрации. Абстрактный пример: записать в бд данные о юзере, например id, вести счётчик взаимодействий с ботом и тд... То есть все то что не относится к фильтрации, тут уже по необходимости и фантазии.
@dimonster2212
@dimonster2212 5 ай бұрын
@@PythonHubStudio спасибо
@gingerbreaddy
@gingerbreaddy 4 ай бұрын
aiogram обновился до версии 3.4.0. Теперь немного другой код в документации в кастомных фильтрах
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Глянул, вроде тот-же..
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Новой версии на данный момент вообще не было (самая последняя для установки на данный момент 3.3.0, хотя даже на странице с документацией указана 3.4.0, но тем не менее, такое менять никто не будет даже в следующих контрибуциях), и нового там ничего не заметил после просмотра. См. свой код или для сравнения есть работающий код с гитхаба из этого видео.
@user-tv2qi1sz2h
@user-tv2qi1sz2h 2 ай бұрын
Спасибо за урок, подскажите пожалуйста. Все писал правильно, но выдает 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'
@user-tv2qi1sz2h
@user-tv2qi1sz2h 2 ай бұрын
UPD Помогло создание файлов __init__.py в папках фильтров и ручек и from common.bot_cmd_list import private cmd вместо cmds
@PythonHubStudio
@PythonHubStudio 2 ай бұрын
Возможно проект открыт на директорию выше чем положено, поэтому не видит эти папки.
@user-fx4tu2dn3c
@user-fx4tu2dn3c 3 ай бұрын
Скажите пожалуйста! Если человек пишет в группу команду (меню) как перенаправить эту команду в личку?!
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Просто по юзер ид отправьте сообщение пользователю через экземпляр бота: await bot.send_message
@user-fx4tu2dn3c
@user-fx4tu2dn3c 3 ай бұрын
@@PythonHubStudio Понял! Спасибо!
@t3xtov1k
@t3xtov1k 10 күн бұрын
здравствуйте! при тестировании написанного кода раз за разом я замечал ошибку. При выполнении команд команда старт выполняется всегда, а последующие команды, фильтры выполняются через раз. вместо нужного сообщения например команда /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 10 күн бұрын
У вас произошел глюк (такое в aiogram бывает), после перезапуска старый процесс не завершился, и в новом - это сообщение. Закройте/откройте редактор и все должно прийти в норму. (Старый ароцесс должен завершиться).
@t3xtov1k
@t3xtov1k 10 күн бұрын
@@PythonHubStudio а если до сих пор ошибка даже после перезапуска?
@user-rs4ng7pt1x
@user-rs4ng7pt1x Ай бұрын
мужик ты объяснил бы как ты импортируешь на времени 5:30 не понятно что жмешь как меню вылазит для импорта
@PythonHubStudio
@PythonHubStudio Ай бұрын
Это относится к теме настройки вашего редактора, о чем было сказано в первом видео. Это не относится к теме этого видео курса, потому что это всего лишь помощник импорта, но на канале есть видео, как так настроить редактор vscode, чтоб были подсказки по импорту, или пишите вручную если лень настраивать.
@sergirad
@sergirad 2 ай бұрын
У меня такая проблема: "BotCommandScopeAllGroupChats" is not defined Pylance
@PythonHubStudio
@PythonHubStudio 2 ай бұрын
А если проигнорировать это оповещение о том что pylance что-то там не видит (pylance это помощник подсказок и тд). Какая версия aiogram установлена(посмотреть команда pip list)?
@user-ds6jv6mk6v
@user-ds6jv6mk6v 3 ай бұрын
У меня пропала кнопка меню которую я поставил через botfather и не появилась новая 6:42
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Проверьте код в функции main. Метод который удаляет команды должен быть вызван только один раз для их удаления, а не удалять его каждый раз при старте бота, после назначения новых команд. (Сверьтесь с исходником на гитхабе, этого видео и/или следующего).
@user-mb5vh1xz1u
@user-mb5vh1xz1u 4 ай бұрын
что делать? повторил те же действия что и на видео, а кнопки меню в боте не появляется. Ошибок код не выдает
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Сравните с исходником на GitHub, так как понять что-либо по такому описанию невозможно.
@user-mb5vh1xz1u
@user-mb5vh1xz1u 4 ай бұрын
@@PythonHubStudio Спасибо! Совсем забыл про гитхаб
@2bdriveservice675
@2bdriveservice675 2 ай бұрын
@@user-mb5vh1xz1u Здравствуйте. Вы решили проблему с кнопкой? У меня ни через ботфазер ни через написание кода кнопка не появляется. Сверился с GitHub. Все так же. Питон, айограм, пайчарм - все обновлено Если Вы нашли решение проблемы поделитесь пожалуйста upd. Решил проблему заменив такен на вновь созданный
@vid4477
@vid4477 3 ай бұрын
from common.bot_cmds_list import private ModuleNotFoundError: No module named 'common'
@shellestovilya
@shellestovilya 4 ай бұрын
При написании класса возникает ошибка ( def __init__(self, chat_types: list[str]) -> None: TypeError: 'type' object is not subscriptable). Может кто-нибудь подскажет в чём причина?
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Какой версии python у вас? В видео используется 3.11, если более старой версии(не значит что нужно менять его или что он в прямом смысле "старый"), он не понимает такой синтаксис аннотации типов как list[str]. Нужно тогда так: from typing import List List[str], Или можете вообще на аннотацию типов забить
@shellestovilya
@shellestovilya 4 ай бұрын
@@PythonHubStudio спасибо, версия стоит 3.8. Добавил импорт, всё заработало.
@marin426
@marin426 4 ай бұрын
Подача материала просто пушка , хотел уточнить у меня не работает 😢ничего делаю все на ка видео . Помогите кто нибудь
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Возьмите исходник с GitHub и проверьте/сравните
@dalersirojidinov279
@dalersirojidinov279 4 ай бұрын
а где третий урок?
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
В смысле где? Везде. И в плейлисте и просто на канале и тд... В чем проблема?
@A_e_m555
@A_e_m555 4 ай бұрын
Доброго времени суток , я столкнулся с такой проблемой, в 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 4 ай бұрын
Подскажите пожалуйста как исправить
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
Закройте/откройте редактор, если глюк не прошел, переименуйте common на что-то.
@user-xb8wr6pj8s
@user-xb8wr6pj8s 3 ай бұрын
Спасибо автору за мастер класс, повторял все в точности за ним, но на 7:20 всплыла ошибка [BOT_COMMAND_INVALID Unclosed client session client_session: Unclosed connector connections: ['[(, 1891138.14)]'] connector: ] Может кто нибудь объяснить что за ошибка и как ее исправить? В гугле нашел, что это из-за незакрытых сессий каких-то, но как именно их закрывать и что вообще за сессии - так и не понял
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
Ваш прошлый процесс работы бота не был закрыт командой из редактора. Варианты: закрыть/открыть редактор заново, если не поможет, закрыть редактор, и потом найти процесс python, работающий "без причин" и завершить его через диспетчер
@steponaszonys8385
@steponaszonys8385 4 ай бұрын
Спасибо за видео. А это нормально что 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 4 ай бұрын
У меня from aiogram import F, types, Router Pylance F видит как константу, как лечить?
@PythonHubStudio
@PythonHubStudio 4 ай бұрын
1) переименуйте 2) Никак. Работает? Так и должно быть
@steponaszonys8385
@steponaszonys8385 4 ай бұрын
Спасибо что помогаете. Весь путь прошол step-by-step, всё работало до 4 видео 9.54 сек, где прописывается F.text. Далше никак пока... Тоесть бот работает, но разные рандом меседжы неловит.
@Alfatrans-fx7jg
@Alfatrans-fx7jg 3 ай бұрын
Что то непонятно вообще! В уроке №3 идет начало а в уроке №4 он уже рассказывает что он уже создал какие то кнопки из какого то домашнего задания. Где эти уроки то ?????
@PythonHubStudio
@PythonHubStudio 3 ай бұрын
В прошлом видео было показано как создавать и работать с кнопками. Домашним заданием было - потренироваться с созданием кнопок и посмотреть самостоятельно документацию, которая была показана. В этом видео нового, только то, что я сделал функцию по формированию кнопок через аргументы этой функции..., и рассказал , кстати, о ней в этом видео.
Which one of them is cooler?😎 @potapova_blog
00:45
Filaretiki
Рет қаралды 10 МЛН
Watermelon Cat?! 🙀 #cat #cute #kitten
00:56
Stocat
Рет қаралды 38 МЛН
1 класс vs 11 класс  (игрушка)
00:30
БЕРТ
Рет қаралды 3,9 МЛН
DELETE TOXICITY = 5 LEGENDARY STARR DROPS!
02:20
Brawl Stars
Рет қаралды 20 МЛН
Which one of them is cooler?😎 @potapova_blog
00:45
Filaretiki
Рет қаралды 10 МЛН