Aiogram bot.sendMessage

Помогите разобраться.

main.py

bot = Bot(token="..")
dp = Dispatcher()
dp.include_router(user_router)




user_router.py

@router.message(F.text.in_(someVar))
async def someDef(message: Message):
    await message.answer(text="text")
    await bot.sendMessage(chat_id="", text="")

не могу понять как вне main файла использовать bot с его методами. Для удобства проэкт разбит на несколько файлов.

Задача: бот общается с пользователем в личном чате. Пользователь что-то выбирает и в этот момент бот отправляет краткую выдержкуу в отдельный канал.

Пример: пользователю нужно запустить скрипт на сервере. Бот через меню уточняет параметры. Послие выборки параметров бот пишет в ЛС что начал делать, и в этот же момент в статически заданный канал присылается инфа "Пользователь Вася запустил someScript на сервере таком-то."


Ответы (1 шт):

Автор решения: Алексей

Импортируем модули (Bot где он будет использоваться, а DefaultBotProperties в main.py)

from aiogram import Bot
from aiogram.client.default import DefaultBotProperties

Добавляем дефолтный parse mode в main.py

bot = Bot(token="..", default=DefaultBotProperties(parse_mode=ParseMode.HTML)))

Твой измененный someDef:

@router.message(F.text.in_(someVar))
async def someDef(message: Message, bot: Bot):
    mention = f'<a href="tg://user?id={message.from_user.id}">{message.from_user.first_name}</a>'
    server = "пельмени"
    script = "майонез"
    await message.answer(text="text")
    await bot.send_message(chat_id=-100XXXXXX,f"Пользователь {mention} запустил скрипт {script} на сервере {server}") 

Где chat_id=-100XXXXX вставляешь айди чата, но не убирай -100 в начале.

Также если захотишь отправлять в отдельную тему супергруппы, то добавь в bot.send_message

message_thread_id=Айди темы
→ Ссылка