en
Feedback
Python Telegram Bot

Python Telegram Bot

Open in Telegram

☑️ Заявки принимаются автоматически! Обучаем созданию и продвижению чат-ботов в телеграм. ссылка: @pybotg связь: @oksi_young https://telega.in/channels/+Mj_twnrYuAxkZmUy/card/?r=BrHKEWMo

Show more
5 003
Subscribers
No data24 hours
-67 days
+1730 days
Posts Archive
Финал поста выше Теперь, давайте проверим, как все это работает. Заходим в config.py и запускаем бота. Все те ошибки, которые
Финал поста выше Теперь, давайте проверим, как все это работает. Заходим в config.py и запускаем бота. Все те ошибки, которые у нас были прописаны в start.py бот нам вывел. Для чего это может быть полезно? Если вы хотите фиксировать эти ошибки, но не выводить их, то данная функция поможет вам с этим, фиксируя ошибки там, где вам нужно. Ну или например, у вас появилась какая то незарегистрированная ошибка, то бот автоматически отправит ее в хендлер ошибок, который имеет вид logging.exception(f"Update: {update} \n{exception}'). В данный хендлер летят все необработанные или незарегестрированные ошибки, возникающие при работе бота.

Сделайте сообщения об ошибках полезными После фразы о том, что у бота что-то не получилось, добавьте какое-то предложение пол
Сделайте сообщения об ошибках полезными После фразы о том, что у бота что-то не получилось, добавьте какое-то предложение пользователю, хотя бы «вернуться в главное меню». Не оставляйте тупиков, об этом говорилось выше.

Оператор del Существует способ удаления элемента из списка с учетом его индекса вместо значения: оператор del. В отличие от м
Оператор del Существует способ удаления элемента из списка с учетом его индекса вместо значения: оператор del. В отличие от метода pop(), она не возвращает значение. Оператор del может также использоваться для удаления слайсов из списка или полной очистки списка (что мы делали ранее через присваивание пустого списка слайса) (Код 1). del также можно использовать для удаления целых переменных (Код 2). Ссылка на имя a в дальнейшем вызовет ошибку (по крайней мере до тех пор, пока с ним не будет связано другое значение). #python_обучение

Питонизация - канал с пакетами для Python. Полезно тем, кто хоть немного знаком с питоном или хочет с ним познакомиться. Боль
Питонизация - канал с пакетами для Python. Полезно тем, кто хоть немного знаком с питоном или хочет с ним познакомиться. Большинство инструментов уже написали за вас, остаётся только брать и использовать. Подпишись, чтобы не писать велосипеды и экономить сотни или тысячи часов! https://t.me/+32FrwNHyAxMwMmVi

Продолжение к посту выше Условие будет иметь следующий вид: if isinstance(exception, CantDemoteChatCreator): logging.debug("C
Продолжение к посту выше Условие будет иметь следующий вид: if isinstance(exception, CantDemoteChatCreator): logging.debug("Can't demote chat creator") return True. В общем, это стандартые ошибки, на которые вы пишите стандартные ответы. Далее рассмотри еще одну ошибку, которая реагирует на неправильно введенные теги для парсинга. Ее название CantParseEntities. Для нее условие будет выглядеть следующим образом: if ininstance(exception, CantParseEntities): await Update.get_current().message.answer(f"Попало в хендлер ошибок. CantParseEntities: {exception.args}"). В данном условии мы получаем текущий апдейт с помощью контекстных переменных и отвечаем пользователю с передачей аргументов, которые выдали ошибку. Ну и конечно же, мы возвращаем True для того, чтобы эта ошибка опять не повторялась и не крутилась вечно в вебхуке.

Что выведет код?
Anonymous voting

photo content

4PDA теперь в Telegram! 4PDA – крупнейший в рунете тематический ресурс, посвященный технологиям, приложениям и кодингу. Специ
4PDA теперь в Telegram! 4PDA – крупнейший в рунете тематический ресурс, посвященный технологиям, приложениям и кодингу. Специально для программистов у них появился официальный канал в телеграм, где вы увидите сливы платных курсов, интересные статьи и много другого! Подписывайтесь: @4pda_forum

☑️ Телеграм бот • Бюджет: 10 000₽ • Срок: 07.11.22 • Задача: В канале – кнопки бота: I. Создать игру II. Мои игры III. Ближай
☑️ Телеграм бот • Бюджет: 10 000₽ • Срок: 07.11.22 • Задача: В канале – кнопки бота: I. Создать игру II. Мои игры III. Ближайшие игры IV. Полезная информация I “Создать игру” Бот кидает в личку вопросы: 1) Название игры (через открытый поисковик tesera.ru) (фото №4) 2) Дата: ( предлагает вариант ближайших 7 дней (даты) + «свой вариант» – дд.мм.гг.) 3) Время (предлагает варианты 13:00, 13:30, 14:00, 18:30, 19:00,19:30, «свой вариант» – чч.мм. 4) Кол-во игроков (указать число) 5) Сложность: предлагает три вариант ответа: А) «Правила простые. Игра быстрая» Б) «Правила содержат много нюансов. Партия может быть более 1,5 часов» В) «Сложные правила. Возможно очень длинная партия» ...... Откликнуться

