feat: rhythm tracking and structured review

This commit is contained in:
voocel
2026-03-10 17:24:48 +08:00
parent ef55c89e9d
commit 0a48b66ed1
14 changed files with 246 additions and 80 deletions

View File

@@ -37,6 +37,22 @@ func (s *Store) AppendTimelineEvents(newEvents []domain.TimelineEvent) error {
return s.SaveTimeline(append(existing, newEvents...))
}
// LoadRecentTimeline 返回最近 window 章内的时间线事件chapter >= current-window
func (s *Store) LoadRecentTimeline(current, window int) ([]domain.TimelineEvent, error) {
all, err := s.LoadTimeline()
if err != nil {
return nil, err
}
minCh := max(current-window, 1)
var filtered []domain.TimelineEvent
for _, e := range all {
if e.Chapter >= minCh {
filtered = append(filtered, e)
}
}
return filtered, nil
}
func renderTimeline(events []domain.TimelineEvent) string {
var b strings.Builder
b.WriteString("# 时间线\n\n")