TypeError: delete_message() got multiple values for argument 'chat_id' ИЗВИНЯЮСЬ ЗА МАТ В КОДЕ! Win10; Python 3.9.6

sluntik

Новичок
Пользователь
Авг 17, 2021
3
0
1
Python:
import config
import logging

from filter import IsAdminFilter

from aiogram import Bot, Dispatcher, executor, types


# log level
logging.basicConfig(level=logging.INFO)

# bot init
bot = Bot(token=config.TOKEN)
dp = Dispatcher(bot)

# activate filters
dp.filters_factory.bind(IsAdminFilter)

# ban command
@dp.message_handler(is_admin=True, commands=["ban"], commands_prefix="!/")
async def cmd_ban(message: types.Message):
    if not message.reply_to_message:
        await message.reply("Эта команда должна быть ответом на сообщение!")
        return

    await message.bot.delete_message(message.message_id, chat_id=config.GROUP_ID)
    await message.bot.kick_chat_member(chat_id=config.GROUP_ID, user_id=message.reply_to_message.from_user.id)

    await message.reply_to_message("Польователь забанен!\n Рука бога нанесла удар!")

# remuve new joined mssages
@dp.message_handler(content_types=["new_chat_members"])
async def on_user_joined(message: types.Message):
    await message.delete()
# simpe profanity check
@dp.message_handler()
async def filter_message(message: types.Message):
    if "сука" in message.text:
        # detected, remove
        await message.delete()
    elif "блять" in message.text:
        # detected, remove
        await message.delete()
    elif "нахуй" in message.text:
        # detected, remove
        await message.delete()
    elif "пиздец" in message.text:
        # detected, remove
        await message.delete()
    elif "Блять" in message.text:
        # detected, remove
        await message.delete()
    elif "Нахуй" in message.text:
        # detected, remove
        await message.delete()
    elif "Пиздец" in message.text:
        # detected, remove
        await message.delete()
    elif "Сука" in message.text:
        # detected, remove
        await message.delete()
    elif "пидор" in message.text:
        # detected, remove
        await message.delete()
    elif "Пидор" in message.text:
        # detected, remove
        await message.delete()
    elif "Блядь" in message.text:
        # detected, remove
        await message.delete()
    elif "блядь" in message.text:
        # detected, remove
        await message.delete()
    elif "Бля" in message.text:
        # detected, remove
        await message.delete()
    elif "бля" in message.text:
        # detected, remove
        await message.delete()
    elif "ебать" in message.text:
        # detected, remove
        await message.delete()
    elif "Ебать" in message.text:
        # detected, remove
        await message.delete()
    elif "на хуй" in message.text:
        # detected, remove
        await message.delete()
    elif "На хуй" in message.text:
        # detected, remove
        await message.delete()
    elif "еблан" in message.text:
        # detected, remove
        await message.delete()
    elif "Еблан" in message.text:
        # detected, remove
        await message.delete()
    elif "лох" in message.text:
        # detected, remove
        await message.delete()
    elif "Лох" in message.text:
        # detected, remove
        await message.delete()


   
#
if __name__ == "__main__":
    executor.start_polling(dp, skip_updates=True)
 

Vershitel_sudeb

Vershitel sudeb
Команда форума
Модератор
Мар 17, 2021
933
208
43
20
Москва
1) Я так понял ошибка в том, что при вызове функции message_delete вы передаёт передаёт первым аргументом messages id, а должны передавать chat_id

2) Ваша проверка слов очень не совершенная, лучше использовать хотя бы такую:
Python:
mat = ["мат1", "мат2", "мат3"] 
if any([i for i in mat if i in message.text.lower()]):
    ban()
 

Форум IT Специалистов