package main import ( "net/http" "github.com/nbd-wtf/go-nostr/nip19" "github.com/theplant/htmlgo" ) func inviteTreeHandler(w http.ResponseWriter, r *http.Request) { content := inviteTreePageHTML(r.Context(), InviteTreePageParams{ loggedUser: getLoggedUser(r), }) htmlgo.Fprint(w, baseHTML(content), r.Context()) } func addToWhitelistHandler(w http.ResponseWriter, r *http.Request) { loggedUser := getLoggedUser(r) pubkey := r.PostFormValue("pubkey") if pfx, value, err := nip19.Decode(pubkey); err == nil && pfx == "npub" { pubkey = value.(string) } if err := addToWhitelist(pubkey, loggedUser); err != nil { http.Error(w, "failed to add to whitelist: "+err.Error(), 500) return } content := inviteTreeComponent(r.Context(), "", loggedUser) htmlgo.Fprint(w, content, r.Context()) } func removeFromWhitelistHandler(w http.ResponseWriter, r *http.Request) { loggedUser := getLoggedUser(r) pubkey := r.PostFormValue("pubkey") if err := removeFromWhitelist(pubkey, loggedUser); err != nil { http.Error(w, "failed to remove from whitelist: "+err.Error(), 500) return } content := inviteTreeComponent(r.Context(), "", loggedUser) htmlgo.Fprint(w, content, r.Context()) } func reportsViewerHandler(w http.ResponseWriter, r *http.Request) { // var formattedReportsData template.HTML = "" // events, _ := db.QueryEvents(context.Background(), nostr.Filter{ // Kinds: []int{1984}, // Limit: 52, // }) // type Report struct { // ID string // ByUser string // AboutUser string // AboutEvent string // Type string // Content string // } // for ev := range events { // pTag := ev.Tags.GetFirst([]string{"p"}) // eTag := ev.Tags.GetFirst([]string{"e"}) // if pTag != nil { // typeReport := eTag.Relay()[6:] // if typeReport == "" { // typeReport = pTag.Relay()[6:] // } // report := Report{ // ID: ev.ID, // ByUser: ev.PubKey, // AboutUser: pTag.Value(), // AboutEvent: eTag.Value(), // Type: typeReport, // Content: ev.Content, // } // // get AboutEvent content, note1 ect // formattedReportsData += template.HTML(fmt.Sprintf(` //
Report %v
//By User: %v
//About User: %v
`, // report.ID, // getUserInfo(context.Background(), report.ByUser).Npub, // getUserInfo(context.Background(), report.ByUser).Name, // getUserInfo(context.Background(), report.AboutUser).Npub, // getUserInfo(context.Background(), report.AboutUser).Name, // )) // if report.AboutEvent != "" { // // fetch event data // aboutEvents, _ := db.QueryEvents(context.TODO(), nostr.Filter{ // IDs: []string{report.AboutEvent}, // }) // for aboutEvent := range aboutEvents { // formattedReportsData += template.HTML(fmt.Sprintf(` //// About Event:
Kind: %v
//Tags: %v
//Content: %v
//Type: %v
`, // report.Type, // )) // if report.Content != "" { // formattedReportsData += template.HTML(fmt.Sprintf(` //Content: %v
//