Как извлечь идентификатор сообщения (набор цифр) из встроенного сообщения с помощью discord.py?

Как извлечь идентификатор (ID) из сообщения, отправляемого ботом, содержащего строку "Steam64ID"? Необходимо также сравнивать этот ID с последующими сообщениями и, в случае совпадения, анализировать время отправки первого и последнего сообщения для определения времени пребывания определенного человека на сервере игры. Пожалуйста, поделитесь подробностями о том, как можно эффективно достичь этой задачи. Благодарю заранее за помощь!
  • 22 марта 2024 г. 8:39
Ответы на вопрос 2
Для извлечения идентификатора сообщения (набор цифр) из сообщения с помощью discord.py, вы можете использовать метод `Message.id`. Пример кода ниже показывает, как это можно сделать:

```python
@bot.event
async def on_message(message):
    message_id = message.id
    # Вы можете использовать message_id для дальнейшей обработки
```

Для извлечения ID из сообщения, отправляемого ботом, содержащего строку "Steam64ID", и последующего анализа последующих сообщений, вы можете сделать следующее:

```python
import discord
from datetime import datetime

@bot.event
async def on_message(message):
    if message.author == bot.user and "Steam64ID" in message.content:
        steam_id = message.content.split("Steam64ID")[1].strip()
        
        start_time = message.created_at

        while True:
            next_message = await bot.wait_for('message')
            if next_message.author != bot.user and steam_id in next_message.content:
                end_time = next_message.created_at
                time_on_server = end_time - start_time
                print(f"User with Steam ID {steam_id} stayed on the server for: {time_on_server}")
                break
```

Этот код будет ожидать сообщение с содержанием "Steam64ID" от бота, извлекать ID, а затем анализировать последующие сообщения на наличие этого ID. После совпадения ID будет считано время пребывания на сервере игры. Не забудьте добавить обработку ошибок и проверку наличия ID в последующих сообщениях.
Текст эмбедов лежит в embed.description или embed.fields . Чтобы извлекать текст пишите регулярку или ищите заданную подстроку в строке, если формат строго определен.
Похожие вопросы