Комментарии 8
Статья понравилась. Хороший читаемый чистый код, только я бы провёл небольшой рефакторинг функции send_message_user - заменил бы конструкцию if/elif на match/case (для Python 3.10+)
async def send_message_user(bot, user_id, content_type, content_text=None, file_id=None, kb=None):
match content_type:
case 'text': await bot.send_message(chat_id=user_id, text=content_text, reply_markup=kb)
case 'photo': await bot.send_photo(chat_id=user_id, photo=file_id, caption=content_text, reply_markup=kb)
case 'document': await bot.send_document(chat_id=user_id, document=file_id, caption=content_text, reply_markup=kb)
case 'video': await bot.send_video(chat_id=user_id, video=file_id, caption=content_text, reply_markup=kb)
case 'audio': await bot.send_audio(chat_id=user_id, audio=file_id, caption=content_text, reply_markup=kb)
case 'voice': await bot.send_voice(chat_id=user_id, voice=file_id, caption=content_text, reply_markup=kb)
А что делать если мне надо прикрепить файл, который весит больше 50мб?
# Функция, которая выполнится когда бот завершит свою работу
async def stop_bot():
try:
for admin_id in admins:
await bot.send_message(admin_id, 'Бот остановлен. За что?😔')
except:
pass
С такой логикой:
если первый админ заблокирует бота, то второй админ не получит сообщение;
пока первый админ не получит сообщение, ко второму оно даже не улетит;
если случится ошибка, от неё не останется никаких следов.
Рекомендую пересмотреть этот небольшой кусок кода :)
Не увдел импорты в upd_note_router.py
Зарегистрируйтесь на Хабре, чтобы оставить комментарий
Разработка Telegram-бота для управления файлами и заметками с помощью Aiogram 3 и асинхронной SQLAlchemy