From cd99584ffa33c95ea9939a99e83f4023a2b643c1 Mon Sep 17 00:00:00 2001 From: Ted Unangst Date: Mon, 7 Oct 2019 15:29:34 -0400 Subject: [PATCH] cache users table --- database.go | 18 +++++++++++++++--- web.go | 1 + 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/database.go b/database.go index 794727b..a0b3d26 100644 --- a/database.go +++ b/database.go @@ -28,14 +28,26 @@ import ( "humungus.tedunangst.com/r/webs/login" ) -func butwhatabout(name string) (*WhatAbout, error) { +var someusers = cacheNew(cacheOptions { Filler: func(name string) (*WhatAbout, bool) { row := stmtWhatAbout.QueryRow(name) - var user WhatAbout + user := new (WhatAbout) var options string err := row.Scan(&user.ID, &user.Name, &user.Display, &user.About, &user.Key, &options) + if err != nil { + return nil, false + } user.URL = fmt.Sprintf("https://%s/%s/%s", serverName, userSep, user.Name) user.SkinnyCSS = strings.Contains(options, " skinny ") - return &user, err + return user, true +}}) + +func butwhatabout(name string) (*WhatAbout, error) { + var user *WhatAbout + ok := someusers.Get(name, &user) + if !ok { + return nil, fmt.Errorf("no user: %s", name) + } + return user, nil } func gethonkers(userid int64) []*Honker { diff --git a/web.go b/web.go index 06a2910..16ec947 100644 --- a/web.go +++ b/web.go @@ -734,6 +734,7 @@ func saveuser(w http.ResponseWriter, r *http.Request) { if err != nil { log.Printf("error bouting what: %s", err) } + someusers.Clear(u.Username) http.Redirect(w, r, "/account", http.StatusSeeOther) }