we dont need gh api for users anymore

このコミットが含まれているのは:
Arya Kiran 2023-02-13 20:15:58 +05:30
コミット 9d84a830a9
この署名に対応する既知のキーがデータベースに存在しません
GPGキーID: 842D12BDA50DF120
2個のファイルの変更8行の追加50行の削除

ファイルの表示

@ -37,63 +37,22 @@ type User struct {
Readme string
}
type Ratelimit struct {
Remaining int64
Limit int64
}
// HandleUser handles the user page.
func HandleUser(c *fiber.Ctx) error {
// Declare Array used for displaying data
var userArray []User
resp, err := http.Get("https://github.com/" + c.Params("user"))
if err != nil {
log.Println(err)
}
if resp.StatusCode == 404 {
// I need a better way to do this
return c.Status(404).Render("error", fiber.Map{
"error": "User " + c.Params("user") + " not found",
"error": "User " + c.Params("user") + " not found",
})
}
// API
user := utils.GetRequest("https://api.github.com/users/" + c.Params("user"))
var link string
if user.Get("message").String() == "Not Found" {
return c.Status(404).Render("error", fiber.Map{
"error": "User " + c.Params("user") + " not found",
})
}
if strings.Contains(user.Get("message").String(), "rate limit") { // dont wanna get the status code so i'll just do this instead 👍
ratelimitJSON := utils.GetRequest("https://api.github.com/rate_limit")
log.Println(ratelimitJSON)
var ratelimitArray []Ratelimit
ratelimitArray = append(ratelimitArray, Ratelimit{
Remaining: ratelimitJSON.Get("resources.core.remaining").Int(),
Limit: ratelimitJSON.Get("resources.core.limit").Int(),
})
log.Println(ratelimitArray)
return c.Render("ratelimit", fiber.Map{
"Title": "GitHub API /users endpoint rate limit exceeded",
"ratelimit": ratelimitArray,
})
} else {
if user.Get("blog").String() == "" {
link = ""
} else {
link = user.Get("blog").String()
if strings.HasPrefix(link, "https://") {
link = strings.TrimPrefix(link, "https://")
} else if strings.HasPrefix(link, "http://") {
link = strings.TrimPrefix(link, "http://")
} else {
log.Println("Has no prefix")
}
}
}
// User README
var readmee string
@ -115,7 +74,7 @@ func HandleUser(c *fiber.Ctx) error {
// Sanitize the user README incase there is any weird shit in it
readmeOutput := utils.UGCPolicy().SanitizeBytes(mightBeUnsafe)
// scraping
// Scraping
Scrape := User{
Readme: string(readmeOutput),
}
@ -189,17 +148,16 @@ func HandleUser(c *fiber.Ctx) error {
sc.Visit("https://github.com/" + c.Params("user") + "/")
// Fixing the output a bit
Scrape.AvatarUrl = strings.TrimPrefix(Scrape.AvatarUrl, "https://avatars.githubusercontent.com/u/")
Scrape.AvatarUrl = "/avatar/" + Scrape.AvatarUrl
Scrape.AvatarUrl = "/avatar/" + Scrape.AvatarUrl // Avatar needs to be in /avatar so its proxied
if Scrape.StatusEmoji != "" {
Scrape.StatusEmoji = emoji.Parse(":" + Scrape.StatusEmoji + ":")
Scrape.StatusEmoji = emoji.Parse(":" + Scrape.StatusEmoji + ":") // Convert the emoji code to an actual emoji
}
Scrape.Login = strings.TrimPrefix(Scrape.Login, "@") // Only for orgs
// Remove HTTP(s) from user website url if it exists
if strings.HasPrefix(Scrape.Link, "https://") {
Scrape.Link = strings.TrimPrefix(Scrape.Link, "https://")
} else if strings.HasPrefix(Scrape.Link, "http://") {
Scrape.Link = strings.TrimPrefix(Scrape.Link, "http://")
} else {
log.Println("Has no prefix")
}
// Add scrape-based info to userArray

ファイルの表示

@ -3,7 +3,7 @@ package utils
import (
"io"
"net/http"
"os"
"github.com/tidwall/gjson"
)