all repos — honk @ 63d8b46546c5ee6a19685260f3776f737dcc4525

my fork of honk

fetch pfp attempt uno
Anirudh Oppiliappan x@icyphox.sh
Tue, 08 Nov 2022 15:41:52 +0530
commit

63d8b46546c5ee6a19685260f3776f737dcc4525

parent

572de17b7e57bb1249b7a3e628c77d04d5415410

1 files changed, 39 insertions(+), 3 deletions(-)

jump to
M web.goweb.go

@@ -2103,17 +2103,53 @@ secs := 432000 + notrand.Int63n(432000)

return fmt.Sprintf("%d", secs) } +func isurl(s string) bool { + u, err := url.Parse(s) + return err == nil && u.Scheme != "" && u.Host != "" +} + +func avatateautogen(r *http.Request) []byte { + hex := r.FormValue("hex") == "1" + n := r.FormValue("a") + return genAvatar(n, hex) +} + func avatate(w http.ResponseWriter, r *http.Request) { if develMode { loadAvatarColors() } + var a []byte n := r.FormValue("a") - dlog.Println("avatating: ", n) - hex := r.FormValue("hex") == "1" - a := genAvatar(n, hex) + + if isurl(n) { + uinfo := login.GetUserInfo(r) + j, err := GetJunkFast(uinfo.UserID, n) + if err != nil { + dlog.Println("avatating: getting junk:", err) + a = avatateautogen(r) + } + pfpurl, _ := j.GetString("icon", "url") + res, err := http.Get(pfpurl) + if err != nil { + dlog.Println("avatating: getting pfp url:", err) + a = avatateautogen(r) + } + defer res.Body.Close() + + pfpbytes, err := io.ReadAll(res.Body) + if err != nil { + dlog.Println("avatating: bruh shits clapped:", err) + a = avatateautogen(r) + } + a = pfpbytes + } else { + a = avatateautogen(r) + } + if !develMode { w.Header().Set("Cache-Control", "max-age="+somedays()) } + w.Write(a) }