# Cao Bai Forum

> This skill should be used when the user asks to "cào bài forum", "lấy bài mới nhất về iPhone trên các forum", "quét bài mới trong 24h", "chạy cào bài seeding", "/cao-bai-forum", or wants the newest keyword-matching threads from the 7 tracked Vietnamese/English forums (tinhte.vn, vnreview.vn, click49.net, forum.dmec.vn, kenhsinhvien.vn, tuxforums.com, webtretho.com) collected into the "Thống kê cmt forum" Google Sheet tab. Crawls each forum's open endpoint (per-node RSS, guest search, Discourse search API, daily sitemap), keeps only threads created inside the time window whose title matches the keyword, de-duplicates against URLs already in the sheet, and writes forum name to column A and post URL to column B. Pure collection — it does not write comments (that is `tao-cmt`) and does not publish anything.

- Skill: `nguyenminhnguyet-ops/cao-bai-forum` (Agent Skill, multi-file: 4 files)
- Install (CLI): `npx skillmds@latest add nguyenminhnguyet-ops/cao-bai-forum`
- Raw SKILL.md: https://api.skillmd.com/api/skills/nguyenminhnguyet-ops/cao-bai-forum/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Integrations & APIs
- Author: nguyenminhnguyet-ops (https://skillmd.com/u/nguyenminhnguyet-ops)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/nguyenminhnguyet-ops/cao-bai-forum

---


# Cào bài forum theo từ khóa

Thu thập bài đăng mới trong N giờ qua trên 7 forum, lọc theo từ khóa, ghi vào sheet
`Thống kê cmt forum` (cột A = tên forum, cột B = link bài). Đây là bước **đầu vào** cho
skill `tao-cmt` (viết comment seeding cho từng bài).

## Quy trình

### Bước 1 — Cào

```bash
node scripts/cao-crawl.js \
  --hours 24 --keyword iphone --out <scratchpad>/cao-<ngày>.json
```

- `--hours` mặc định 24. `--keyword` nhận nhiều từ, cách nhau bằng dấu phẩy
  (`--keyword "iphone,ios"`) — khớp khi **tiêu đề** chứa bất kỳ từ nào.
- `--sites tinhte.vn,vnreview.vn` để chỉ chạy vài forum.
- Script in ra bảng tóm tắt theo forum + danh sách bài, và ghi JSON đầy đủ.
- Một site chết KHÔNG làm hỏng cả lượt chạy — nó xuất hiện ở mục "Cần chú ý".

Báo lại cho user bảng đếm theo forum trước khi ghi sheet.

### Bước 2 — Ghi sheet (luôn chạy `--dry-run` trước)

```bash
node scripts/cao-sheet.js \
  --in <scratchpad>/cao-<ngày>.json --dry-run
```

Dry-run in ra: dòng cuối đang có dữ liệu, số bài trùng đã có trong sheet, số bài
sẽ thêm, và đúng dải ô sẽ ghi. **Đưa con số này cho user xem rồi mới bỏ `--dry-run`.**

Script chỉ ghi cột A và B, bắt đầu ngay dưới dòng cuối cùng đang có dữ liệu, không
đụng vào cột nào khác và không chèn/xoá dòng.

## Những điều cần biết

- **Chỉ lấy bài mở chủ đề mới**, không lấy comment/reply. Với XenForo, script lọc theo
  nhãn "Chủ đề" trong kết quả tìm kiếm.
- **Chống trùng**: so khớp URL đã chuẩn hoá (bỏ `www.`, bỏ `#post-123`, bỏ `/` cuối,
  giải mã `%xx`) với toàn bộ cột B hiện có — chạy lại nhiều lần trong ngày là an toàn.
- **Thứ tự ghi**: cũ → mới từ trên xuống, khớp cách sheet đang được đọc.
- **webtretho.com** tự chuyển hướng sang **webtretho.vn**; cột A vẫn ghi
  `webtretho.com` theo đúng tên user đặt, link là domain thật `.vn`.
- Forum vắng bài iPhone trong 24h (thường là tuxforums.com, forum.dmec.vn,
  kenhsinhvien.vn) sẽ trả 0 — đó là kết quả đúng, không phải lỗi. Muốn kiểm chứng thì
  chạy lại với `--hours 72`.
- Mỗi nguồn lấy dữ liệu bằng cửa nào, và vì sao không dùng cửa khác: xem
  `references/nguon-du-lieu.md`.

## Không thuộc phạm vi skill này

- Viết nội dung comment → skill `tao-cmt`.
- Viết/đăng bài lên forum hay nền tảng khác → nhóm skill `share-bai-*`.

