Tootbot

🐘 高效命令行 Mastodon 发布助手

通过 Bun 脚本向 Mastodon 发布文本、媒体附件及定时动态,支持多实例与细粒度权限控制。

收藏
11.3k
安装
2.7k
版本
0.5.0
CLS 安全性认证2026-06-04
点击查看完整报告 >

使用说明

核心用法

Mastodon Publisher 是一款面向命令行的 Mastodon 内容发布工具,基于 Bun 运行时执行。用户通过调用 tootbot.js 脚本并传入 JSON 参数,即可实现以下功能:

  • 发布文本动态:支持纯文本或多条连续发布
  • 媒体附件上传:可附带多张图片并添加无障碍描述(alt text)
  • 定时发布:通过 scheduledAt 字段指定 RFC3339 格式的未来时间
  • 可见性与权限控制:支持 public/unlisted/private/direct 四种可见级别,以及 quoteApprovalPolicy 管理引用权限
  • 多语言支持:ISO 639-1 语言代码标记

使用示例

# 基础发布
bun {baseDir}/scripts/tootbot.js '{"status": "Hello, Mastodon!"}'

# 带媒体附件的定时发布
bun {baseDir}/scripts/tootbot.js <<EOF
{
  "status": "Dorood",
  "visibility": "public",
  "language": "fa",
  "scheduledAt": "2029-02-03T15:30:45.000Z",
  "media": [{"file": "/path/to/image.png", "description": "Nowrooz"}]
}
EOF

显著优点

1. 轻量高效:基于 Bun 运行时,启动速度快,资源占用低
2. 功能完整:覆盖 Mastodon API 核心功能(媒体上传、定时发布、权限控制)

3. 灵活调用:支持命令行传参、heredoc 多行输入,易于集成到自动化工作流

4. 无障碍友好:强制支持媒体描述字段,提升内容可访问性

潜在缺点与局限性

  • 依赖单一运行时:必须安装 Bun,Node.js 用户需额外配置环境
  • 无交互式界面:纯命令行工具,对非技术用户门槛较高
  • 令牌管理风险:依赖环境变量 MASTODON_ACCESS_TOKEN,若配置不当存在泄露风险
  • 错误处理不详:文档未明确说明 API 失败时的重试机制或错误码解析
  • 版本较早期:v0.5.0 可能存在未覆盖的边界场景

适合人群

  • 开发者与运维人员,需将 Mastodon 发布集成到 CI/CD 或自动化脚本
  • 内容创作者,追求批量定时发布效率
  • 隐私意识用户,偏好自托管工具而非第三方 SaaS

常规风险

| 风险类型 | 说明 |
|---------|------|
| 令牌泄露 | `MASTODON_ACCESS_TOKEN` 需妥善保管,避免提交至版本控制 |
| 实例锁定 | 高频发布可能触发 Mastodon 实例的速率限制 |
| 定时任务失败 | 依赖系统时间准确性,`scheduledAt` 过早或格式错误会导致发布失败 |
| 媒体路径错误 | 本地文件路径需确保脚本执行时可访问,否则上传中断 |

总体评价

适合技术用户的高效 Mastodon 发布工具,功能覆盖全面但需关注令牌安全与运行时依赖。

安全解读

核心用法

Mastodon Publisher 是一款面向 Mastodon 联邦社交网络的专业发布工具,通过 bun 运行时调用 tootbot.js 脚本实现内容发布。用户可通过 JSON 参数构造请求,支持纯文本动态、多媒体附件、定时发布(scheduledAt)、可见性控制(visibility)及引用权限管理(quoteApprovalPolicy)等完整功能集。

典型调用方式

# 基础发布
bun {baseDir}/scripts/tootbot.js '{"status": "Hello, Mastodon!"}'

# 带媒体与多参数
bun {baseDir}/scripts/tootbot.js '{"status": "图文动态", "media": [{"file": "/path/to/img.png", "description": "图片描述"}]}'

显著优点

1. 功能完整:覆盖 Mastodon API v1 statuses/media 端点,支持多附件上传、定时发布、ISO 639-1 语言标记、四级可见性控制
2. 凭证安全MASTODON_URLMASTODON_ACCESS_TOKEN 强制从环境变量读取,无硬编码泄露风险

3. 隐私合规:通过 GDPR 数据最小化审查,仅传输用户主动提供的内容至目标实例

4. 行为透明:网络流量仅指向用户配置的 Mastodon 实例,无未声明外部调用

潜在缺点与局限性

  • 运行时依赖:强制依赖 Bun 环境(非 Node.js),增加部署门槛
  • 代码混淆:主脚本经压缩处理,变量名为单字母标识,虽无恶意代码但降低可审计性
  • 生态局限:仅支持 Mastodon,无法兼容 ActivityPub 协议下的其他实例(如 Pleroma、Misskey 需验证)
  • 无交互反馈:工具仅执行发布,不提供草稿预览、失败重试或发布历史查询

适合人群

  • 需要在 CI/CD 流程中自动同步内容至 Mastodon 的技术团队
  • 运营多账号的社交媒体管理者
  • 重视数据主权、选择自托管 Mastodon 实例的隐私意识用户
  • 已熟悉 Bun 生态的前端/Node.js 开发者

常规风险

  • Token 泄露风险:环境变量需妥善保管,避免提交至版本控制
  • 实例可用性:发布成功与否取决于目标 Mastodon 实例的在线状态与 API 限流策略
  • 定时发布精度:依赖服务器系统时钟,跨时区场景需严格使用 RFC3339 格式带偏移量的时间戳

Tootbot 内容

scripts文件夹
手动下载zip · 126.5 kB
tootbot.jstext/javascript
请选择文件