resolve relative icon and banner urls in nip11 handler.

This commit is contained in:
fiatjaf
2025-02-23 18:20:54 -03:00
parent 6e224b9437
commit 7c6031f4e5
2 changed files with 11 additions and 1 deletions

View File

@@ -3,6 +3,7 @@ package khatru
import (
"encoding/json"
"net/http"
"strings"
)
func (rl *Relay) HandleNIP11(w http.ResponseWriter, r *http.Request) {
@@ -20,6 +21,15 @@ func (rl *Relay) HandleNIP11(w http.ResponseWriter, r *http.Request) {
info.AddSupportedNIP(77)
}
// resolve relative icon and banner URLs against base URL
baseURL := rl.getBaseURL(r)
if info.Icon != "" && !strings.HasPrefix(info.Icon, "http://") && !strings.HasPrefix(info.Icon, "https://") {
info.Icon = strings.TrimSuffix(baseURL, "/") + "/" + strings.TrimPrefix(info.Icon, "/")
}
if info.Banner != "" && !strings.HasPrefix(info.Banner, "http://") && !strings.HasPrefix(info.Banner, "https://") {
info.Banner = strings.TrimSuffix(baseURL, "/") + "/" + strings.TrimPrefix(info.Banner, "/")
}
for _, ovw := range rl.OverwriteRelayInformation {
info = ovw(r.Context(), r, info)
}