@cyz
Усталый одинокий пелимень˘ o ˘

Как вывести каждый инвайт из списка guild.invites в discord.py?

Мне нужно отправить в чат каждый инвайт из списка инвайтов сервера. Я пытался сдeлать это с помощью "for i in guild.invites", но при запуске команды (не при первоначальном запуске) мне выводило ошибку:
Ignoring exception in command gl:
Traceback (most recent call last):
  File "/data/user/0/ru.iiec.pydroid3/files/arm-linux-androideabi/lib/python3.8/site-packages/discord/ext/commands/core.py", line 85, in wrapped
    ret = await coro(*args, **kwargs)
  File "<string>", line 18, in gl
TypeError: 'coroutine' object is not iterable

The above exception was the direct cause of the following exception:

Traceback (most recent call last):
  File "/data/user/0/ru.iiec.pydroid3/files/arm-linux-androideabi/lib/python3.8/site-packages/discord/ext/commands/bot.py", line 939, in invoke
    await ctx.command.invoke(ctx)
  File "/data/user/0/ru.iiec.pydroid3/files/arm-linux-androideabi/lib/python3.8/site-packages/discord/ext/commands/core.py", line 863, in invoke
    await injected(*ctx.args, **ctx.kwargs)
  File "/data/user/0/ru.iiec.pydroid3/files/arm-linux-androideabi/lib/python3.8/site-packages/discord/ext/commands/core.py", line 94, in wrapped
    raise CommandInvokeError(exc) from exc
discord.ext.commands.errors.CommandInvokeError: Command raised an exception: TypeError: 'coroutine' object is not iterable
/data/user/0/ru.iiec.pydroid3/files/arm-linux-androideabi/lib/python3.8/asyncio/events.py:81: RuntimeWarning: coroutine 'Guild.invites' was never awaited
  self._context.run(self._callback, *self._args)
RuntimeWarning: Enable tracemalloc to get the object allocation traceback

Вот код команды:
@bot.command()
async def gl(ctx):
	il = ctx.guild.invites() #Берем список инвайтов в сервере и посещаем в il
	for i in il:
		emb = discord.Embed(title="IL", type="rich", colour=discord.Color.dark_blue()) #Создаем эмбед для красоты вывода
		emb.add_field(name="SCR:",value=f"{i}")
		await ctx.send(embed=emb) #Отправляем сообщение

Подскажите, как это исправить!
  • Вопрос задан
  • 312 просмотров
Решения вопроса 1
SoreMix
@SoreMix Куратор тега Python
yellow
await потеряли

il = await ctx.guild.invites()
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
phaggi
@phaggi Куратор тега Python
лужу, паяю, ЭВМы починяю
По правилам языка for i in guild.invites:
пытается итерировать сам объект метода, а не то, что он возвращает.
Возможно, надо:
for i in guild.invites():
Возможно, дело не в этом - я не знаю, что там возвращает метод. Но из того, что вы показали, я могу предположить только это.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Похожие вопросы