Когда прописываю команду /ban @username, то вместо указываемого @username ставится тег владельца чата. При ответе на сообщения такого нет. Перерыл весь итернет, нигде эту информацию не нашёл. Помогите, пожалуйста.
Код:
import asyncio
import logging
from aiogram import Bot, Dispatcher, types
from aiogram.types import ChatPermissions
from aiogram import F
from aiogram.client.session.aiohttp import AiohttpSession
API_TOKEN = "token"
logging.basicConfig(level=logging.INFO)
# Создание бота и диспетчера
session = AiohttpSession()
bot = Bot(token=API_TOKEN, session=session)
dp = Dispatcher()
@dp.message(F.text.startswith("/ban"))
async def ban_user(message: types.Message):
if not message.reply_to_message:
await message.reply("Используйте команду в ответ на сообщение пользователя, которого хотите уволить!")
return
user_to_ban = message.reply_to_message.from_user
user_id = user_to_ban.id
username = user_to_ban.username or "Бездарь"
chat_member = await bot.get_chat_member(message.chat.id, user_id)
if chat_member.status == "creator":
await message.reply("⚠ Невозможно уволить владельца чата!")
return
if user_id == message.from_user.id:
await message.reply("⚠ Нельзя уволить самого себя!")
return
epic_messages = [
f" Приказ об увольнении подписан! @{username}, твоя карьера подошла к концу!",
" Надзиратель уже ставит свою подпись...",
" Охрана уже идёт за тобой...",
f" @{username} уволен! Его пропуск деактивирован, а вещи собраны в коробку и скинуты с 19 этажа!"
]
sent_message = await message.answer(epic_messages[0])
for msg in epic_messages[1:]:
await asyncio.sleep(1.5)
await sent_message.edit_text(msg)
await asyncio.sleep(3)
try:
await bot.ban_chat_member(chat_id=message.chat.id, user_id=user_id)
await sent_message.edit_text(f"✅ @{username} официально уволен!")
except Exception as e:
await sent_message.edit_text(f"⚠ Ошибка при увольнении: {e}")
async def main():
await dp.start_polling(bot)
if __name__ == "__main__":
asyncio.run(main())