Discord.py переписать и отправить изображения - AttributeError: у объекта «list» нет атрибута «send» - PullRequest
0 голосов
/ 15 апреля 2020

Я - промежуточный пользователь python и достаточно опытный пользователь Selenium, и хотел объединить эти навыки с моими небольшими знаниями о новой перезаписи discord.py. Созданный мною код запускает селен без заголовка - он переходит на веб-сайт, заполняет форму, а затем делает снимок экрана. Проблема, с которой я столкнулся, связана с функцией файла channel.send в файле discord.py. Вот мой код -

async def on_message(message):
    id = client.get_guild(guildcode)
    valid_users = ["discord#tag"]
    if str(message.author) in valid_users:
        if message.content.find("!gen") != -1:
            await message.channel.send("Generating coupon now...")
            driver.get('example.com')
            elem = driver.find_element_by_name("CN1")
            elem.click()
            elem.clear()
            surveyCode = '36901999912012386'
            elem.send_keys(surveyCode)
            clicksDone = 0
            while int(clicksDone) < 25:
                elem = driver.find_element_by_id('NextButton')
                elem.click()
                clicksDone = clicksDone + int('1')
            if clicksDone == 25:
                driver.get_screenshot_as_file('capture.png')
                await message.channel.send('Generated!')
                await channel.send(file=discord.File('capture.png'))

Бот правильно заполняет опрос, выводит, что он сгенерировал купон, но не может отправить недавно сделанный снимок экрана - capture.png. Вот ошибки, с которыми я столкнулся -

Ignoring exception in on_message
Traceback (most recent call last):
  File "C:\Users\hp\PycharmProjects\telldunkin\venv\lib\site-packages\discord\client.py", line 312, in _run_event
    await coro(*args, **kwargs)
  File "C:/Users/hp/PycharmProjects/telldunkin/discorddonut.py", line 37, in on_message
    await channel.send(file=discord.File('capture.png'))
NameError: name 'channel' is not defined

Когда я избавляюсь от кода отправляемого файла, ошибок не возникает. Заранее благодарю за любую помощь.

1 Ответ

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

В приведенном вами фрагменте кода я не вижу определения channel, я думаю, это список, определенный ранее. Ваша проблема в том, что вы делаете channel.send, а не message.channel.send Я думаю.

РЕДАКТИРОВАТЬ: Я пропустил, python говорят, что есть ошибка в строке channel.send(message, image), но эта строка не в вашей фрагмент кода.

Здесь python говорит, что channel не определено, и это правда, в вашем коде нет channel = .... Метод send должен использоваться для действительного объекта discord.Channel, и здесь вы можете получить канал сообщения с помощью message.channel. Для отправки файла вы должны использовать message.channel.send, как обычное сообщение.

...