Comments 10
Код из части про python-telegram-bot не рабочий. Последняя версия этой библиотеки работает только асинхронно. Нужна 13 версия, строку с установкой этого пакета нужно исправить.
Просто и понятно, но по сути статья - пересказ документации.
Выше вы видите три примера кода, выполняющие одну и туже задачу, но с использованием разных библиотек
Такие штампы лучше не использовать в тексте, т.к. его можно убрать без потери смысла, а никакой пикантности и изюминки он не добавляет. Вместо этого лучше бы написал "Пример с lib X ... , Пример с lib Y".
Особенно "туже"
я думаю, что те, кто привык читать документацию, не пойдет разбираться в ботах по таким статьям) Цель была максимально разжевать все для новичков, дать больше пояснений и комментариев, чем есть в документации
Зачем вставлять нерабочий код для 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???
Учимся создавать простых ботов или туториал по библиотеке TeleBot