На самом деле это лучшее что я смотрел, и так классно донес и показал, без заумных слов. До этого я смотрел много видео по айограму и питону, но твои уроки реально помогли. Я запутывался в хэндлерах, а сейчас смотря документацию, получается то что задумывал)) От души спасибо!
С каждым уроком всё интереснее и интереснее! Огромнейшее Вам спасибо! Подскажите, пожалуйста, Вы пользуетесь Telegram Desktop или через какой-то эмулятор? Выглядит, как экран смартфона
Автор, красавец ✊🏻 Подписан и даже ютуб уже канал в авторитеты назначил 😎 Подробно всё объясняет, конечно есть нюансы с обновлениями, но иногда чатgpt подсказывает каких методов в aiogram нет 😎 Большое спасибо 🙏🏻
Вы очень круто все рассказываете и показываете! С таким подходом, даже при обновлении библиотеки можно будет использовать ваш плейлист как рекомендацию по освоению навыка написания ботов! Огромное спасибо! Идем дальше!
У меня, как по папкам разложили, неизменно выдает ошибку в основном файле 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'
Спасибо за внимание к мелочам! drop_pending_updates=True - очень полезно! А как организовать когда Бот появился в онлайн чтобы он маякнул одним сообщением всем кто писал запросы что я уже Онлайн и доступен ?
интересный вопрос. Думаю в этом случае необходимо как раз таки await bot.delete_webhook(drop_pending_updates=True) обработать другим методом. Написать эту строку таким образом, что бы ответ на вебхук был один для всех, внезависимости от самого запроса и игнор всех последующих запросов от тех же юзеров. Но опять же, думаю, что именно этого и избегают разработчики удаля вебхук.
И конечно бы еще хотелось обновленного курса по питону увидеть, по самым важным и актуальным моментам, которые используются при работе - я в основном занимаюсь чат ботами (но на конструкторах), а хотелось бы больше окунуться в питон с аиограмом
В курсе по python ничего особенного не изменилось, он до сих пор актуален (и на канале есть видео и по ООП , и по парсингу). Погружение в aiogram, легко - следуйте этому курсу и что самое главное - смотрите и читайте документацию, пробуйте, тестируйте, это будет максимальный плюс к содержимому видео!!!
Мое мнение на эту тему: см. видео на моем канале "что реально пишут на python и какой roadmap". Потому что ваш вопрос поставлен странно... С чем сравнивать? Но отвечу так: для фриланса - лучше всех, для работы в компании - зависит от сферы деятельности этой компании - см. то видео.
шото не запускалось 2 месяца назад, и вот, спустя 3 курса по питону и джанго все магическим образом заработало XD (джанго месяц учился тем временем в pycharm)
Приветствую, дорогой автор! Спасибо огромное за крутые видосы! Возник вопрос: В функции main, в переменной - ALLOWED_MESSAGE, указаны типы - message и edited_message. Тогда почему handler с магическим фильтром F.photo срабатывает? Или тип фото тоже относится к типу message?
Как говорилось, сообщение (message) это не только текст, а все что пользователь отправил в чат: text, photo, audio, video, sticker, animation и тд. Это все message
Новой версии на данный момент вообще не было (самая последняя для установки на данный момент 3.3.0, хотя даже на странице с документацией указана 3.4.0, но тем не менее, такое менять никто не будет даже в следующих контрибуциях), и нового там ничего не заметил после просмотра. См. свой код или для сравнения есть работающий код с гитхаба из этого видео.
Очень крутой урок, спасибо. Правда, не до конца разобрался как правильно работать с фильтрами - то откуда берется group, supergroup). И все таки хотелось бы разобраться - если я захочу реализовать свой функционал бота, а я не до конца разобрался и понял как работать с билиотекой, то что посоветуете? Например, как делать теги чтобы потом по тегам делать рассылки и как вообще делать в питоне с библиотекой рассылки, постинги и так далее...много вопросов))
Тип чата есть в любом событии. private, group, supergroup... Это строки, и такие же строки мы передаём в фильтр для проверки сравнения строк из события с ними
Здравствуйте! Подскажите, пожалуйста, а есть где-нибудь видео о том, как парсить в тг бог информацию из тг каналов. Не информацию о участниках групп, а именно сводку по постам определенного набора групп
В браузере где не вводятся конфиденциальные данные расширение (не помню как называется, что-то вроде dark и что-то с чтением))) (у расширения есть доступ к чтению всего содержимого страницы). Хотя странно что на портале для разработчиков не темной темы сайта...
Очень интересно. Скажите а написать телеграм бота, который должен слушать сообщения другого стороннего телеграм бота и по результатам парсинга сообщения выполнять какие-то действия. Это реально или невозможно, если известно только имя стороннего бота?
у меня не получается создать команды. когда я запускаю откуда ни возьмись появляется папка с файлом bot_cmds_list.cpython-311.pyc который не читается и не ясно в чем дело.
здравствуйте! при тестировании написанного кода раз за разом я замечал ошибку. При выполнении команд команда старт выполняется всегда, а последующие команды, фильтры выполняются через раз. вместо нужного сообщения например команда /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...
У вас произошел глюк (такое в aiogram бывает), после перезапуска старый процесс не завершился, и в новом - это сообщение. Закройте/откройте редактор и все должно прийти в норму. (Старый ароцесс должен завершиться).
А можно как то сделать чтобы фильтр реагировал на сообщения в чате, в который добавлен бот? В личных сообщениях все работает, но в чате бот ничего не делает
А если проигнорировать это оповещение о том что pylance что-то там не видит (pylance это помощник подсказок и тд). Какая версия aiogram установлена(посмотреть команда pip list)?
Спасибо за урок, подскажите пожалуйста. Все писал правильно, но выдает 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'
Проверьте код в функции main. Метод который удаляет команды должен быть вызван только один раз для их удаления, а не удалять его каждый раз при старте бота, после назначения новых команд. (Сверьтесь с исходником на гитхабе, этого видео и/или следующего).
Это относится к теме настройки вашего редактора, о чем было сказано в первом видео. Это не относится к теме этого видео курса, потому что это всего лишь помощник импорта, но на канале есть видео, как так настроить редактор vscode, чтоб были подсказки по импорту, или пишите вручную если лень настраивать.
При написании класса возникает ошибка ( def __init__(self, chat_types: list[str]) -> None: TypeError: 'type' object is not subscriptable). Может кто-нибудь подскажет в чём причина?
Какой версии python у вас? В видео используется 3.11, если более старой версии(не значит что нужно менять его или что он в прямом смысле "старый"), он не понимает такой синтаксис аннотации типов как list[str]. Нужно тогда так: from typing import List List[str], Или можете вообще на аннотацию типов забить
@@Артембойко-к1о Здравствуйте. Вы решили проблему с кнопкой? У меня ни через ботфазер ни через написание кода кнопка не появляется. Сверился с GitHub. Все так же. Питон, айограм, пайчарм - все обновлено Если Вы нашли решение проблемы поделитесь пожалуйста upd. Решил проблему заменив такен на вновь созданный
Доброго времени суток , я столкнулся с такой проблемой, в pycharm в 9 линии моего кода написано from common.bot_cmds_list import private Запускаю код и выдается ошибка line 9 in No module named ‘common.bot_cmds_list’
Спасибо автору за мастер класс, повторял все в точности за ним, но на 7:20 всплыла ошибка [BOT_COMMAND_INVALID Unclosed client session client_session: Unclosed connector connections: ['[(, 1891138.14)]'] connector: ] Может кто нибудь объяснить что за ошибка и как ее исправить? В гугле нашел, что это из-за незакрытых сессий каких-то, но как именно их закрывать и что вообще за сессии - так и не понял
Ваш прошлый процесс работы бота не был закрыт командой из редактора. Варианты: закрыть/открыть редактор заново, если не поможет, закрыть редактор, и потом найти процесс python, работающий "без причин" и завершить его через диспетчер
@@PythonHubStudio присоединяюсь к автору комментария. Точно такая же проблема, процесса python у меня нигде нет, код в точности совпадает с приведенным в видео, не помогла даже перезагрузка пк. Притом удаляешь строку await bot.set_my_commands(commands=private, scope=types.BotCommandScopeAllPrivateChats()), все работает
Спасибо за видео. А это нормально что 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("Варианты доставки:")
Спасибо что помогаете. Весь путь прошол step-by-step, всё работало до 4 видео 9.54 сек, где прописывается F.text. Далше никак пока... Тоесть бот работает, но разные рандом меседжы неловит.
Отлично, что есть отсыл к документации. Вы учите не только писать ботов, но и работать с ней: что очень ценно и интересно.
Это действительно первый плейлист, видео которого я чекаю каждый день)
+1
Каждый день захожу, в надежде увидеть новый видос! Автор красава! Подача материала просто супер! Хочется продолжение и как можно больше!)
Ждем с нетерпеньем Ваших обучающих видео уроков
На самом деле это лучшее что я смотрел, и так классно донес и показал, без заумных слов. До этого я смотрел много видео по айограму и питону, но твои уроки реально помогли. Я запутывался в хэндлерах, а сейчас смотря документацию, получается то что задумывал)) От души спасибо!
действительно круто!
Просто СУПЕРРРР!!!!! Огромное спасибо, хоть мне уже и не 18 как молодому программисту но очень многое из сказанного я понял без труда. СПАСИБО!
Хорошая и качественная подача материала. С нетерпением ждем продолжения!
Автор, спасибо. Подача материала, как всегда на высоте!
Ждем продолжение!
Превосходно подан материал! Благодарю за качественный контент, всё разжевали и положили, нужно только проглотить 👍
Спасибо за понятное объяснение, жду продолжение
Спасибо большое за этот замечательные курсы ! Понятно объясняете !!! 👍👍👍
Спасибо,очень познавательно
Я редко когда пишу комментарии
Благодарю вас
чувак,спасибо тебе огромное ты лучший я не видел чтоб кто-то объяснял так же понятно что-то как ты
Отдельная благодарность за тайм-коды ко всем видео!
Спасибо большое за труд! Вы очень круто объясняете.
ты делаешь просто офигенные вещи, продолжай в том же духе!!!
подписка однозначно
Мужик, ты реально крут. Хорошо объясняешь. Спасибо тебе большое
18:24 - Вот что мне надо было)) спасибашки огромные
С каждым уроком всё интереснее и интереснее! Огромнейшее Вам спасибо!
Подскажите, пожалуйста, Вы пользуетесь Telegram Desktop или через какой-то эмулятор? Выглядит, как экран смартфона
Десктоп, просто потяните за край окна и измените соотношение сторон
@@PythonHubStudio Спасибо Вам большое за ответ!
Автор, красавец ✊🏻
Подписан и даже ютуб уже канал в авторитеты назначил 😎
Подробно всё объясняет, конечно есть нюансы с обновлениями, но иногда чатgpt подсказывает каких методов в aiogram нет 😎
Большое спасибо 🙏🏻
Лайк❤❤❤❤и большое -большое огромное 🎉🎉🎉
Отличная инфа! Спасибо тебе!
C кнопками супер, контент подьехал
спасибо автор большое! с меня лайк и подписка!
Вы очень круто все рассказываете и показываете! С таким подходом, даже при обновлении библиотеки можно будет использовать ваш плейлист как рекомендацию по освоению навыка написания ботов! Огромное спасибо! Идем дальше!
👍, так и задумано было, как новый формат видео, чтоб Вы научились не просто повторять, а и использовать документацию!
все классно и понятно=) Спасибо!
У меня, как по папкам разложили, неизменно выдает ошибку в основном файле
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'
Запускается не тот файл, нужно запускать app.py
Куда делся курс по созданию бота для пиццерии на aiogram 2? Понимаю что он уже не очень актуален, но хотелось бы пересмотреть
подскажите пожалуйста, я код переписывал, он ошибки не выдает, но почему то код не видит set_my_commands
Такая же тема, ты решил или нет?
@@АмирГафаров-ц6п да, решил
Спасибо за внимание к мелочам!
drop_pending_updates=True - очень полезно!
А как организовать когда Бот появился в онлайн чтобы он маякнул одним сообщением всем кто писал запросы что я уже Онлайн и доступен ?
интересный вопрос. Думаю в этом случае необходимо как раз таки await bot.delete_webhook(drop_pending_updates=True) обработать другим методом. Написать эту строку таким образом, что бы ответ на вебхук был один для всех, внезависимости от самого запроса и игнор всех последующих запросов от тех же юзеров. Но опять же, думаю, что именно этого и избегают разработчики удаля вебхук.
И конечно бы еще хотелось обновленного курса по питону увидеть, по самым важным и актуальным моментам, которые используются при работе - я в основном занимаюсь чат ботами (но на конструкторах), а хотелось бы больше окунуться в питон с аиограмом
В курсе по python ничего особенного не изменилось, он до сих пор актуален (и на канале есть видео и по ООП , и по парсингу). Погружение в aiogram, легко - следуйте этому курсу и что самое главное - смотрите и читайте документацию, пробуйте, тестируйте, это будет максимальный плюс к содержимому видео!!!
@@PythonHubStudio я так и делаю, спасибо
Как думаете, python больше подходит для выполнения заказов на фрилансе или для работы в компании? Хотелось бы узнать ваше мнение.
Мое мнение на эту тему: см. видео на моем канале "что реально пишут на python и какой roadmap". Потому что ваш вопрос поставлен странно... С чем сравнивать? Но отвечу так: для фриланса - лучше всех, для работы в компании - зависит от сферы деятельности этой компании - см. то видео.
спасибо! полезно
шото не запускалось 2 месяца назад, и вот, спустя 3 курса по питону и джанго все магическим образом заработало XD (джанго месяц учился тем временем в pycharm)
Спасибо, думаю можно его к какому нибудь онлаин сервису (API) прикрутить , чтобы самому список не заполнять запрещенные слова
Кстати мастер, будет ли в конце что-то про деплоймент?
Желательно...
Приветствую, дорогой автор! Спасибо огромное за крутые видосы! Возник вопрос: В функции main, в переменной - ALLOWED_MESSAGE, указаны типы - message и edited_message. Тогда почему handler с магическим фильтром F.photo срабатывает? Или тип фото тоже относится к типу message?
Как говорилось, сообщение (message) это не только текст, а все что пользователь отправил в чат: text, photo, audio, video, sticker, animation и тд. Это все message
aiogram обновился до версии 3.4.0. Теперь немного другой код в документации в кастомных фильтрах
Глянул, вроде тот-же..
Новой версии на данный момент вообще не было (самая последняя для установки на данный момент 3.3.0, хотя даже на странице с документацией указана 3.4.0, но тем не менее, такое менять никто не будет даже в следующих контрибуциях), и нового там ничего не заметил после просмотра. См. свой код или для сравнения есть работающий код с гитхаба из этого видео.
Очень крутой урок, спасибо. Правда, не до конца разобрался как правильно работать с фильтрами - то откуда берется group, supergroup). И все таки хотелось бы разобраться - если я захочу реализовать свой функционал бота, а я не до конца разобрался и понял как работать с билиотекой, то что посоветуете? Например, как делать теги чтобы потом по тегам делать рассылки и как вообще делать в питоне с библиотекой рассылки, постинги и так далее...много вопросов))
Тип чата есть в любом событии. private, group, supergroup... Это строки, и такие же строки мы передаём в фильтр для проверки сравнения строк из события с ними
огонь
Здравствуйте! Подскажите, пожалуйста, а есть где-нибудь видео о том, как парсить в тг бог информацию из тг каналов. Не информацию о участниках групп, а именно сводку по постам определенного набора групп
Здравствуйте, очень полезное видео, спасибо, но есть вопрос почему просто не использовать условия вместо F ?
F и другие фильтры работают до кода самого хендлера, а если событие попало в хендлер, то другие хендлеры его уже смотреть не будут.
@@PythonHubStudio все спасибо, пересмотрел видео а там есть объяснение, спасибо за фидбэк
core telegram у тебя в темной теме.. С помощью чего реализовано?
В браузере где не вводятся конфиденциальные данные расширение (не помню как называется, что-то вроде dark и что-то с чтением))) (у расширения есть доступ к чтению всего содержимого страницы). Хотя странно что на портале для разработчиков не темной темы сайта...
Интересное видео, но у меня почему-то не работает фильтр F, вроде все сделал, как на видео, но сообщение не отправляется
Очень интересно. Скажите а написать телеграм бота, который должен слушать сообщения другого стороннего телеграм бота и по результатам парсинга сообщения выполнять какие-то действия. Это реально или невозможно, если известно только имя стороннего бота?
Что то фильтра на тип чата не работает. Бот совсем перестал отвечать после этого фильтра, помогите пожалуйста))
По такому описанию могу помочь только так: сверьтесь с исходником на GitHub, чтоб найти ошибку.
@@PythonHubStudio аналогичная проблема. Код написан верно, но фильтры не работают.
у себя я нашел ошибку. Я неправильно написал класс с фильтрами. Внимательно смотрите его на схожесть, прям до буквы.
Я облаял это видео. Лай 20
Наркоман
у меня не получается создать команды. когда я запускаю откуда ни возьмись появляется папка с файлом bot_cmds_list.cpython-311.pyc который не читается и не ясно в чем дело.
все разобрался. Все работало просто не ясно из за чего не сработало с 1 раза.
здравствуйте! при тестировании написанного кода раз за разом я замечал ошибку. При выполнении команд команда старт выполняется всегда, а последующие команды, фильтры выполняются через раз. вместо нужного сообщения например команда /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...
У вас произошел глюк (такое в aiogram бывает), после перезапуска старый процесс не завершился, и в новом - это сообщение. Закройте/откройте редактор и все должно прийти в норму. (Старый ароцесс должен завершиться).
@@PythonHubStudio а если до сих пор ошибка даже после перезапуска?
А можно как то сделать чтобы фильтр реагировал на сообщения в чате, в который добавлен бот? В личных сообщениях все работает, но в чате бот ничего не делает
В видео же это было показано... Ошибок в коде нет?
from common.bot_cmds_list import private
ModuleNotFoundError: No module named 'common'
У меня такая проблема: "BotCommandScopeAllGroupChats" is not defined Pylance
А если проигнорировать это оповещение о том что pylance что-то там не видит (pylance это помощник подсказок и тд).
Какая версия aiogram установлена(посмотреть команда pip list)?
Спасибо за урок, подскажите пожалуйста. Все писал правильно, но выдает 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'
UPD
Помогло создание файлов __init__.py в папках фильтров и ручек
и from common.bot_cmd_list import private
cmd вместо cmds
Возможно проект открыт на директорию выше чем положено, поэтому не видит эти папки.
У меня пропала кнопка меню которую я поставил через botfather и не появилась новая 6:42
Проверьте код в функции main. Метод который удаляет команды должен быть вызван только один раз для их удаления, а не удалять его каждый раз при старте бота, после назначения новых команд. (Сверьтесь с исходником на гитхабе, этого видео и/или следующего).
мужик ты объяснил бы как ты импортируешь на времени 5:30 не понятно что жмешь как меню вылазит для импорта
Это относится к теме настройки вашего редактора, о чем было сказано в первом видео. Это не относится к теме этого видео курса, потому что это всего лишь помощник импорта, но на канале есть видео, как так настроить редактор vscode, чтоб были подсказки по импорту, или пишите вручную если лень настраивать.
Скажите пожалуйста! Если человек пишет в группу команду (меню) как перенаправить эту команду в личку?!
Просто по юзер ид отправьте сообщение пользователю через экземпляр бота:
await bot.send_message
@@PythonHubStudio Понял! Спасибо!
При написании класса возникает ошибка ( def __init__(self, chat_types: list[str]) -> None:
TypeError: 'type' object is not subscriptable). Может кто-нибудь подскажет в чём причина?
Какой версии python у вас? В видео используется 3.11, если более старой версии(не значит что нужно менять его или что он в прямом смысле "старый"), он не понимает такой синтаксис аннотации типов как list[str]. Нужно тогда так:
from typing import List
List[str],
Или можете вообще на аннотацию типов забить
@@PythonHubStudio спасибо, версия стоит 3.8. Добавил импорт, всё заработало.
что делать? повторил те же действия что и на видео, а кнопки меню в боте не появляется. Ошибок код не выдает
Сравните с исходником на GitHub, так как понять что-либо по такому описанию невозможно.
@@PythonHubStudio Спасибо! Совсем забыл про гитхаб
@@Артембойко-к1о Здравствуйте. Вы решили проблему с кнопкой? У меня ни через ботфазер ни через написание кода кнопка не появляется. Сверился с GitHub. Все так же. Питон, айограм, пайчарм - все обновлено
Если Вы нашли решение проблемы поделитесь пожалуйста
upd. Решил проблему заменив такен на вновь созданный
Подача материала просто пушка , хотел уточнить у меня не работает 😢ничего делаю все на ка видео . Помогите кто нибудь
Возьмите исходник с GitHub и проверьте/сравните
🤮🥴😵Если у вас все четко как у автора, но не появляется кнопка МЕНЮ, то замените ТОКЕN на новый (создайте нового бота в ботфазере). Мне помогло
Попробовал но не помогло, хотя код тот же
Автор если ты читаешь этот комент то попробуй сейчас запустить скрипт.
Все работает, что-то вы значит проглядели
а где третий урок?
В смысле где? Везде. И в плейлисте и просто на канале и тд... В чем проблема?
Доброго времени суток , я столкнулся с такой проблемой, в pycharm в 9 линии моего кода написано from common.bot_cmds_list import private
Запускаю код и выдается ошибка line 9 in
No module named ‘common.bot_cmds_list’
Подскажите пожалуйста как исправить
Закройте/откройте редактор, если глюк не прошел, переименуйте common на что-то.
Спасибо автору за мастер класс, повторял все в точности за ним, но на 7:20 всплыла ошибка [BOT_COMMAND_INVALID
Unclosed client session
client_session:
Unclosed connector
connections: ['[(, 1891138.14)]']
connector: ]
Может кто нибудь объяснить что за ошибка и как ее исправить?
В гугле нашел, что это из-за незакрытых сессий каких-то, но как именно их закрывать и что вообще за сессии - так и не понял
Ваш прошлый процесс работы бота не был закрыт командой из редактора. Варианты: закрыть/открыть редактор заново, если не поможет, закрыть редактор, и потом найти процесс python, работающий "без причин" и завершить его через диспетчер
@@PythonHubStudio присоединяюсь к автору комментария. Точно такая же проблема, процесса python у меня нигде нет, код в точности совпадает с приведенным в видео, не помогла даже перезагрузка пк. Притом удаляешь строку
await bot.set_my_commands(commands=private, scope=types.BotCommandScopeAllPrivateChats()), все работает
Спасибо за видео. А это нормально что 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("Варианты доставки:")
У меня from aiogram import F, types, Router Pylance F видит как константу, как лечить?
1) переименуйте
2) Никак. Работает? Так и должно быть
Спасибо что помогаете. Весь путь прошол step-by-step, всё работало до 4 видео 9.54 сек, где прописывается F.text. Далше никак пока... Тоесть бот работает, но разные рандом меседжы неловит.