fa
Feedback
Python Telegram Bot

Python Telegram Bot

رفتن به کانال در Telegram

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

نمایش بیشتر
5 003
مشترکین
اطلاعاتی وجود ندارد24 ساعت
-67 روز
+1730 روز
آرشیو پست ها
photo content

Ребят, хватит спамить личку с вопросами о сливах Skillbox, GeekBrains, Skillfactory и других Все курсы давно лежат ТУТ, залит
Ребят, хватит спамить личку с вопросами о сливах Skillbox, GeekBrains, Skillfactory и других Все курсы давно лежат ТУТ, залиты на ютуб по приватной ссылке. ➡️ Ссылка для удобства.

А в этих постах мы более подробно покажем как скачивать фото и видео разными способами, а так же, как их отправлять и формиро
А в этих постах мы более подробно покажем как скачивать фото и видео разными способами, а так же, как их отправлять и формировать из них альбомы. Для этого нам понадобится хендлер в папке users. Там мы создадим файл sending_cats.py(потому что, ради примера мы будем отправлять фото и видео котиков 😺). Пишем хендлер, в котором мы будем доставать айдишники наших фото: @dp.message_handler(content_types=ContentType.PHOTO) async def get_file_id(message: Message): await message.reply(message.photo[-1].file_id). Для видео делаем точно так же, но с небольшими изменениями: меняем content_types с PHOTO на VIDEO и вместо message.photo[-1].file_id пишем message.video.file_id. Таким образом мы получим айдишники фото и видео, и сможем их отправлять/пересылать

Что будет напечатано?
Anonymous voting

photo content

Журнал Академии Яндекса — интересно об IT Помогает молодым IT-специалистам работать с удовольствием и эффективно → Расскажет,
Журнал Академии Яндекса — интересно об IT Помогает молодым IT-специалистам работать с удовольствием и эффективно → Расскажет, как попасть в компанию, которая вдохновляет. → Научит правильно организовать работу, расти в глазах коллег (и профессионально). → Поможет на лету решать проблемы, стать своим в сообществе и работать без стресса. → Покажет, как устроена работа в Яндексе изнутри — с точки зрения команд, продуктов и технологий. → Подсветит гиковские темы: от старых компьютерных игр до редких языков программирования. Подписывайтесь, чтобы не пропустить свежие публикации!

Финал поста выше Продолжаем писать хендлер: async def catch_doc(message: types.Message): await message.document.download() aw
Финал поста выше Продолжаем писать хендлер: async def catch_doc(message: types.Message): await message.document.download() await message.reply("Документ скачан\n" f"FILE ID - {message.document.file_id}", parse_mode="HTML"). Теперь сделаем хендлер для аудио сообщений: @dp.message_handler(content_types=types.ContentType.AUDIO) async def catch_audio(message: types.Message): await message.auido.download() await message.reply("Аудиозапись скачана\n" f"FILE ID - {message.audio.file_id}", parse_mode="HTML"). Подобным образом можно сделать хендлеры на видео и фото. Ну и последнее, что мы можем сделать - ловить все оставшееся: @dp.message_handler(content_types=types.ContentType.Any) async def catch_any(message: types.Message): await message.reply(f"Вы прислали ... {message.content_type}") Далее, импортируем файл в инициализатор, запускаем бота и тестируем

Определение очищающих действий. Часть 2 В следующих пунктах рассматриваются более сложные случаи возникновения исключения: —
Определение очищающих действий. Часть 2 В следующих пунктах рассматриваются более сложные случаи возникновения исключения: — Если исключение вызывается во время выполнения предложения try, исключение может обрабатываться предложением except. Если исключение не обрабатывается предложением except, оно повторно создаётся после выполнения блока finally. — При выполнении блока except или else может возникнуть исключение. Это исключение вновь вызывается после выполнения блока finally. — Если try оператор достигает break, continue или return оператора, то finally уточнение будет выполняться непосредственно перед выполнением break, continue или return операторами. — Если finally блок будет включать return оператор, возвращаемое значение будет из return оператора finally, не значение из блока return оператор try. Более простой пример приведен на фото к посту. #python_обучение

