diff options
Diffstat (limited to 'cmd/generate/src_contribs.go')
-rw-r--r-- | cmd/generate/src_contribs.go | 19 |
1 files changed, 15 insertions, 4 deletions
diff --git a/cmd/generate/src_contribs.go b/cmd/generate/src_contribs.go index 9c7bcd6..0ead1cd 100644 --- a/cmd/generate/src_contribs.go +++ b/cmd/generate/src_contribs.go @@ -130,15 +130,19 @@ func (c Contribution) fetchStatus() (string, error) { } func (c Contribution) fetchSubmittedAt() (time.Time, error) { + var ret time.Time for _, forge := range forges { submittedAt, err := forge.FetchSubmittedAt(c.URLs) if err != nil { return time.Time{}, err } - if !submittedAt.IsZero() { - return submittedAt, nil + if !submittedAt.IsZero() && (ret.IsZero() || submittedAt.Before(ret)) { + ret = submittedAt } } + if !ret.IsZero() { + return ret, nil + } return time.Time{}, fmt.Errorf("idk how to get created timestamp for %q", c.URLs[0]) } @@ -151,14 +155,21 @@ func withinOneSecond(a, b time.Time) bool { } func (c Contribution) fetchLastUpdated() (time.Time, User, error) { + var ret struct { + time.Time + User + } for _, forge := range forges { updatedAt, updatedBy, err := forge.FetchLastUpdated(c.URLs) if err != nil { return time.Time{}, User{}, err } - if !updatedAt.IsZero() { - return updatedAt, updatedBy, nil + if !updatedAt.IsZero() && (ret.Time.IsZero() || updatedAt.After(ret.Time)) { + ret.Time, ret.User = updatedAt, updatedBy } } + if !ret.Time.IsZero() { + return ret.Time, ret.User, nil + } return time.Time{}, User{}, nil //fmt.Errorf("idk how to get updated timestamp for %q", c.URLs[0]) } |