From 9d84a830a900a7613aba393203efc067506b066f Mon Sep 17 00:00:00 2001 From: Arya Kiran Date: Mon, 13 Feb 2023 20:15:58 +0530 Subject: [PATCH] we dont need gh api for users anymore --- pages/user.go | 56 ++++++--------------------------------------- utils/getrequest.go | 2 +- 2 files changed, 8 insertions(+), 50 deletions(-) diff --git a/pages/user.go b/pages/user.go index 4049649..75f3aa2 100644 --- a/pages/user.go +++ b/pages/user.go @@ -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 diff --git a/utils/getrequest.go b/utils/getrequest.go index 8516537..1c486fa 100644 --- a/utils/getrequest.go +++ b/utils/getrequest.go @@ -3,7 +3,7 @@ package utils import ( "io" "net/http" - + "os" "github.com/tidwall/gjson" )