Определение очищающих действий. Часть 2 В следующих пунктах рассматриваются более сложные случаи возникновения исключения: —
Определение очищающих действий. Часть 2 В следующих пунктах рассматриваются более сложные случаи возникновения исключения: — Если исключение вызывается во время выполнения предложения try, исключение может обрабатываться предложением except. Если исключение не обрабатывается предложением except, оно повторно создаётся после выполнения блока finally. — При выполнении блока except или else может возникнуть исключение. Это исключение вновь вызывается после выполнения блока finally. — Если try оператор достигает break, continue или return оператора, то finally уточнение будет выполняться непосредственно перед выполнением break, continue или return операторами. — Если finally блок будет включать return оператор, возвращаемое значение будет из return оператора finally, не значение из блока return оператор try. Более простой пример приведен на фото к посту. #python_обучение

Продолжение к посту выше Для того, чтобы ловить видео и фото одновременно, есть несколько способов: использовать сразу нескол
Продолжение к посту выше Для того, чтобы ловить видео и фото одновременно, есть несколько способов: использовать сразу несколько декораторов, либо таким способом: content_types=types.ContentTypes.VIDEO | types.ContentTypes.PHOTO). Разница ContentType от ContentTypes в том, что первое будет передаваться в виде простой строки, а второе в виде списка строк. На этом теория все, приступим к практике. В папке users создаем файл catch_media.py, куда мы будем ловить разные типы передаваемых данных. Для начала создадим какое то подобие эхо хендлера: @dp.message_handler() async def catch_text(message: types.Message) await message.answer("Вы прислали текст") Теперь, если вдруг пользователь захочет прислать документ, мы подготовим для этого хендлера, который допишем в следующем посте: @dp.message_handler(content_types=types.ContentType.DOCUMENT)

📞Слив курсов от Yandex и Tinkoff уже на канале!!!! Подписывайся на канал и изучай любимые языки программирования совершенно
📞Слив курсов от Yandex и Tinkoff уже на канале!!!! Подписывайся на канал и изучай любимые языки программирования совершенно 🎁бесплатно🎁. ➡️ Смотреть курсы⬅️

Определение очищающих действий. Часть 1 У оператора try есть другой необязательный блок, предназначенный для операций очистки
Определение очищающих действий. Часть 1 У оператора try есть другой необязательный блок, предназначенный для операций очистки, которые нужно выполнить независимо от условий (ФОТО) Если присутствует finally блок, finally блок будет выполняться как последняя задача перед завершением try оператором. Блок finally работает, производит ли try оператор исключение или нет

В данной серии постов мы поговорим про работу с Content Type. Как мы говорили и раньше, в обычный message_handler могут попад
В данной серии постов мы поговорим про работу с Content Type. Как мы говорили и раньше, в обычный message_handler могут попадать различные типы сообщение: обычный текст, фото, видео, аудио, стикеры, gif и м.д. По умолчанию, если вы никаких фильтров не указывали, то в message_handler будут лететь только текстовые сообщения, остальной контент будет просто лететь мимо, что заметно в реакции бота(он будет молчать). Данное поведение хендлера обусловленно тем, что в message_handler по умолчанию стоит ContentType.Text. Ну а для того, чтобы ловить другие виды сообщений, вам явно нужно будет указать content_types. Туда можно засунуть, например, видео: content_types="video", ну или обмазаться константами, которые предлагает сам aiogram: content_types=types.ContentType.VIDEO

Что выведет данный код?
Anonymous voting

photo content

