- สร้างระบบ automation สำหรับ Facebook status draft - Two-pass system: sessions → filter → compare → draft - Ban list สำหรับกิจกรรมซ้ำทุกวัน - Compare กับ 10 โพสย้อนหลัง (ไม่โพสซ้ำ) - Draft style: คนทั่วไปอ่านเข้าใจ ไม่ใช้ technical jargon - Cron: รันทุกวัน 20:00 น. Components: - facebook-status-generator.py (script) - SKILL.md (Hermes skill) - README.md (docs)
158 lines
6.8 KiB
Markdown
158 lines
6.8 KiB
Markdown
---
|
|
name: facebook-status-automation
|
|
description: "Generate Facebook personal status drafts from recent Hermes sessions. Two-pass system: extract activities from 24h sessions → compare with last 10 posts → output copyable draft or skip if nothing new."
|
|
version: 1.0.0
|
|
author: Kunthawat
|
|
license: MIT
|
|
platforms: [macos, linux]
|
|
metadata:
|
|
hermes:
|
|
tags: [social-media, facebook, personal-brand, automation]
|
|
category: productivity
|
|
---
|
|
|
|
# Facebook Status Automation
|
|
|
|
สร้าง Facebook status draft จาก Hermes sessions ใน 24 ชม. ย้อนหลัง
|
|
มุ่งเป้า: **personal brand** สำหรับคนทั่วไปที่ไม่รู้เรื่อง IT
|
|
|
|
## When to use
|
|
|
|
- ผู้ใช้ขอให้สร้าง Facebook status จากสิ่งที่ทำวันนี้
|
|
- Cron job รันตอน 20:00 ทุกวัน
|
|
- ผู้ใช้ถามว่า "วันนี้มีอะไรน่าโพสไหม"
|
|
|
|
## Core Logic
|
|
|
|
```
|
|
1. session_search(limit=20, sort="newest") → ดึง sessions 24h ย้อนหลัง
|
|
2. อ่าน session content → สรุปกิจกรรม
|
|
3. Filter: กรอง ban list (กิจกรรมซ้ำทุกวัน)
|
|
4. Compare: เปรียบเทียบกับ 10 โพสย้อนหลัง (จาก .facebook-status-log.json)
|
|
5. Draft: สร้าง status ถ้ามีเรื่องใหม่ / skip ถ้าไม่มี
|
|
```
|
|
|
|
## Ban List
|
|
|
|
กิจกรรมที่ทำทุกวัน → ไม่ต้องโพส:
|
|
|
|
| Topic | เหตุผล |
|
|
|-------|--------|
|
|
| ai-news-reading / morning-news-briefing | cron รันทุกวัน |
|
|
| daily-planning / start-my-day | cron รันทุกวัน |
|
|
| end-my-day / evening-wrapup | cron รันทุกวัน |
|
|
| cron-model-update | internal config |
|
|
| cookie-renewal | internal maintenance |
|
|
|
|
เพิ่ม/ลบได้ใน `~/vault/.facebook-status-log.json` → `settings.ban_list`
|
|
|
|
## Comparison Rules
|
|
|
|
| เงื่อนไข | ผลลัพธ์ |
|
|
|---------|---------|
|
|
| อยู่ใน ban list | ❌ skip |
|
|
| เรื่องเดิม + โพสวันนี้แล้ว | ❌ skip |
|
|
| เรื่องเดิม + ไม่มี change ใหม่ (lookback_posts) | ❌ skip |
|
|
| เรื่องเดิม + มี change ใหม่ | ✅ โพส (ปรับ wording) |
|
|
| เรื่องใหม่ | ✅ โพส |
|
|
| ไม่มีเรื่องน่าสนใจ | 🔕 ไม่โพส → แจ้ง "วันนี้ไม่มีเรื่องน่าโพส" |
|
|
|
|
## Steps
|
|
|
|
### 1. ดึง Sessions
|
|
|
|
```
|
|
session_search(limit=20, sort="newest")
|
|
```
|
|
|
|
กรองเฉพาะ sessions ใน 24 ชม. ย้อนหลัง (ไม่ใช่ทุก session)
|
|
|
|
### 2. อ่าน + สรุปกิจกรรม
|
|
|
|
อ่าน content ของแต่ละ session → สรุปว่า:
|
|
- ทำอะไรไปบ้าง
|
|
- มี progress/achievement อะไรบ้าง
|
|
- มี blog article ไหม (ถ้ามี เก็บ link)
|
|
|
|
### 3. Filter Ban List
|
|
|
|
เปรียบเทียบ topic กับ ban_list ใน log file
|
|
ถ้า match → skip
|
|
|
|
### 4. Compare กับ 10 โพสย้อนหลัง
|
|
|
|
อ่าน `~/vault/.facebook-status-log.json`
|
|
- ดึง posts 10 ตัวล่าสุด
|
|
- เช็คว่า topic นี้เคยโพสหรือยัง
|
|
- ถ้าเคย → เช็คว่ามี change ใหม่ไหม
|
|
|
|
### 5. สร้าง Draft (ถ้าผ่าน)
|
|
|
|
เขียน Facebook status:
|
|
- ไม่ใช้ technical jargon
|
|
- เน้นผลลัพธ์/ประโยชน์สำหรับคนทั่วไป
|
|
- สั้น กระชับ
|
|
- ใส่ blog link ถ้ามี
|
|
|
|
### 6. อัพเดท Log
|
|
|
|
บันทึกลง `~/vault/.facebook-status-log.json`:
|
|
- เพิ่ม post entry ใหม่
|
|
- อัพเดท milestones
|
|
|
|
### 7. Output
|
|
|
|
ถ้ามี draft → แสดงให้ user copy
|
|
ถ้าไม่มี → แจ้ง "วันนี้ไม่มีเรื่องน่าโพส"
|
|
|
|
## Draft Style Guide
|
|
|
|
### ✅ เขียนแบบนี้
|
|
|
|
```
|
|
วันนี้ปรับระบบ AI ให้สรุปข่าวอัตโนมัติทุกเช้า — เขียน script ให้ทำงานเองตอน 7 โมง ไม่ต้องนั่งเปิดทีละเว็บ
|
|
```
|
|
|
|
### ❌ ไม่เขียนแบบนี้
|
|
|
|
```
|
|
Today I updated the cron job configuration to use the moreminimore-ai model
|
|
via custom LLM proxy endpoint for all scheduled tasks
|
|
```
|
|
|
|
### Rules
|
|
|
|
- เขียนเป็นไทย (หรือภาษาที่ user ต้องการ)
|
|
- ไม่ใช้คำ technical (cron, API, script → ใช้คำที่คนทั่วไปเข้าใจ)
|
|
- เน้น **สิ่งที่ได้** ไม่ใช่ **สิ่งที่ทำ** ("ประหยัดเวลา" ดีกว่า "ปรับ config")
|
|
- ไม่ต้องใส่ timestamp หรือเวลาที่ทำ
|
|
- ถ้ามี blog article → ใส่ link ท้ายโพส
|
|
|
|
## Files
|
|
|
|
| ไฟล์ | ที่อยู่ | หน้าที่ |
|
|
|-----|--------|--------|
|
|
| Log file | `~/vault/.facebook-status-log.json` | เก็บประวัติ + milestones |
|
|
| Script | `~/Gitea/moreminimore-personal-system/facebook-status-automation/facebook-status-generator.py` | Test run / debug |
|
|
| Skill | `~/.hermes/skills/productivity/facebook-status-automation/SKILL.md` | ไฟล์นี้ |
|
|
|
|
## Cron Setup
|
|
|
|
```bash
|
|
# รันทุกวัน 20:00 น.
|
|
hermes cron create \
|
|
--name "Facebook Status Draft" \
|
|
--schedule "0 20 * * *" \
|
|
--prompt "รัน facebook-status-automation skill" \
|
|
--skills facebook-status-automation \
|
|
--deliver telegram
|
|
```
|
|
|
|
## Pitfalls
|
|
|
|
1. **sessions 24h ≠ sessions ทั้งหมด** — ต้อง filter เวลาจริง ไม่ใช่ดึงทุก session
|
|
2. **ban list ต้องตรง topic ไม่ใช่ substring** — เช่น "morning-news-briefing" ต้องเช็คว่า topic match เต็ม ไม่ใช่แค่มี "morning" อยู่
|
|
3. **draft ต้อง human-readable** — ห้ามมี technical terms หลุดไป
|
|
4. **log file ต้อง update ทุกครั้งที่โพส** — ไม่งั้นจะโพสซ้ำ
|
|
5. **ถ้าไม่มีเรื่องน่าโพส → ไม่ต้องโพส** — ห้าม forced output
|