Ежедневный дайджест веб-разработки. Сбор ссылок — скриптами, суммаризация — AI-агентом (OpenClaw + GLM 5), рассылка — подписчикам в личку TG-бота.
[RSS feeds] ──┐
[Web blogs] ───┤──→ [collect-cli.ts: сбор + dedup] ──→ collected.json
[TG channels]──┘ │
▼
[OpenClaw agent (GLM 5)]
Читает collected.json,
суммаризирует, категоризирует,
форматирует в стиле Пульса
│
▼
[Черновик → админу в TG DM]
│
✅ → рассылка подписчикам
❌ → отмена
текст → правки + новый черновик
Принцип: Скрипты — механическая работа (fetch, parse, dedup). Агент — интеллектуальная (суммаризация, категоризация, форматирование).
pnpm install
cp .env.example .env # заполнить TG_BOT_TOKEN, TG_ADMIN_CHAT_ID
cp digest-sources.example.json digest-sources.json # настроить источники
pnpm collect # тест сбора| Команда | Описание |
|---|---|
pnpm collect |
Собрать ссылки из RSS, TG-каналов, блогов → data/collected.json |
pnpm publish |
Разослать data/draft.html всем подписчикам |
pnpm subscribers |
Управление подписчиками (add, remove, list) |
pnpm test |
Запустить тесты |
Суммаризация и workflow одобрения выполняются агентом OpenClaw через skills:
| Skill | Тип | Назначение |
|---|---|---|
digest-collector |
механический | Запускает collect-cli.ts |
digest-summarizer |
интеллектуальный | Агент читает collected.json, суммаризирует, сохраняет draft.html |
digest-publish |
механический | Запускает publish-cli.ts для рассылки |
digest-subscribe |
механический | Обрабатывает /subscribe и /unsubscribe |
Skills находятся в skills/ — при деплое копируются в ~/.openclaw/workspace/skills/.
- 07:00 MSK — cron запускает OpenClaw:
digest-collector→digest-summarizer - Агент отправляет черновик админу в TG DM
- Админ отвечает: «ок» → рассылка, текст → правки, «отмена» → стоп
- При одобрении —
digest-publishрассылает подписчикам
Пользователь пишет боту:
/subscribe— подписаться на дайджест/unsubscribe— отписаться
- Создать бота: @BotFather →
/newbot - Узнать свой chat_id: отправить боту
/start, затемhttps://api.telegram.org/bot<TOKEN>/getUpdates - Заполнить
.env:TG_BOT_TOKEN,TG_ADMIN_CHAT_ID
Файл digest-sources.json:
rss— RSS-фиды (Frontend Focus, JS Weekly, CSS Weekly, ...)blogs— блоги (web.dev, developer.chrome.com)telegram_channels— TG-каналы
| Переменная | По умолчанию | Описание |
|---|---|---|
TG_BOT_TOKEN |
— | Токен Telegram-бота |
TG_ADMIN_CHAT_ID |
— | Chat ID админа для одобрения |
COLLECT_HOURS |
24 |
За сколько часов собирать ссылки |
MAX_ITEMS_PER_DIGEST |
20 |
Максимум ссылок в дайджесте |
SOURCES_PATH |
./digest-sources.json |
Путь к файлу источников |
HISTORY_PATH |
./data/history.json |
Путь к истории дедупликации |
DATA_DIR |
./data |
Директория для данных |
SUBSCRIBERS_PATH |
./data/subscribers.json |
Путь к файлу подписчиков |
# На сервере (Ubuntu 24.04)
bash deploy/setup.shПодробности — в deploy/setup.sh.