Продолжение к посту выше В самом файле много разного текста, давайте разбираться подробнее. Начнем с импортов. В хендлер ошиб
Продолжение к посту выше В самом файле много разного текста, давайте разбираться подробнее. Начнем с импортов. В хендлер ошибок импортирован logging, из aiogram.types импортирован Update и из loader - dp, то есть наш диспачер. На самом деле, регистрация хендлера ошибок ничем не отличается от регистрации обычного хендлера. Далее, нас встречает асинхронная функция async def errors_handler(update, exception), которая принимает 2 параметра: update - пришедший апдейт, exception - исключения, которые выбил апдейт. Из aiogram.utils.exception импортируются всевозможные ошибки и с помощью обычного условного оператора происходит сравнение на соответствие одной из них. В следующем посте покажем на примере одно из ошибок, а точнее на CantDemoteChatCreator, то есть невозможность понижения должности создателя чата.

Используйте изображения Сейчас добавить изображение можно на всех платформах, в том числе в СМС. Картинка привлекает внимание
Используйте изображения Сейчас добавить изображение можно на всех платформах, в том числе в СМС. Картинка привлекает внимание к сообщению и в связке с подписью эффективнее, чем просто текст. Но не злоупотребляйте.

Станьте Python-разработчиком на Хекслете ✔ Пройдите бесплатные вводные курсы, чтобы познакомиться с профессией. ✔ Если понрав
Станьте Python-разработчиком на Хекслете  ✔ Пройдите бесплатные вводные курсы, чтобы познакомиться с профессией. ✔ Если понравится — присоединяйтесь к обучению в группе с наставником ✔ Развивайте нетворкинг в 26-тысячном сообществе айтишников ✔ Выполняйте проекты, участвуйте в Open Source, готовьтесь к трудоустройству  P.S. Вводные курсы профессии доступны бесплатно сразу после регистрации. Оцените формат и решите, стоит ли продолжать!

Вложенные списковые включения Первое выражение в списковом включении может быть любым произвольным выражением, включая другое
Вложенные списковые включения Первое выражение в списковом включении может быть любым произвольным выражением, включая другое списочное включение. Рассмотрим Код 1 - пример матрицы 3x4, реализованной в виде 3 списков списка длины 4. Следующее списковое включение будет преобразовывать строки и столбцы Код 2. #python_обучение

Одна из крутых возможностей aiogram - это хендлер ошибок, который позволяет в случае некоторых ошибок не то что не падать бот
Одна из крутых возможностей aiogram - это хендлер ошибок, который позволяет в случае некоторых ошибок не то что не падать боту, но еще и как то на них реагировать. Тогда, если вы никак не обработали хендлер, то он попадет в хендлер ошибок, где с ним можно что угодно сделать. Таким образом, в этих постах мы будем разбирать ветку errors handler. У нас остался лишь хендлер для команды старт, где у нас все импортировано по умолчанию, но, в добавок к этому, еще импортирован logging для того, чтобы как то показать, что происходит в логах. Давайте, наконец, разберем, что за хендлер ошибок и для чего он. Мы заходим в handlers/errors/errors_handler.py. Опять же, файл errors_handler.py уже зарегестрирован в ините.

Одна из крутых возможностей aiogram - это хендлер ошибок, который позволяет в случае некоторых ошибок не то что не падать бот
Одна из крутых возможностей aiogram - это хендлер ошибок, который позволяет в случае некоторых ошибок не то что не падать боту, но еще и как то на них реагировать. Тогда, если вы никак не обработали хендлер, то он попадет в хендлер ошибок, где с ним можно что угодно сделать. Таким образом, в этих постах мы будем разбирать ветку errors handler. У нас остался лишь хендлер для команды старт, где у нас все импортировано по умолчанию, но, в добавок к этому, еще импортирован logging для того, чтобы как то показать, что происходит в логах. Давайте, наконец, разберем, что за хендлер ошибок и для чего он. Мы заходим в handlers/errors/errors_handler.py. Опять же, файл errors_handler.py уже зарегестрирован в ините.

Из чего состоит стратегия продвижения Тактика на первые месяцы работы: что, когда и зачем делать, какие результаты должны быт
Из чего состоит стратегия продвижения Тактика на первые месяцы работы: что, когда и зачем делать, какие результаты должны быть • Контент-стратегия - какой контент публиковать и зачем • Рекламная стратегия - кого и как привлекать, как получать продажи • Визуальная концепция - оформление сообщества и публикаций • Критерии оценки результатов - какие метрики учитывать, что считать успехом

Что выведет код?
Anonymous voting

photo content

Финал поста выше Ответ пользователю будет происходить по следующему сценарию: await message.answer("Спасибо за ваши ответы").
Финал поста выше Ответ пользователю будет происходить по следующему сценарию: await message.answer("Спасибо за ваши ответы"). После чего, нам нужно предоставить пользователю его ответы: awat message.answer(f"Ответ 1: {answer1}"), await message.answer(f"Ответ 2: {answer2}"). Теперь, для того, чтобы пользователь не оставался все время в состоянии ответа на 2 вопрос, мы должны его сбросить. Есть, опять же, несколько вариантов как это сделать. 1 вариант более простой: await state.finish(), то есть, у нас сбрасывается состояние и данные, которые в нем сохранены. 2 вариант: await state.reset_state(), который тоже сбросит состояние и все данные. 3 вариант используется в том случае, если вам нужно сбросить состояние, но не сбрасывать данные: await state.reset_state(with_data=False).