@buxoy

Из за чего не происходит разбан в tasks PYTHON?

Спустя много проверок и тестов дошел до возможного победного конца своего кода, но вдруг что то пошло не так и разбан через tasks не хочет работать.

@tasks.loop(seconds=5.0)
async def check_for_unban():
	for guild in client.guilds:
		active_ban = database_handler.active_ban_to_revoke(guild.id)
		if len(active_ban) > 0:
			for row in active_ban:
				database_handler.revoke_ban(row["id"])
				member = guild.get_member(row["user_id"])
				await guild.unban(member)


Ошибка:

Unhandled exception in internal background task 'check_for_unban'.
Traceback (most recent call last):
File "/home/container/.local/lib/python3.9/site-packages/nextcord/ext/tasks/__init__.py", line 156, in _loop
await self.coro(*args, **kwargs)
File "/home/container/pterohost.py", line 161, in check_for_unban
await guild.unban(member)
File "/home/container/.local/lib/python3.9/site-packages/nextcord/guild.py", line 2930, in unban
await self._state.http.unban(user.id, self.id, reason=reason)
AttributeError: 'NoneType' object has no attribute 'id'
  • Вопрос задан
  • 72 просмотра
Пригласить эксперта
Ответы на вопрос 2
fenrir1121
@fenrir1121 Куратор тега discord.py
Начни с документации
Из-за того что get_member ничего не вернул, а вы это не проверили
Ответ написан
Комментировать
Судя по тому, что вы пытаетесь разбанить пользователя на сервере - на сервере его нет. Но при этом Вы же пытаетесь получить пользователя из списка пользователей на сервере.

guild.unban в качестве user принимает любой объект основанный на абстрактном классе abc.Snowflake
6tmo54c.png
abc.Snowflake в свою очередь является классом с одним единственным атрибутом - ID
75tiDM4.png

Для создания собственного объекта предлагается использовать класс Object, таким образом:
member = discord.Object(row["user_id"])  # row["user_id"] должен быть типа int
        await guild.unban(member)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы