Как я могу получить список участников в голосовом канале от моего бота? - PullRequest
0 голосов
/ 15 февраля 2020
from django.shortcuts import render, redirect
import discord
import random
from discord.ext import commands


client = commands.Bot(command_prefix = '.')
channel = None

@client.event
async def on_ready():
    channel = client.get_channel(677999369642836037)

async def members_list(request):
    curMembers = []
    for member in channel.members:
        curMembers.append(member)

    return render(request, "discordTool/discordTool.html", {
        'members_list': curMembers,
    })

client.run('my token')

Это мой views.py приложения, которое предполагает показ активных участников в голосовом канале на моем django сайте. Однако, это не работает, кто-нибудь может мне помочь или узнать сервер Discord об API Discord?

1 Ответ

0 голосов
/ 15 февраля 2020

Это потому, что channel = client.get_channel(677999369642836037) находится внутри события on_ready, что делает его локальной переменной. К нему нельзя получить доступ за пределами локальной сопрограммы.

Вам необходимо либо сделать ее глобальной переменной, либо переместить ее внутрь members_list сопрограммы.

from django.shortcuts import render, redirect
from discord.ext import commands


client = commands.Bot(command_prefix = '.')

async def members_list(request):
    channel = client.get_channel(677999369642836037)
    curMembers = []
    for member in channel.members:
        curMembers.append(member)

    return render(request, "discordTool/discordTool.html", {
        'members_list': curMembers,
    })

client.run('my token')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...