What this skill does
Creates a short briefing from Daum 메인 실시간 트렌드(REALTIME_TREND_TOP):
(ClawHub 검증 정책상 바이너리 파일(jpg/png 등)을 스킬에 포함할 수 없어서, 스크린샷은 외부 링크로만 첨부하세요.)
예시 스크린샷(외부 링크): https://github.com/user-attachments/assets/9aefc56b-6f52-4580-b4e5-585bd0e816da
- TOP10 keywords
- For each keyword: fetch Daum search page and extract one representative title (usually the first News result)
- Include links
- Print exactly 12 lines to stdout:
- Title line 2–11) 10 trend lines
updatedAt: ...
Data sources
- Daum homepage: https://www.daum.net/
- Daum search (for each keyword):
https://search.daum.net/search?w=tot&DA=RT1&rtmaxcoll=AIO,NNS,DNS&q=<keyword>
How to fetch & parse https://www.daum.net/ (REALTIME_TREND_TOP)
Daum renders a large JSON blob inside the HTML. The real-time trend slot appears as a node with:
"uiType":"REALTIME_TREND_TOP"contents.data.updatedAtcontents.data.keywords(array of{ keyword, rank, ... })
Parsing approach (used in the script):
- Download the HTML.
- Find the first occurrence of
"uiType":"REALTIME_TREND_TOP". - From that position, locate:
"updatedAt":"...""keywords":[ ... ]
- Extract the
keywordsarray substring by bracket matching, thenJSON.parseit.
This avoids having to parse the full page-level JSON assignment.
How to fetch each keyword’s Daum search page & extract 1 title
For each keyword, request:
https://search.daum.net/search?w=tot&DA=RT1&rtmaxcoll=AIO,NNS,DNS&q=<encodeURIComponent(keyword)>
Extraction heuristic (used in the script):
- Prefer the first match of the News-like title pattern:
<strong class="tit-g ..."><a href="...">TITLE</a>
- Strip HTML tags (
<b>...</b>etc.) and decode basic HTML entities. - If no title is found, fall back to
Daum 검색 결과.
Output format
Example (12 lines):
Daum 실시간 트렌드 TOP101. 키워드: “대표 제목” https://search.daum.net/search?...q=......10. 키워드: “대표 제목” https://search.daum.net/search?...q=...updatedAt: 2026-03-05T06:08:51.024+09:00
Script
- Entry point:
scripts/briefing.mjs - Runs with Node.js built-ins only.
Run locally
node {workspace}/skills/daum-trends-briefing/scripts/briefing.mjs
Sanity check (should print 12 lines)
node {workspace}/skills/daum-trends-briefing/scripts/briefing.mjs | wc -l | tr -d ' '
# expected: 12
OpenClaw cron job (08:00–21:00 every hour, KST) + Telegram announce
OpenClaw cron jobs live in:
~/.openclaw/cron/jobs.json
In this OpenClaw setup, cron jobs typically run an agent turn. The agent can execute the Node script and then announce the stdout to Telegram.
Create a cron job with the CLI (recommended):
openclaw cron add \
--name "Daum 실시간 트렌드 브리핑 (매시 정각 KST)" \
--cron "0 8-21 * * *" \
--tz "Asia/Seoul" \
--agent main \
--announce --channel telegram --to "<YOUR_TELEGRAM_CHAT_ID>" \
--expect-final \
--message $'Run this command and announce its stdout as-is:\n\nnode {workspace}/skills/daum-trends-briefing/scripts/briefing.mjs'
Tip: replace {workspace} with your OpenClaw workspace path (often ~/.openclaw/workspace or your configured workspace).