all repos — honk @ b0ea207cd95e21449744e8955a83fedce839a192

my fork of honk

experimental: pretty @urls
Anirudh Oppiliappan x@icyphox.sh
Tue, 15 Nov 2022 18:38:34 +0530
commit

b0ea207cd95e21449744e8955a83fedce839a192

parent

0e5c83ef2551d8dbe1f8e29dc6b3d35c53dda72a

2 files changed, 23 insertions(+), 4 deletions(-)

jump to
M activity.goactivity.go

@@ -1526,7 +1526,7 @@ }

if user.ID > 0 { j["type"] = "Person" - j["url"] = user.URL + j["url"] = fmt.Sprintf("https://%s/@%s", serverName, user.Name) j["followers"] = user.URL + "/followers" j["following"] = user.URL + "/following" a := junk.New()
M web.goweb.go

@@ -26,6 +26,7 @@ "net/http"

"net/url" "os" "os/signal" + "path" "regexp" "sort" "strconv"

@@ -2099,13 +2100,19 @@ return

} j := junk.New() + pretty := fmt.Sprintf("https://%s/@%s", serverName, name) j["subject"] = fmt.Sprintf("acct:%s@%s", user.Name, masqName) - j["aliases"] = []string{user.URL} + j["aliases"] = []string{pretty, user.URL} l := junk.New() l["rel"] = "self" l["type"] = `application/activity+json` l["href"] = user.URL - j["links"] = []junk.Junk{l} + + l2 := junk.New() + l2["rel"] = "http://webfinger.net/rel/profile-page" + l2["type"] = "text/html" + l2["href"] = pretty + j["links"] = []junk.Junk{l, l2} w.Header().Set("Content-Type", "application/jrd+json") j.Write(w)

@@ -2479,6 +2486,17 @@ time.Sleep(50 * time.Minute)

} } +func redirectPretty (w http.ResponseWriter, r *http.Request){ + last := path.Base(r.URL.Path) + name := mux.Vars(r)["name"] + aturl := "/@"+name + + if last == name { + last = "" + } + http.Redirect(w, r, path.Join(aturl, last), http.StatusMovedPermanently) +} + func serve() { db := opendatabase() login.Init(login.InitArgs{Db: db, Logger: ilog, Insecure: develMode})

@@ -2544,7 +2562,8 @@ getters.HandleFunc("/front", homepage)

getters.HandleFunc("/events", homepage) getters.HandleFunc("/robots.txt", nomoroboto) getters.HandleFunc("/rss", showrss) - getters.HandleFunc("/"+userSep+"/{name:[\\pL[:digit:]]+}", showuser) + getters.HandleFunc("/@{name:[\\pL[:digit:]]+}", showuser) + getters.HandleFunc("/"+userSep+"/{name:[\\pL[:digit:]]+}", redirectPretty) getters.HandleFunc("/"+userSep+"/{name:[\\pL[:digit:]]+}/"+honkSep+"/{xid:[\\pL[:digit:]]+}", showonehonk) getters.HandleFunc("/"+userSep+"/{name:[\\pL[:digit:]]+}/rss", showrss) posters.HandleFunc("/"+userSep+"/{name:[\\pL[:digit:]]+}/inbox", inbox)