aiogram: повторяется сообщения из команды старт
import asyncio
from aiogram import Bot, Dispatcher, Router, types
from aiogram.filters import CommandStart, Command
from aiogram import F
from aiogram.types import Message, InlineKeyboardButton, InlineKeyboardMarkup
from googletrans import Translator
API_TOKEN = '``'
bot = Bot(token=API_TOKEN)
dp = Dispatcher()
router=Router()
dp.include_router(router)
translator=Translator()
@router.message(CommandStart)
async def cmd_start(message:Message):
await message.answer("Привет я бот-переводчик.Напишите текст который надо перевести и на какой язык.")
await message.answer("Например: 'Привет, мир! en ' ")
@router.message(F.text)
async def translate_text(message:Message):
text_to_translate = message.text.split(" ", 1 )
if len (text_to_translate) == 2:
text=text_to_translate[0].strip()
target_language = text_to_translate[1].strip()
try:
translation = translator.translate(text, dest=target_language)
await message.answer(f"Перевод на{target_language}:\n{translation.text}")
except ValueError:
await message.answer(f"Неверный код языка.Пожалуйста , введите правильный код языка.")
else:
await message.answer(f"Пожалуйста, введитее текст и код языка для перевода.")
async def main():
await dp.start_polling(bot)
if __name__ == '__main__':
asyncio.run(main())
Ответы (1 шт):
Автор решения: Mipsirint
→ Ссылка
У вас в декораторе скобок не достаёт, CommandStart — это класс
@router.message(CommandStart())
async def cmd_start(message: Message):
...