discrawl
discrawl

discrawl 最新版

官方版无广告2

discrawl 是一个用 Go 编写的高性能工具,它能将 Discord 公会(Server)的数据完整镜像到本地的 SQLite 数据库中。一旦数据落地,你就可以利用强大的 FTS5 全文搜索引擎 进行毫秒级文本检索,甚至直接使用 SQL 进行复杂的数据分析,而无需再依赖 Discord 那捉襟见肘的云端搜索。

更新日期:
2026年3月9日
语言:
中文
平台:

4.6MB0 人已下载 手机查看

Discord 的原生搜索功能不仅慢,而且经常遗漏关键信息。更重要的是,你无法对历史数据进行深度分析。”

"discrawl 的出现,就是为了让你的 Discord 服务器数据真正属于你——本地存储、本地索引、本地查询。”

discrawl 是一个用 Go 编写的高性能工具,它能将 Discord 公会(Server)的数据完整镜像到本地的 SQLite 数据库中。一旦数据落地,你就可以利用强大的 FTS5 全文搜索引擎 进行毫秒级文本检索,甚至直接使用 SQL 进行复杂的数据分析,而无需再依赖 Discord 那捉襟见肘的云端搜索。

🚀 核心特性:为什么你需要 discrawl?

1. 🗄️ 本地化数据主权

  • 完全离线可用:所有频道、子区、成员、消息历史均同步至本地 discrawl.db。即使断网,也能随时查阅历史记录。
  • 隐私安全:数据仅存储在你的机器上,不经过任何第三方云服务。
  • 正规协议:基于 Bot Token 运行,完全符合 Discord API 规范,绝不使用 高风险的用户 Token Hack 手段,账号安全有保障。

2. ⚡ 极速全文搜索 (FTS5)

  • 毫秒级响应:内置 SQLite FTS5 索引,搜索千万级消息也只需瞬间。
  • 智能提取:不仅搜索消息文本,还能提取并索引 小文本类附件嵌入内容 (Embeds) 和 回复引用
  • 结构化查询:支持按作者、频道、时间范围、提及对象(用户/角色)进行组合筛选。

3. 🔄 实时同步与自愈

  • Gateway 监听:运行 tail 模式后,工具会监听 Discord Gateway 事件,新消息实时入库。
  • 定期修复:内置周期性修复循环,自动补全因网络波动丢失的数据块,确保数据完整性。

4. 🔌 OpenClaw 生态无缝集成

  • 配置复用:如果你已经在使用 OpenClaw,discrawl 可以直接读取 ~/.openclaw/openclaw.json 中的 Discord 配置,无需重复设置 Token。
  • 多公会支持:架构设计原生支持多公会镜像,同时保留简单的单公会默认体验。

🛠️ 快速开始:5 分钟构建本地知识库

前置条件

  • Go 1.26+ (用于源码编译) 或 Homebrew (macOS/Linux)
  • Discord 机器人 Token (需开启 Server Members Intent 和 Message Content Intent)

第一步:安装

源码编译:

git clone https://github.com/steipete/discrawl.git
cd discrawl
go build -o bin/discrawl ./cmd/discrawl

Homebrew 安装:

brew tap steipete/tap
brew install steipete/tap/discrawl

第二步:配置与初始化

方案 A:复用 OpenClaw 配置 (推荐)
如果你已配置过 OpenClaw,只需一行命令:

bin/discrawl init --from-openclaw ~/.openclaw/openclaw.json

方案 B:纯环境变量设置

export DISCORD_BOT_TOKEN="你的机器人令牌"
bin/discrawl init

init 命令会自动发现机器人可访问的公会,并生成 ~/.discrawl/config.toml

第三步:健康检查与全量同步

# 检查配置、Token 权限及数据库连接
bin/discrawl doctor

# 开始全量同步 (多线程并行,自动调整并发数)
bin/discrawl sync --full

第四步:实时监听 (可选)

让工具在后台运行,实时捕获新消息:

bin/discrawl tail
# 或指定每 30 分钟进行一次修复性同步
bin/discrawl tail --repair-every 30m

💡 实战用法:像黑客一样查询数据

1. 全文搜索 (Search)

# 基础搜索
bin/discrawl search "panic: nil pointer"

# 组合筛选:在 #billing 频道,搜索 steipete 发送的包含 "invoice" 的消息
bin/discrawl search --channel billing --author steipete "invoice"

# 输出 JSON 格式,方便脚本处理
bin/discrawl --json search "websocket closed"

2. 消息列表 (Messages)

# 查看 #maintainers 频道过去 7 天的所有消息
bin/discrawl messages --channel maintainers --days 7 --all

# 查看某用户最近 50 条消息
bin/discrawl messages --channel maintainers --author steipete --limit 50

# 强制先同步最新数据再查询
bin/discrawl messages --channel maintainers --last 100 --sync

3. 提及分析 (Mentions)

# 查找过去 7 天内所有提及 @steipete 的消息
bin/discrawl mentions --target steipete --type user --days 7

# 查找所有提及 @Admin 角色的消息
bin/discrawl mentions --target Admin --type role

4. 直接 SQL 查询 (Advanced)

这是 discrawl 最强大的功能。你可以直接对本地数据库执行任意只读 SQL:

# 统计总消息数
bin/discrawl sql 'select count(*) as messages from messages'

# 按公会统计消息分布
echo 'select guild_id, count(*) from messages group by guild_id' | bin/discrawl sql -

# 找出最活跃的前 10 个用户
bin/discrawl sql 'select author_id, count(*) as cnt from messages group by author_id order by cnt desc limit 10'

5. 成员与频道管理

# 搜索成员 (支持模糊匹配名称及离线资料)
bin/discrawl members search "peter"

# 查看频道列表
bin/discrawl channels list

🔒 安全与权限说明

discrawl 严格遵循最小权限原则,但为了完整功能,你的机器人需要以下权限:

  • 意图 (Intents):
    • SERVER MEMBERS INTENT (用于同步成员列表)
    • MESSAGE CONTENT INTENT (用于读取消息内容)
  • 频道权限:
    • View Channels
    • Read Message History

注意:如果没有这些权限,同步将不完整或失败。请在 Discord Developer Portal 中仔细配置。

📊 数据存储结构

默认情况下,discrawl 将所有数据存储在用户主目录下:

  • 配置~/.discrawl/config.toml
  • 数据库~/.discrawl/discrawl.db (SQLite + FTS5)
  • 缓存~/.discrawl/cache/
  • 日志~/.discrawl/logs/

这种结构清晰、独立,便于备份和迁移。

相关软件

EchoTrace

EchoTrace - 最新版

EchoTrace 是一个完全本地的微信聊天记录导出、分析与年度报告生成工具。它可以解密你的微信聊天记录并保存在本地离线查看,也可以将其导出为HTML等与朋友分享,还可以根据你的聊天记录为你生成独一无二的分析报告

暂无评论

none
暂无评论...