Improve live and random live handling

- Add random live handlers, schemas and persistence for lot/play/continue/gameover/reward flow
- Update live status and schedule generation, including special rotation handling and CN timezone alignment
- Add config support for unlocking all daily special rotation songs and document the option
- Refresh live play, reward, precise score and session logic plus bundled main.db updates

Signed-off-by: Sean Du <do4suki@gmail.com>
This commit is contained in:
2026-06-06 20:59:45 +08:00
parent 4e642cc7c1
commit 0aacf8a4e9
28 changed files with 1085 additions and 228 deletions
+33 -6
View File
@@ -1,12 +1,39 @@
package liveschema
import (
"encoding/json"
"strconv"
)
type FlexibleLiveDifficultyID int
func (id *FlexibleLiveDifficultyID) UnmarshalJSON(data []byte) error {
var intValue int
if err := json.Unmarshal(data, &intValue); err == nil {
*id = FlexibleLiveDifficultyID(intValue)
return nil
}
var stringValue string
if err := json.Unmarshal(data, &stringValue); err != nil {
return err
}
parsed, err := strconv.Atoi(stringValue)
if err != nil {
return err
}
*id = FlexibleLiveDifficultyID(parsed)
return nil
}
type PlayScoreReq struct {
Module string `json:"module"`
Action string `json:"action"`
TimeStamp int64 `json:"timeStamp"`
Mgd int `json:"mgd"`
LiveDifficultyID string `json:"live_difficulty_id"`
CommandNum string `json:"commandNum"`
Module string `json:"module"`
Action string `json:"action"`
TimeStamp int64 `json:"timeStamp"`
Mgd int `json:"mgd"`
LiveDifficultyID FlexibleLiveDifficultyID `json:"live_difficulty_id"`
CommandNum string `json:"commandNum"`
}
type On struct {