forked from tangled.org/core
this repo has no description
1package db 2 3import ( 4 "sort" 5 "time" 6) 7 8type TimelineEvent struct { 9 *Repo 10 *Follow 11 EventAt time.Time 12} 13 14func MakeTimeline(e Execer) ([]TimelineEvent, error) { 15 var events []TimelineEvent 16 17 repos, err := GetAllRepos(e) 18 if err != nil { 19 return nil, err 20 } 21 22 follows, err := GetAllFollows(e) 23 if err != nil { 24 return nil, err 25 } 26 27 for _, repo := range repos { 28 events = append(events, TimelineEvent{ 29 Repo: &repo, 30 Follow: nil, 31 EventAt: repo.Created, 32 }) 33 } 34 35 for _, follow := range follows { 36 events = append(events, TimelineEvent{ 37 Repo: nil, 38 Follow: &follow, 39 EventAt: follow.FollowedAt, 40 }) 41 } 42 43 sort.Slice(events, func(i, j int) bool { 44 return events[i].EventAt.After(events[j].EventAt) 45 }) 46 47 // Limit the slice to 100 events 48 if len(events) > 50 { 49 events = events[:50] 50 } 51 52 return events, nil 53}