Тут наглядно видно о чём вопрос. На двух изображениях разные сообщения, но на первой фотке сообщения как-бы «соединены», а на второй идут отдельно. Так сколько нужно ждать чтобы шли по отдельности? Знаю, вопрос очень тупой, но мне интересно.
Технологии Программирование +3
18 октября 2022 ·
IT аутсорсинг для малого и среднего бизнеса. · 19 окт 2022 · socialit.ru
В Интернете пишут, что между сообщениями должно пройти минимум 7 минут. Проверил сейчас у себя, похоже на правду.
Много пользователей просят сократить это время, потому что объединение сообщений бывает не очень удобным. Но пока что остается что-то около 7 минут.
Источник: ya.ru
Как я могу получить количество сообщений, отправленных пользователем на сервере Discord, без discord.py?
Используя функцию поиска Discord вручную, вы можете ввести что-то вроде from:user#3456 и он покажет вам, сколько сообщений они отправили на сервер (по крайней мере, сообщений, к которым у вас есть доступ).
Мне сказали, что невозможно получить эту информацию через discord.py, но действительно ли вообще нет способа получить эти данные? Придется ли мне прибегать к инструменту для очистки веб-страниц?
Для ясности, я уже смотрел на это. Я ищу способ получить доступ к функции поиска, которая уже есть в Discord.
user13010844 26 авг ’20 в 04:11 2020-08-26 04:11
2020-08-26 04:11
2 ответа
На самом деле это возможно с помощью discord.TextChannel.history . Вот пример:
userMessages = [] userID = 1234567890 # Change this to the ID of the user you are looking messages for channelID = 1234567890 # Change this to the channel ID of the messages you want to check for channel = client.get_channel(channelID) user = discord.utils.find(lambda m: m.id== userID, channel.guild.members) async for message in channel.history(): if message.author == user: userMessages.append(message.content) print(len(userMessages)) # Outputs total user messages
Убедитесь, что вы заменили 1234567890 с соответствующими идентификаторами.
Я добавил массив, который также показывает все сообщения пользователя, если вы предпочитаете, вы можете удалить его и вместо этого увеличить счетчик.
user11229214 26 авг ’20 в 04:26 2020-08-26 04:26
2020-08-26 04:26
Я решил это хакерским способом, выполнив поиск с помощью from:username запрос в приложении Discord, просмотр http-запроса с помощью Chrome DevTools и, наконец, воссоздание запроса с помощью модуля python requests .
В Discord вы можете открыть DevTools с помощью ctrl+shift+i в Windows или Linux, command+option+i на Mac.
В DevTools перейдите к Network таб.
Я предлагаю заполнить поисковый запрос (но не нажимать ввод), затем открыть инструменты разработчика, затем нажать ввод в поиске. В противном случае по мере ввода будет появляться множество HTTP-запросов.
Затем вы найдете запрос с именем, которое выглядит как «search? Author_id=1234567890». Если вы нажмете на этот запрос, вы увидите детали, необходимые для его воссоздания.
Ключевые части http-запроса, которые вам нужно использовать, — это Request Headers раздел и Request URL под General раздел, все в Headers вкладка, которая появляется при первом нажатии на запрос, а Response вкладку, чтобы увидеть, как будет выглядеть ваш ответ.

В accept-encoding атрибут заголовков запроса включает br , но это, кажется, смешивает результат. Сохраняя это просто gzip, deflate работает для меня.
С использованием requests модуль python, это должно быть довольно легко настроить. Пока br не указан в accepted-encoding , вы сможете использовать json() метод requests , а для конкретной проблемы поиска общего количества сообщений, отправленных пользователем (чей идентификатор вы должны вставить в URL-адрес запроса), он просто доступен с помощью my_request_variable.json()[‘total_results’] .
Главное, на что нужно обратить внимание, — это authorization заголовок запроса. Это уникально для пользователя (вас, если вы не делаете все это из чужой учетной записи), и, к сожалению, вы не можете заменить его на токен бота Discord.
Источник: stackru.com
Как проверить в лс ли сообщение discord.py?
Я хочу, чтобы при сообщении бот проверял в лс ли ему отправили это сообщение. К примеру, отправляют «привет» в лс боту, и он отвечает тоже «Привет». А если не в лс, а на каких-либо серверах, то он просто не реагирует. Можно ли так сделать?
- Вопрос задан более года назад
- 387 просмотров
Решения вопроса 0
Ответы на вопрос 1
Использовать свойство channel.type. Для команд также можно использовать декоратор commands.dm_only.
Ответ написан более года назад
Нравится Комментировать
Ваш ответ на вопрос
Войдите, чтобы написать ответ

- discord.py
Почему бот не может найти профиль игрока?
- 1 подписчик
- 05 июн.
- 40 просмотров

- discord.py
Возможно ли как-то дискорд-боту выдать высшую роль или ещё выше участнику сервера?
- 1 подписчик
- 04 июн.
- 39 просмотров
Источник: qna.habr.com