diff --git a/api/search.go b/api/search.go index 734d6ed..f784e37 100644 --- a/api/search.go +++ b/api/search.go @@ -21,9 +21,9 @@ type SearchResult struct { RelTime string } -func (client *Client) Search(query string) ([]SearchResult, error) { +func (client *Client) Search(query string, page string) ([]SearchResult, error) { query = url.QueryEscape(query) - req, err := http.NewRequest("GET", "https://imgur.com/search?qs=list&q=" + query, nil) + req, err := http.NewRequest("GET", "https://imgur.com/search/all/page/" + page + "?scrolled&q_size_is_mpx=off&qs=list&q=" + query, nil) if err != nil { return []SearchResult{}, err } diff --git a/pages/search.go b/pages/search.go index 4a2164e..ac9cbf9 100644 --- a/pages/search.go +++ b/pages/search.go @@ -1,6 +1,8 @@ package pages import ( + "strconv" + "codeberg.org/rimgo/rimgo/utils" "github.com/gofiber/fiber/v2" ) @@ -17,7 +19,7 @@ func HandleSearch(c *fiber.Ctx) error { return c.Redirect(utils.ImgurRe.ReplaceAllString(query, "")) } - /*page := "1" + page := "0" if c.Query("page") != "" { page = c.Query("page") } @@ -28,21 +30,21 @@ func HandleSearch(c *fiber.Ctx) error { } displayPrevPage := true - if page == "1" { + if page == "0" { displayPrevPage = false - }*/ + } - results, err := ApiClient.Search(query) + results, err := ApiClient.Search(query, page) if err != nil { return err } return c.Render("search", fiber.Map{ - "query": query, - "results": results, - /*"page": page, + "query": query, + "results": results, + "page": pageNumber + 1, "displayPrev": displayPrevPage, "nextPage": pageNumber + 1, - "prevPage": pageNumber - 1,*/ + "prevPage": pageNumber - 1, }) } diff --git a/views/search.hbs b/views/search.hbs index 096ebec..57ba781 100644 --- a/views/search.hbs +++ b/views/search.hbs @@ -20,6 +20,14 @@ {{> partials/result }} {{/each}} + +
+ {{#if displayPrev}} + Previous page + {{/if}} +

Page {{page}}

+ Next page +
{{> partials/footer }}