Skip to content

Commit 03cdabb

Browse files
committed
Simplify PopulatedYears by reusing newestMessageInRange
1 parent c565811 commit 03cdabb

1 file changed

Lines changed: 1 addition & 29 deletions

File tree

gmail.go

Lines changed: 1 addition & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -198,36 +198,8 @@ func (g *GmailClient) listMessageIDs(ctx context.Context, labelID string, afterE
198198

199199
// Cost: O(populated_years + 1) API calls.
200200
func (g *GmailClient) PopulatedYears(ctx context.Context, labelID string, cache *Cache) ([]int, error) {
201-
if err := g.limiter.Wait(ctx); err != nil {
202-
return nil, err
203-
}
204-
205-
slog.Debug("gmail API", slog.String("method", "messages.list"), slog.String("label", labelID), slog.String("q", "(newest)"))
206-
resp, err := g.messagesList(labelID).
207-
MaxResults(1).
208-
Context(ctx).
209-
Do()
210-
if err != nil {
211-
return nil, fmt.Errorf("finding newest message: %w", err)
212-
}
213-
214-
if len(resp.Messages) == 0 {
215-
return nil, nil
216-
}
217-
218-
stubs, err := g.GetMessageStubs(ctx, []string{resp.Messages[0].Id}, cache)
219-
if err != nil {
220-
return nil, err
221-
}
222-
223-
stub, ok := stubs[resp.Messages[0].Id]
224-
if !ok {
225-
return nil, nil
226-
}
227-
228-
// Scan backwards from the newest message's year.
229201
var years []int
230-
cursor := time.Date(time.UnixMilli(stub.InternalDate).In(time.Local).Year()+1, 1, 1, 0, 0, 0, 0, time.Local).Unix()
202+
cursor := time.Now().AddDate(1, 0, 0).Unix()
231203
for {
232204
s, found, err := g.newestMessageInRange(ctx, labelID, 0, cursor, cache)
233205
if err != nil {

0 commit comments

Comments
 (0)