Simplify timeline pagination

This commit is contained in:
r 2021-01-23 07:02:12 +00:00
parent ace344b66a
commit eca0366c21

View File

@ -195,31 +195,12 @@ func (s *service) TimelinePage(c *client, tType string,
} }
} }
if len(maxID) > 0 && len(statuses) > 0 { if (len(maxID) > 0 || len(minID) > 0) && len(statuses) > 0 {
prevLink = fmt.Sprintf("/timeline/%s?min_id=%s", tType, prevLink = fmt.Sprintf("/timeline/%s?min_id=%s", tType,
statuses[0].ID) statuses[0].ID)
} }
if len(minID) > 0 && len(pg.MinID) > 0 { if len(minID) > 0 || (len(pg.MaxID) > 0 && len(statuses) == 20) {
newPg := &mastodon.Pagination{MinID: pg.MinID, Limit: 20}
newStatuses, err := c.GetTimelineHome(ctx, newPg)
if err != nil {
return err
}
newLen := len(newStatuses)
if newLen == 20 {
prevLink = fmt.Sprintf("/timeline/%s?min_id=%s",
tType, pg.MinID)
} else {
i := 20 - newLen - 1
if len(statuses) > i {
prevLink = fmt.Sprintf("/timeline/%s?min_id=%s",
tType, statuses[i].ID)
}
}
}
if len(pg.MaxID) > 0 && len(statuses) == 20 {
nextLink = fmt.Sprintf("/timeline/%s?max_id=%s", tType, pg.MaxID) nextLink = fmt.Sprintf("/timeline/%s?max_id=%s", tType, pg.MaxID)
} }