42 lines
1.2 KiB
Go
42 lines
1.2 KiB
Go
|
package pages
|
||
|
|
||
|
import (
|
||
|
"github.com/gofiber/fiber/v2"
|
||
|
|
||
|
"codeberg.org/Odyssium/gothub/utils"
|
||
|
)
|
||
|
|
||
|
type Items struct {
|
||
|
Fullname string
|
||
|
Description string
|
||
|
HtmlUrl string
|
||
|
Stars int64
|
||
|
Forks int64
|
||
|
Watchers int64
|
||
|
Language string
|
||
|
License string
|
||
|
}
|
||
|
|
||
|
func HandleExplore(c *fiber.Ctx) error {
|
||
|
// get trending repos
|
||
|
trendingRepos := utils.GetRequest("https://api.github.com/search/repositories?q=code&sort=stars&order=desc&per_page=25")
|
||
|
bruh2 := trendingRepos.Get("items").Array() // gjson.Result when I ask for an array. idiots, anyway so I have to do jank shit like this and I hate it. at least it works and is fast enough
|
||
|
var trendingReposArray []Items
|
||
|
for _, item := range bruh2 {
|
||
|
trendingReposArray = append(trendingReposArray, Items{
|
||
|
Fullname: item.Get("full_name").String(),
|
||
|
Description: item.Get("description").String(),
|
||
|
HtmlUrl: item.Get("html_url").String(),
|
||
|
Stars: item.Get("stargazers_count").Int(),
|
||
|
Forks: item.Get("forks_count").Int(),
|
||
|
Watchers: item.Get("watchers_count").Int(),
|
||
|
Language: item.Get("language").String(),
|
||
|
License: item.Get("license").Get("name").String(),
|
||
|
})
|
||
|
}
|
||
|
|
||
|
return c.Render("explore", fiber.Map{
|
||
|
"repos": trendingReposArray,
|
||
|
})
|
||
|
}
|