- สร้างระบบ 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)
6.8 KiB
6.8 KiB
name, description, version, author, license, platforms, metadata
| name | description | version | author | license | platforms | metadata | ||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| facebook-status-automation | 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. | 1.0.0 | Kunthawat | MIT |
|
|
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
# รันทุกวัน 20:00 น.
hermes cron create \
--name "Facebook Status Draft" \
--schedule "0 20 * * *" \
--prompt "รัน facebook-status-automation skill" \
--skills facebook-status-automation \
--deliver telegram
Pitfalls
- sessions 24h ≠ sessions ทั้งหมด — ต้อง filter เวลาจริง ไม่ใช่ดึงทุก session
- ban list ต้องตรง topic ไม่ใช่ substring — เช่น "morning-news-briefing" ต้องเช็คว่า topic match เต็ม ไม่ใช่แค่มี "morning" อยู่
- draft ต้อง human-readable — ห้ามมี technical terms หลุดไป
- log file ต้อง update ทุกครั้งที่โพส — ไม่งั้นจะโพสซ้ำ
- ถ้าไม่มีเรื่องน่าโพส → ไม่ต้องโพส — ห้าม forced output