summaryrefslogtreecommitdiff
path: root/cmd/generate/src_contribs.go
diff options
context:
space:
mode:
authorLuke T. Shumaker <lukeshu@lukeshu.com>2024-06-08 17:51:41 -0600
committerLuke T. Shumaker <lukeshu@lukeshu.com>2024-06-08 17:51:41 -0600
commit5dc2e9533a111d75ff91a56dd50af8e03ebf5f5f (patch)
treee90d2b74612ecb44fb0e41a19e44483f90a071ba /cmd/generate/src_contribs.go
parentf6080300406a674419dba5005c76bc424df35502 (diff)
wip pipermail threading
Diffstat (limited to 'cmd/generate/src_contribs.go')
-rw-r--r--cmd/generate/src_contribs.go19
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])
}