📌 Бесплатно освойте профессию дизайнера с нуля. Вместе сделаем вам портфолио из 4+ работ с личной поддержкой от наставника.
📌 Бесплатно освойте профессию дизайнера с нуля. Вместе сделаем вам портфолио из 4+ работ с личной поддержкой от наставника. Что вы получите? — Фидбэк (мощный разбор всех ДЗ от куратора) — Тусовка (личный кабинет с уроками + живой чат) — Портфолио и экзамен (упакуем по урокам и проверим) — Мастер-класс "как заработать на дизайне" и найти клиента 🔥 Будем делать: веб-дизайн, графический дизайн, анимацию интерфейсов. → Начать обучение бесплатно Программа бесплатного курса: — Обучение по Figma с нуля и 4+ дз с личным разбором — Изучение основ дизайна (контент, сетки, композиция т.д.) — Создание анимации интерфейса — Все о профессии и доходе дизайнера (как найти клиентов и сколько можно заработать) 👉 Первый урок уже сегодня, кликайте сюда и забирайте все бонусы

Финал поста выше А вот и хендлер на случай отмены админом публикации поста: @dp.callback_query_handler(post_callback.filter(a
Финал поста выше А вот и хендлер на случай отмены админом публикации поста: @dp.callback_query_handler(post_callback.filter(action="cancel"), user_id=admins) async def decline_post(call: CallbackQuery): await call.answer("Вы отклонили этот пост.", show_alert=True) await call.edit_replay_markup() Если сильно захотеть, то в нашем post_callback можно еще прописывать айдишники пользователя, то есть нужно немного изменить сам callback. Но это понадобится на тот случай, если вы захотите оповещать пользователя о том, что его пост отклонен. Хотя, это не обязательно и наш бот и без этого будет работать нормально. На этом заканчиваем с хендлерами. Импортируем их в users: from .poster import dp и идем тестить бота. Все работает как надо, посты отправляются, принимаются админами и публикуются

Исключения, определенные пользователями В программах можно определять свои собственные исключения, посредством создания новог
Исключения, определенные пользователями В программах можно определять свои собственные исключения, посредством создания нового класса исключения. В общем случае, исключения должны наследоваться от класса Exception явно или неявно. Классы исключений могут быть определены так, чтоб делать всё, что делают любые другие классы, но обычно их внутренняя структура довольно проста, и предоставляет лишь некоторые атрибуты, которые позволяют обработчикам исключения извлекать информацию об ошибке. Большинство исключений определяется с именем оканчивающееся на «Error», подобно именованию стандартных исключений. Многие стандартные модули определяют свои собственные исключения для сообщения об ошибках, которые могут происходить в функциях, что они определяют. #python_обучение

Есть 2 способа выучить Python: 1. Платить за дорогие курсы и втыкать в обучающие ролики на ютубе. Напичкать себя теорией, но
Есть 2 способа выучить Python: 1. Платить за дорогие курсы и втыкать в обучающие ролики на ютубе. Напичкать себя теорией, но так и не научиться кодить. 2. Читать канал Python Teacher. Здесь вы в коротких постах впитаете все алгоритмы, освоите разные библиотеки и фишки языка. А это уже заявочка на хорошую работу. Много реальных примеров и готового кода, переходи и прокачивай скиллы! @python_teacher

Продолжение к посту выше Продолжаем писать хендлер: @dp.callback_query_handler(post_callback.filter(action="post"), user_id=a
Продолжение к посту выше Продолжаем писать хендлер: @dp.callback_query_handler(post_callback.filter(action="post"), user_id=admins) async def approve_post(call: CallbackQuery): await call.answer("Вы одобрили этот пост", show_alert=True). Теперь мы выбираем какой то канал, в который хотим отправить это сообщение. Для этого пишем в этом же хендлере: target_channel = channels[0]. Далее, чтобы отправить отформатированное нужным способом сообщение, которое пришло админу, мы делаем следующее: message(данная переменная будет хранить чистое сообщение без инлайн кнопок) = await call.message.edit_replay_markup() await message.send_copy(chat_id=target_channel). На случай, если админ отменил публикацию поста, мы напишем отдельный хендлер в следующем посте