# HG changeset patch # User Peter Sanchez # Date 1708786402 21600 # Sat Feb 24 08:53:22 2024 -0600 # Node ID 005a7322d224325053c38a944cfb760408275670 # Parent ca721b96e4e234c717cfd1db3002931ef4f13346 Integrating patch from @icy to add support for StreetPass browser extension. https://git.icyphox.sh/honk/commit/5950ef85c8e56db7596f02933be98fe084d59b76 diff --git a/web.go b/web.go --- a/web.go +++ b/web.go @@ -33,6 +33,7 @@ "net/url" "os" "os/signal" + "path/filepath" "regexp" "runtime/pprof" "sort" @@ -2269,12 +2270,19 @@ var oldfingers = gencache.New(gencache.Options[string, []byte]{Fill: func(orig string) ([]byte, bool) { if strings.HasPrefix(orig, "acct:") { orig = orig[5:] + } else { + orig, _ = url.QueryUnescape(orig) } name := orig idx := strings.LastIndexByte(name, '/') if idx != -1 { + url := serverURL("/%s/%s", userSep, name) name = name[idx+1:] - if serverURL("/%s/%s", userSep, name) != orig { + if strings.HasPrefix(name, "@") { + url = fmt.Sprintf("https://%s/%s", serverName, name) + name = name[1:] + } + if url != orig { ilog.Printf("foreign request rejected") name = "" } @@ -2300,7 +2308,17 @@ l["rel"] = "self" l["type"] = `application/activity+json` l["href"] = user.URL - j["links"] = []junk.Junk{l} + + l3 := junk.New() + l3["rel"] = "http://webfinger.net/rel/avatar" + ext := filepath.Ext(user.Options.Avatar) + if ext[1:] == "jpg" { + l3["type"] = "image/jpeg" + } else if ext[1:] == "png" { + l3["type"] = "image/png" + } + l3["href"] = user.Options.Avatar + j["links"] = []junk.Junk{l, l3} return j.ToBytes(), true }})