Как узнать есть ли файл в сообщении discord py

Я использую discord.py, чтобы создать своего бота Discord, и когда кто-то набирает сообщение, я хочу проверить, позволяет ли пользователь сказать foo # 3645, а затем сделать что-то, если это не так, тогда сделайте что-то еще

if (messageAuthor = foo#3465″): # do something

но по какой-то причине это не работает .

Если вам нужна дополнительная информация, прокомментируйте.

Комментарии (1)

ctx.message.author не содержит имени, я думаю, вы ищете ctx.message.author.name (см. discordpy.readthedocs.io/en/rewrite/…). Хотя вам лучше использовать идентификатор, как ответил MCO.

06.09.2018 16:56

Оператор pass в Python — это простая концепция, которую могут быстро освоить даже новички без опыта программирования.

Python — самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science.

Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это

Making a Discord Bot In Python (Part 1: Setup)

Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.

Перейти к ответу Данный вопрос помечен как решенный

Ответы 4

Ответ принят как подходящий

если вам нужна надежная проверка, проверьте идентификаторы пользователей:

if author.id == 170733454822341405: #do something
06.09.2018 17:05

Представление str для User (включая Member ) будет их именем пользователя (а не псевдонимом для конкретного сервера) и дискриминатором (используемым для различения людей с одним и тем же именем пользователя).

Еще по теме:  Как найти дискорд на ПК

if str(ctx.message.author) == «foo#3465»: .

Тем не менее, вы должны проверять id , так как человек может изменить свое имя пользователя в Discord. id — это строки в асинхронной ветви discord.py и целые числа в discord.py-перезаписать

06.09.2018 17:13

Мне кажется, что вы пытаетесь сравнить экземпляр «автора» с именем и дискриминатором. Что вам нужно сделать, это либо: 1) найдите члена с именем «foo # 3465» и сравните ЭТО с ctx.message.author или «messageAuthor»

member = discord.utils.get(message.guild.members, name=’Foo’) if member == messageAuthor: #do something else: #do something else

или, в качестве альтернативы, вы можете: 2) сравните messageAuthor.name с «foo» или str (messageAuthor) с «foo # 3465»

06.09.2018 17:19

Лучше всего проверить идентификатор пользователя. Согласно документы, User.id является целым числом, а не строкой, поэтому принятый ответ может не работать. message.author относится к типу User .

Вот что сработало для меня:

if message.author.id = 170733454822341405: #do something

Чтобы получить чей-либо идентификатор пользователя вручную, включите режим разработчика в Discord (настройки пользователя -> внешний вид -> расширенный), затем просто щелкните правой кнопкой мыши в любом месте пользователя и нажмите кнопку копирования идентификатора.

[NEW] Slash Commands in Less than 10 Minutes Using Discord.PY

Источник: reddeveloper.ru

Есть ли способ проверить, содержит ли файл message.content на Discord файл?

На моем сервере Discord у меня есть канал #selfies, где люди обмениваются фотографиями и общаются с ними. Время от времени я хотел бы как-то обрезать все сообщения, которые не содержат файлов/изображений. Я пробовал проверять документацию, но я не видел никакого способа сделать это. Разве это невозможно?

cute 15 янв. 2018, в 02:59
Поделиться
Я думаю, что вы должны смотреть либо на discord.Message.attachments либо на discord.Message.embeds
Patrick Haugh 15 янв. 2018, в 01:18

Еще по теме:  Как поменять голос на ПК в дискорде

Поделиться:

2 ответа

Я не слишком хорошо знаком с discord.py (поскольку я использую discord.js ), но если это похоже на discord.js должно быть message event . Это событие будет выполняться на каждом сообщении, которое идеально подходит для того, что вы ищете сейчас. Теперь для псевдокода.

//written in javascript Message event: On each message < if(message.attachments.size >

Общая идея заключается в том, что с использованием message event (например, для каждого message ) вы проверяете, превышает ли список вложений в message больше 0 (что означает, что он содержит файл или изображение), а если нет, вызовите функцию delete() в python для удаления message .

Источник: overcoder.net

Как сделать что бы бот ожидал пока пользователь прикрепит файл, а потом сохранит его в discord.py?

Вот код сохранения файла, он будет работать если внедрить в структуру on_message. Но мне нужно сделать что бы бот ожидал, пока пользователь отправит файл, а потом эта часть кода сделает свое дело, и как это сделать я не знаю

  • Вопрос задан более года назад
  • 89 просмотров

Решения вопроса 0
Ответы на вопрос 2

Vindicar

Отправленный файл — это ведь тоже сообщение, просто с прикреплённым аттачем. Почему бы не обрабатывать сообщения от пользователей и смотреть аттачи? Строго говоря, файл и команда могут вообще быть в одном сообщении, хотя это несколько менее удобно.
А вообще ты встретился с необходимостью в машине состояний. В discord.py её вроде нет «из коробки», придётся самому реализовывать. Это не так сложно, просто нужно вести список или словарь пользователей, от которых мы ждём файл. При поступлении сообщения с файлом смотрим, есть ли отправитель в этом списке. Если есть, обрабатываем файл и убираем его оттуда, если нет — игнорируем сообщение.
С таймаутом сложнее, но можно в списке хранить не id пользователя, а пары id-метка времени. Тогда можно будет понять, когда был послан запрос, и периодически удалять «старые» записи из списка.

Еще по теме:  В доте не работает дискорд

Ответ написан более года назад

В discord.py есть функция wait_for, которая ждёт определённое событие, и если такое произошло, то оно возвращает результат.

msg = await bot.wait_for(‘message’, timeout=60, check=lambda m: m.channel == message.channel and m.author == message.author) for attach in msg.attachments: await attach.save(f»./.png»)
Ответ написан более года назад
Ваш ответ на вопрос

Вопрос закрыт для ответов и комментариев

Потому что уже есть похожий вопрос.

python

  • Python
  • +1 ещё

Как переустановить компонент python? Как сделать Portable версию python?

  • 1 подписчик
  • 44 минуты назад
  • 8 просмотров

Источник: qna.habr.com

Рейтинг
( Пока оценок нет )
Загрузка ...