Skill: News Update — Tin tức mới (không trùng lặp)
Cách chạy
Chạy 1 lệnh duy nhất:
Bash("cd /home/hieutran/projects/tam/stock-trader && python3 scripts/news_update.py")
Nếu có SYMBOL (lọc tin theo mã):
Bash("cd /home/hieutran/projects/tam/stock-trader && python3 scripts/news_update.py VNM")
Script tự động thực hiện
- Đọc
data/news_archive.json(tạo mới nếu chưa có) - Fetch tin từ CafeF, Vietstock, VNExpress qua scraper trực tiếp
- Dedup: so sánh
title.lower().strip()với archive + intra-batch dedup - Append tin mới vào archive, giữ max 2000 bài
- Ghi lại archive
- Output ra stdout theo format chuẩn
Format đầu ra
⚠️ QUY TẮC BẮT BUỘC:
- KHÔNG dùng markdown link
[text](url)— Telegram không render được. - PHẢI có plain text URL cho mỗi tin (paste URL trực tiếp).
- PHẢI list TẤT CẢ tin mới — KHÔNG được tóm tắt/rút gọn thành "X tin nổi bật". Mỗi tin mới = 1 bullet.
- Nếu >15 tin mới: list đủ 15 tin đầu, cuối ghi "... và N tin khác đã lưu vào archive".
Output mẫu:
📰 NEWS UPDATE
🆕 {N} tin mới | 📦 Archive: {total} bài
• Tóm tắt ngắn 1 câu
https://cafef.vn/article/123 (CafeF)
• Tóm tắt ngắn 1 câu
https://vietstock.vn/article/456 (Vietstock)
• Tóm tắt ngắn 1 câu
https://vnexpress.net/article/789 (VNExpress)
[... list TẤT CẢ tin mới, tối đa 15 ...]
... và {N-15} tin khác đã lưu vào archive. ← khi N > 15
✅ Không có tin mới — tất cả đã đọc. ← khi N = 0
Xử lý lỗi
data/news_archive.jsonkhông tồn tại → tạo mới với[]- Deps chưa cài → script tự dùng venv của vn-stock-trader (
.venv/bin/python3) - Source lỗi → bỏ qua source đó, tiếp tục các source còn lại