Discord Digest

v1.1.0

Generate formatted digests from Discord servers using a user token. Reads messages from selected channels/threads and creates concise summaries with links. U...

0· 681· 2 versions· 0 current· 0 all-time· Updated 18h ago· MIT-0
byNikoxyz@nikolaybohdanov

Discord Digest

Generate formatted digests from Discord servers. Reads channels via user token (no bot required).

Setup

1. Set Discord User Token

Get token from browser: Discord (web) → F12 → Network → any API request → Headers → Authorization value.

python3 scripts/config_manager.py set-token "YOUR_TOKEN"

2. Scan & Select Servers

List all servers the user belongs to:

python3 scripts/discord_api.py "TOKEN" guilds

3. Scan & Select Channels

List channels for a specific server:

python3 scripts/discord_api.py "TOKEN" channels SERVER_ID

4. Add Server to Config

python3 scripts/config_manager.py add-server '{"id":"SERVER_ID","name":"Server Name","channels":[{"id":"CH_ID","name":"channel-name","type":"text"}]}'

Usage

Generate Digest

python3 scripts/run_digest.py [--hours 24] [--server SERVER_ID]

Validate Token

python3 scripts/discord_api.py "TOKEN" validate

Token Expiry Handling

Before each digest run, the token is validated via GET /users/@me. If it returns 401:

  1. Notify user: "⚠️ Discord token expired, send new token"
  2. Wait for new token
  3. Update config: python3 scripts/config_manager.py set-token "NEW_TOKEN"
  4. Retry digest

Output Format

**#SERVER_NAME DD.MM.YY**

[→post](message_url) | 📝 channel-name
**Post Title**
Details: Brief 1-sentence summary of the post content
Links: [source 1](url) | [source 2](url)

Config File

Located at ~/.openclaw/workspace/config/discord-digest.json:

{
  "discord_token": "...",
  "servers": [
    {
      "id": "829331298878750771",
      "name": "DOUBLETOP SQUAD",
      "channels": [
        {"id": "1238663837515911198", "name": "drops-alerts", "type": "text"}
      ]
    }
  ],
  "digest_period_hours": 24
}

Scripts

ScriptPurpose
discord_api.pyDiscord HTTP API client (user token auth)
digest_formatter.pyFormat messages into digest
config_manager.pyManage token, servers, channels config
run_digest.pyMain entry: validate → read → format

Rate Limits

Discord API rate limits: ~1 req/sec with automatic retry on 429. The scripts include built-in rate limit handling with exponential backoff.

Important Notes

  • User tokens may violate Discord ToS — use at your own risk for personal use only
  • Token can expire; the skill includes validation and notification flow
  • No external dependencies — uses only Python 3 stdlib (urllib, json)

Version tags

latestvk97bfjmfsk7v36j9a9qtg9pn0s81dxxx