Как стать автором
Обновить

Комментарии 10

Код из части про python-telegram-bot не рабочий. Последняя версия этой библиотеки работает только асинхронно. Нужна 13 версия, строку с установкой этого пакета нужно исправить.

спасибо за поправку! Смотрела эту библиотеку очень давно, будем знать)

Просто и понятно, но по сути статья - пересказ документации.

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

Такие штампы лучше не использовать в тексте, т.к. его можно убрать без потери смысла, а никакой пикантности и изюминки он не добавляет. Вместо этого лучше бы написал "Пример с lib X ... , Пример с lib Y".

Особенно "туже"

я думаю, что те, кто привык читать документацию, не пойдет разбираться в ботах по таким статьям) Цель была максимально разжевать все для новичков, дать больше пояснений и комментариев, чем есть в документации

Да, тоже думаю, что такой материал будет весьма полезен для новичков, которые интересуются разработкой ботов для Telegram.

Да и задание на отработку хорошая идея, чтобы закрепить знания из статьи.

В целом, хорошая статья.

Зачем вставлять нерабочий код для aiogram? Актуальная версия аиограма - 3, ваш пример для 2 и на тройке не работает.

@bot.message_handler(commands=['start','help'])

Как можно сделать команды регистронезависимыми что бы /Help тоже сработало?

Что бы сделать команды асинхронными, а точнее что бы их долгое выполнение не блокировало бота можно использовать треды, как то так

@bot.message_handler(commands=['init'], func=authorized_admin)
def set_default_commands(message: telebot.types.Message):
    thread = threading.Thread(target=set_default_commands_thread, args=(message,))
    thread.start()
def set_default_commands_thread(message: telebot.types.Message):
    """
    Reads a file containing a list of commands and their descriptions,
    and sets the default commands for the bot.
    """

Для сообщений от бота лучше сделать функцию обёртку, в ней реализовать разрезание длинных сообщений на несколько коротких чтоб пролезло через ограничение телеграма, запись в логи того что бот написал, обработку исключений когда телеграм сообщает что в чате установлено ограничение и надо подождать 5 секунд прежде чем писать, автоперевод на язык юзера итп. Потом неудобно будет переделывать когда у тебя сотни этих сообщений по всему коду разбросаны и все разные.

Для авторизации юзеров и для каких то рутин типа логирования обращений можно использовать func=authorized в декораторе, функция должна возвращать True или False, туда же можно засунуть проверку а к этому ли боту команда обращена или нет, в полной команде типа /my_stats@Axenia_Bot с указанием имени бота

Может соберемся где-нибудь в телеграм группе для обсуждения телеботостроения?

Как можно сделать команды регистронезависимыми что бы /Help тоже сработало?

Они итак регистронезависимые :) и /Help никто писать не будет. И про какую библиотеку ваш вопрос? В статье используется их несколько. В документации много чего написано полезного и интересного :)

Может соберемся где-нибудь в телеграм группе для обсуждения телеботостроения?

Для обсуждения библиотеки/фреймворка можете заглянуть в чат этого самого фреймворка, вам там помогут. Только в том случае, если ваш вопрос не будет настолько глуп банален, что ответом на него будет первая ссылка в Гугле :)

Telebot, команды регистрозависимые

Судя по логам люди пишут /Help иногда

Так какая библиотека по итогу была применена в рабочем боте - telebot???

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации

Истории