feat: implement chat history, theme customization, and password management

- Added chat history persistence for active rooms with auto-cleanup on stream end.
- Overhauled Settings page with user profile, theme color picker, and password change.
- Added backend API for user password updates.
- Integrated flutter_launcher_icons and updated app icon to 'H' logo.
- Fixed 'Duplicate keys' bug in danmaku by using UniqueKey and filtering historical messages.
- Updated version to 1.0.0-beta3.5 and author info.
This commit is contained in:
2026-03-25 11:48:39 +08:00
parent b2a27f7801
commit a0c5e7590d
21 changed files with 446 additions and 54 deletions

View File

@@ -11,6 +11,7 @@ import (
"github.com/nareix/joy4/format"
"github.com/nareix/joy4/format/rtmp"
"hightube/internal/chat"
"hightube/internal/db"
"hightube/internal/model"
)
@@ -83,6 +84,10 @@ func NewRTMPServer() *RTMPServer {
q.Close()
// Explicitly set is_active to false using map
db.DB.Model(&room).Updates(map[string]interface{}{"is_active": false})
// Clear chat history for this room
chat.MainHub.ClearRoomHistory(fmt.Sprintf("%d", room.ID))
fmt.Printf("[INFO] Publishing ended for Room ID: %d\n", room.ID)
}()