ข้ามไปเนื้อหา
SNTalkBot 5.1.22 / TTUHelper 1.5.7 / Web Manager 1.1.22
- เพิ่ม operational action logging กลางสำหรับคำสั่งทั้ง 121 ตัว: บันทึกจะเห็นการรับคำสั่ง การเริ่ม action การคืนจาก handler และ failure/lifecycle signal โดยไม่เปลี่ยน action เดิม
- งาน async ของ Player พก context ของคำสั่งต้นทางไปยัง worker และบันทึก playback started / queue added พร้อม source ที่แท้จริง เช่น youtube, ytmusic หรือ URL โดยไม่เขียน secret ลง log
- เพิ่มบันทึก side effect กลาง เช่น private/channel/broadcast message และ kick; URL log แสดงเฉพาะ host และค่า token/password/secret/cookie/API key ถูก redact อัตโนมัติ
- แก้ restart/shutdown ที่อาจถูก CommandHandler จับเป็น exception ธรรมดา ให้ control signal ผ่านไป main launcher ตามสถาปัตยกรรมเดิม พร้อม regression test
- คงเส้นทางสื่อเดิม: p คือ YouTube, pm คือ YouTube Music, u คือ URL โดยตรง, select/c เลือก Queue/Playlist และ . / , ใช้เลื่อนผลค้นหา; fallback ภายในไม่เปลี่ยน source intent
SNTalkBot 5.1.21 / TTUHelper 1.5.7 / Web Manager 1.1.22
- แก้ regression การรับ/วิเคราะห์คำสั่งเล่นเพลงหลัง 5.1.20: คำสั่ง Player ที่รับจริงจะแสดงในบันทึกก่อน dispatch ขณะที่ event typing แบบ CUSTOM ไม่รบกวนบันทึกอีก
- กู้ความทนทานของ p/pm และการเล่น YouTube/YouTube Music: YouTube search มี fallback แยก, YouTube Music คง source ของตัวเอง และ playback มี bounded recovery สำหรับ music-domain/คุกกี้ที่ใช้ไม่ได้
- ผูก Deno ที่ติดตั้งใน Docker ให้ yt-dlp Python API ใช้อย่างชัดเจน เพื่อรองรับการแกะ YouTube รุ่นปัจจุบันโดยไม่เปลี่ยนคำสั่งหรือแหล่งเพลง
- หาก Channel Input ปิดอยู่ คำสั่งแชนแนลที่ถูกละเว้นจะมีข้อความในบันทึกชัดเจน; หากค้นหา/เล่นล้มจะมี error ใน log และตอบผู้สั่งแบบ private เมื่อข้อความแชนแนลถูกปิด แทนการเงียบ
- คง select/c, Queue, Playlist, Telegram precedence, GitHub Release webhook, accessible tabs และ live config behavior จากรุ่นก่อนโดยไม่เพิ่มคำสั่งซ้ำ
SNTalkBot 5.1.20 / TTUHelper 1.5.7 / Web Manager 1.1.22
- แก้ p <คำค้น> ฝั่ง YouTube ทั้ง Queue Mode และโหมดปกติ: ใช้ YouTube Search URL เป็นทางหลักและ fallback ไป ytsearch หากผลลัพธ์แรกว่าง; pm ยังคงค้น YouTube Music แยกต่างหาก
- select <index> / c <index> มีหน้าที่เดียวคือกระโดด Queue หรือ playlist/session ตามลำดับที่ระบุ; ไม่เลือกผลค้นหาโดยอ้อมอีก และผลค้นหาใช้ . / , ของตัวเอง
- แจ้ง GitHub Release เข้า TeamTalk เป็นภาษาไทยแบบสั้นและไม่แนบลิงก์; webhook/Release automation เดิมยังทำงานอัตโนมัติหลัง Full Publish สำเร็จ
- Telegram token ของเจ้าของ instance มี precedence สูงสุด: ถ้าตั้ง token เองจะใช้ token + Chat ID ของ instance นั้นเท่านั้นและไม่ส่งผ่าน Telegram ส่วนกลาง; ค่ากลางใช้เฉพาะ instance ที่ไม่มี token
- หน้า ระบบ/อัปเดต ของ Web Manager ย่อ SNTalkBot image ให้แสดงแบบเดียวกับ Web Manager/TTUHelper คือเวอร์ชันที่ใช้อยู่และรุ่นบน GitHub; digest/registry รายละเอียดยาวคงไว้เฉพาะ diagnostics
- คง accessible tabs และ live-config apply: ค่า runtime-safe เห็นผลผ่าน loopback API ก่อน, ค่าไม่เปลี่ยนไม่ restart และค่าลึก/API unavailable เท่านั้นที่ restart
SNTalkBot 5.1.19 / TTUHelper 1.5.7 / Web Manager 1.1.21
- คำสั่ง select <index> / c <index> เดิมรองรับการกระโดด Queue, playlist/session และผลค้นหาอย่างชัดเจน; ใน Queue รายการก่อนหน้าถูกข้ามจริงและหลังรายการเป้าหมายจะเล่นรายการถัดไปต่อ ไม่ย้อนกลับข้อแรก
- Web Manager จัดหน้า ระบบ/อัปเดต และหน้าตั้งค่า instance เป็นแท็บแบบลิงก์ที่ใช้กับโปรแกรมอ่านหน้าจอได้และไม่ต้องพึ่ง JavaScript โดยคง action เดิม
- การเปลี่ยน config ที่ปลอดภัยต่อ runtime จาก Web Manager ใช้ loopback API ของบอตเพื่อเห็นผลสดก่อน; restart เฉพาะค่าที่ต้องสร้าง process ใหม่หรือเมื่อ live API ใช้ไม่ได้
- การบันทึกค่าเดิมไม่ restart และปุ่มเปิดแจ้ง GitHub Release จะไม่ restart Manager/Full ที่เปิดอยู่แล้วโดยไม่จำเป็น
- runtime/high-frequency state ยังคง RAM/SQLite/API-only; mutable Google TTS JSON cache writer ถูกยกเลิก และ favorites.json เหลือเฉพาะการนำเข้าของเก่าครั้งเดียวแล้วลบ
- ระบบ GitHub Release webhook ที่ตั้งครั้งเดียวคงทำงานต่อ: Full Publish ที่สำเร็จถึง version tag จะสร้าง Release และแจ้ง Manager/Full ที่เปิดการแจ้งรุ่นใหม่
SNTalkBot 5.1.18 / TTUHelper 1.5.7 / Web Manager 1.1.20
- Full Publish สร้าง version tag หลัง Git, Docker และไฟล์ดาวน์โหลดสาธารณะสำเร็จ แล้ว GitHub Actions สร้าง published GitHub Release อัตโนมัติโดยใช้ token ภายใน GitHub; ไม่ต้องเก็บ GitHub PAT เพิ่มในโปรเจกต์
- Web Manager เพิ่มส่วน GitHub Release Webhook ในหน้า ระบบ/อัปเดต แสดง Payload URL, repository, receiver status และ delivery ล่าสุด พร้อมหน้าแสดง Secret เฉพาะ Super Admin
- Webhook ping และ release ที่ลายเซ็นถูกต้องถูกบันทึกสถานะใน SQLite เพื่อยืนยันได้จากหน้าเว็บว่า GitHub ติดต่อมาถึงจริง
- เพิ่มปุ่มเปิดการแจ้งรุ่นใหม่ผ่าน TeamTalk ให้ Manager/Full ทั้งหมด โดยไม่เปลี่ยน Player-only และไม่ติดตั้งอัปเดตอัตโนมัติ
- คง Global Broadcast แบบ 1 ช่องต่อ 1 ข้อความหลายบรรทัดได้ และสุ่มไม่ซ้ำจนกว่าจะครบทั้งรอบจาก 5.1.17