indicaindependent/bsky-campaign-engine

GitHub: indicaindependent/bsky-campaign-engine

一个运行在 Cloudflare 边缘的 Bluesky 自动化活动调度引擎,支持长串帖子定时发布、图片嵌入和回复链接。

Stars: 0 | Forks: 0

# 📡 Bluesky 活动引擎 **自动化 Bluesky 活动调度 — AT Protocol + Cloudflare D1 + 串链回复** [![Bluesky](https://img.shields.io/badge/AT_Protocol-0085ff?style=for-the-badge&logo=bluesky&logoColor=white)](https://atproto.com) [![Cloudflare Workers](https://img.shields.io/badge/Cloudflare_Workers-F38020?style=for-the-badge&logo=cloudflare&logoColor=white)](https://workers.cloudflare.com) [![License: MIT](https://img.shields.io/badge/License-MIT-green?style=for-the-badge)](LICENSE)
## 这是什么 一个用于 Bluesky 的生产级活动调度引擎。调度带有图像、facets(链接/提及/标签)和精确时间的多帖长串活动——全部在 Cloudflare 的边缘节点上以 Serverless 方式运行。 在 Bluesky 上运行真实的调查新闻活动时构建并经过实战检验。 ## 功能 - 🧵 **长串链接** — 通过 root/parent URI 追踪实现正确的回复链 - 🖼️ **图像嵌入** — 自动上传图像 + 附加 blob - 🏷️ **Facet 支持** — 自动检测并编码链接、提及和话题标签 - ⏱️ **基于 D1 的调度** — 通过 CF Cron 在精确的时间触发 - 🔒 **单次触发锁** — D1 状态防止重复发布 - 📦 **活动存档** — 已完成的活动会被存档,永不删除 - 🌐 **REST API** — 通过 `/inject` 注入活动,通过 `/status` 检查状态 ## 架构 ``` POST /inject (campaign payload) │ ▼ schedule-worker (D1: schedule-db) │ CF Cron Trigger (every minute check) │ ▼ bsky-worker ──► AT Protocol API ──► Bluesky │ └── Update D1 (post URIs, CIDs, status) ``` ## 活动 Payload 格式 ``` { "campaign_id": "my-campaign-001", "handle": "yourhandle.bsky.social", "posts": [ { "post_index": 0, "text": "🧵 THREAD: My investigation into X...", "image_url": "https://example.com/image.jpg", "scheduled_at": "2026-05-02T14:00:00Z" }, { "post_index": 1, "text": "1/ Here's what we found...", "scheduled_at": "2026-05-02T14:05:00Z" } ] } ``` ## 自托管 ``` git clone https://github.com/indicaindependent/bsky-campaign-engine cd bsky-campaign-engine cp wrangler.toml.example wrangler.toml wrangler d1 create campaign-db wrangler secret put BSKY_APP_PASS wrangler secret put WORKER_SECRET wrangler deploy ``` ## 字素安全 所有帖子都会根据 Bluesky 的 300 字符限制进行验证(JS 的 `length`,而非字节数)。旗帜 emoji = 4 个字符。在发布前强制执行硬性上限。 ## 许可证 [MIT](LICENSE)
在真实的调查活动中经过实战检验 | 由 Indica Independent 构建
标签:程序员工具, 网络测绘, 高对比度