Centralize daypart key canonicalization

This commit is contained in:
2026-08-13 01:00:54 +00:00
parent daf0c7efd7
commit 13829cc65c
4 changed files with 46 additions and 40 deletions

View File

@@ -400,7 +400,7 @@ func multipleSummaryDates(summaries []forecast.DailySummary) bool {
}
func daypartKey(daypart forecast.DaypartSummary, prefixDate bool) string {
key := normalizedKey(daypart.Name)
key := forecast.CanonicalDaypartKey(daypart.Name)
if key == "" {
key = "unnamed"
}
@@ -409,21 +409,3 @@ func daypartKey(daypart forecast.DaypartSummary, prefixDate bool) string {
}
return daypart.Period.Start.Format(timeutil.DateLayout) + "_" + key
}
func normalizedKey(value string) string {
lower := strings.ToLower(strings.TrimSpace(value))
var out strings.Builder
lastUnderscore := false
for _, r := range lower {
if unicode.IsLetter(r) || unicode.IsDigit(r) {
out.WriteRune(r)
lastUnderscore = false
continue
}
if !lastUnderscore {
out.WriteByte('_')
lastUnderscore = true
}
}
return strings.Trim(out.String(), "_")
}