界面已本地化;技能介绍与说明文档按所选语言由 AI 自动翻译,代码、命令、路径和专业术语保留原文,以原作者文档为准。
探索技能
开发与工程 · SKILL.md

discord-watcher

discord-watcher

【开发与工程】Use this skill to keep up to date with specific Discord channels by fetching recent messages. Requires DISCORD_TOKEN.

独立 GitHub 快照 · 自动分类 · 以原作者文档为准

技能说明

GitHub

name: discord-watcher description: Use this skill to keep up to date with specific Discord channels by fetching recent messages. Requires DISCORD_TOKEN.

Discord Watcher

This skill uses DiscordChatExporter to fetch recent messages from ALL accessible Discord channels.

Prerequisites

  • DISCORD_TOKEN: Must be set in the environment or passed to the script.
  • DiscordChatExporter (CLI): Must be installed in a dce subdirectory.

Installation

  1. Download the CLI version of DiscordChatExporter from GitHub: https://github.com/Tyrrrz/DiscordChatExporter/releases (Look for DiscordChatExporter.Cli.linux-x64.zip or your OS equivalent)

  2. Extract it to a dce folder inside this skill's directory:

    mkdir -p skills/discord-watcher/dce
    unzip DiscordChatExporter.Cli.linux-x64.zip -d skills/discord-watcher/dce
    chmod +x skills/discord-watcher/dce/DiscordChatExporter.Cli
    

Usage

Run the update script to fetch messages from the last 24 hours across all channels:

./skills/discord-watcher/update.sh [TOKEN]

The script can be run from any directory (it auto-detects its location).

This will:

  1. Create a timestamped directory in exports/updates/.
  2. Export all new messages (last 24h) from every channel you can see.
  3. Save them as plain text files organized by server and category.

Token retrieval (browser method)

If you need help obtaining DISCORD_TOKEN from a logged-in browser session, the following in-page technique (run from a page context where script evaluation is allowed) reliably extracts the token from localStorage using an injected iframe. Treat the token as a secret once retrieved.

JavaScript snippet (run in the page context via an automation tool that can evaluate page scripts):

// Inject a hidden iframe and read its localStorage 'token' key
(() => {
  try {
    const iframe = document.createElement('iframe');
    iframe.style.display = 'none';
    document.documentElement.appendChild(iframe);
    const token = iframe.contentWindow.localStorage.getItem('token');
    iframe.remove();
    return {ok: !!token, method: 'iframe', token};
  } catch (e) {
    return {ok: false, error: e.toString()};
  }
})();

Notes and alternatives:

  • Some automation contexts cannot access page localStorage directly; the iframe technique often bypasses that limitation.
  • An alternative is the "webpack chunk" method to locate Discord's internal token getter; use with care.
  • Never commit tokens to source control. Store them in a .env file or environment variable instead.

Automation

To keep updated automatically, you can add a HEARTBEAT.md entry:

- [ ] Every 6 hours: Run `skills/discord-watcher/update.sh` and summarize any new important discussions in `memory/discord-news.md`.

Search & Indexing (Recommended)

The exported text files are perfect for indexing with qmd.

  1. Create a collection:

    qmd collection add exports/updates --name discord-logs --mask "**/*.txt"
    

    Note: Ensure you use the --mask "**/*.txt" flag as the exporter saves plain text files.

  2. Update index:

    qmd update
    
  3. Search:

    qmd search "query"
    
我的收藏