Бот не работает на aiogram3, запускает только с aiogram 2.25
Ребята, мне дали задание со скриптом:
#!/usr/local/bin/python3.9
from aiogram import Bot, Dispatcher, executor
from aiogram.dispatcher.filters import CommandStart, CommandHelp
from aiogram.types import Message
import configparser
config = configparser.ConfigParser()
config.read("/etc/tgbot/settings.ini")
BOT_TOKEN = config["BOT"]["BOT_TOKEN"]
bot = Bot(BOT_TOKEN)
dp = Dispatcher(bot = bot)
@dp.message_handler(CommandStart())
async def start(message: Message):
await send_info(message)
@dp.message_handler(CommandHelp())
async def start(message: Message):
await send_info(message)
async def send_info(message):
text = '\n'.join(("Привет! Я телеграм бот.",
"Ваши данные:",
f"id: {message.from_user.id}",
f"first_name: {message.from_user.first_name}",
f"user_name: {message.from_user.username}"))
await message.answer(text)
if __name__ == '__main__':
executor.start_polling(dp)
Его задача - выдавать информацию о пользователе, когда к нему обратились. Чтобы он работал, нужно устанавливать строго aiogram==2.25.1, а это неправильно.
Можно ли переписать этот скрипт, чтобы он работал с текущим aiogram версии 3 (сейчас он с версией 3 не работает)?
Ответы (1 шт):
Автор решения: txello
→ Ссылка
Версия на aiogram 3.x
from aiogram import Bot, Dispatcher
from aiogram.filters import CommandStart, Command
from aiogram.types import Message
import configparser
config = configparser.ConfigParser()
config.read("/etc/tgbot/settings.ini")
BOT_TOKEN = config["BOT"]["BOT_TOKEN"]
bot = Bot(BOT_TOKEN)
dp = Dispatcher()
@dp.message(CommandStart())
async def start(message: Message):
await send_info(message)
@dp.message(Command('help'))
async def start(message: Message):
await send_info(message)
async def send_info(message:Message):
text = '\n'.join(("Привет! Я телеграм бот.",
"Ваши данные:",
f"id: {message.from_user.id}",
f"first_name: {message.from_user.first_name}",
f"user_name: {message.from_user.username}"))
await message.answer(text)
if __name__ == '__main__':
dp.start_polling(bot)