this repo has no description

feat: use cursor as LIMIT

Changed files
+20 -13
cmd
feedweb
pkg
mostliked
+6 -1
cmd/feedweb/main.go
··· 43 43 limit = l 44 44 } 45 45 } 46 + var cursor string = "0" 47 + if req.Cursor != "" { 48 + cursor = req.Cursor 49 + } 46 50 47 51 params := feeds.FeedgenParams{ 48 52 Feed: req.Feed, 49 53 Limit: limit, 50 - Cursor: req.Cursor, 54 + Cursor: cursor, 51 55 Langs: parseLangs(c.Request().Header.Get("Accept-Language")), 52 56 } 57 + 53 58 feedFunc, ok := generators[req.Feed] 54 59 if !ok { 55 60 return c.String(http.StatusNotFound, "feed not found")
+14 -12
pkg/mostliked/generator.go
··· 34 34 } 35 35 fmt.Fprint(&query, " ) ") 36 36 } 37 - if params.Cursor != "" { 38 - fmt.Fprint(&query, " AND likes <= ? ") 39 - queryParams = append(queryParams, params.Cursor) 40 - } 41 37 fmt.Fprint(&query, "ORDER BY likes DESC, create_ts DESC ") 42 - fmt.Fprint(&query, "LIMIT ?") 43 - queryParams = append(queryParams, params.Limit+1) 38 + fmt.Fprint(&query, "LIMIT ? OFFSET ?") 39 + queryParams = append(queryParams, params.Limit, params.Cursor) 40 + fmt.Println(query.String(), queryParams) 44 41 45 42 rows, err := dbCnx.QueryContext(ctx, query.String(), queryParams...) 46 43 if err != nil { ··· 76 73 var cursor string 77 74 posts := make([]*appbsky.FeedDefs_SkeletonFeedPost, 0, params.Limit) 78 75 79 - for idx, row := range rows { 80 - if idx+1 <= params.Limit { 81 - posts = append(posts, &appbsky.FeedDefs_SkeletonFeedPost{Post: row.Uri}) 82 - } 83 - cursor = strconv.Itoa(row.Likes) 76 + for _, row := range rows { 77 + posts = append(posts, &appbsky.FeedDefs_SkeletonFeedPost{Post: row.Uri}) 84 78 } 85 79 86 80 skeleton := appbsky.FeedGetFeedSkeleton_Output{ 87 81 Feed: posts, 88 82 } 89 83 90 - if len(rows) == params.Limit { 84 + var offset int = 0 85 + offset, err = strconv.Atoi(params.Cursor) 86 + if err != nil { 87 + log.Println("error converting cursor") 88 + } 89 + offset += len(posts) 90 + cursor = strconv.Itoa(offset) 91 + 92 + if len(posts) == params.Limit { 91 93 skeleton.Cursor = &cursor 92 94 } 93 95