Files
Kunthawat Greethong db8097f795 feat: Facebook Status Automation
- สร้างระบบ 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)
2026-07-02 11:38:48 +07:00

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
macos
linux
hermes
tags category
social-media
facebook
personal-brand
automation
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.jsonsettings.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

  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