Files
djk/internal/app/provider_sort_metadata.go
T

47 lines
1.1 KiB
Go

package app
import (
"math"
"strconv"
"strings"
"time"
)
var providerChinaTime = time.FixedZone("CST", 8*60*60)
func hongguoHeat(row map[string]any) string {
hot := nestedMap(row, "hot_score_data")
if score := firstNonEmpty(mapString(hot, "score"), mapString(row, "hot_score")); score != "" {
value, err := strconv.ParseFloat(score, 64)
if err == nil && value >= 0 && !math.IsInf(value, 0) && !math.IsNaN(value) {
return score
}
}
return mapString(hot, "text")
}
func hongguoOnlineDate(row map[string]any, now time.Time) string {
if date := providerTimestampDate(mapString(row, "first_visible_time")); date != "" {
return date
}
for _, value := range anyList(row["sub_title_list"]) {
label := mapString(nestedMap(value), "content")
day := now.In(providerChinaTime)
switch label {
case "今日上新":
return day.Format("2006-01-02")
case "昨日上新":
return day.AddDate(0, 0, -1).Format("2006-01-02")
default:
if strings.HasSuffix(label, "上新") {
date := normalizeDate(label)
if _, err := time.Parse("2006-01-02", date); err == nil {
return date
}
}
}
}
return ""
}