implement nip-09, event deletion.

This commit is contained in:
fiatjaf
2022-07-11 16:21:47 -03:00
parent 8cc12a6bd9
commit 4daac2fc28
2 changed files with 15 additions and 0 deletions

View File

@@ -4,6 +4,7 @@ import (
"crypto/sha256"
"encoding/hex"
"encoding/json"
"fmt"
"net/http"
"time"
@@ -119,6 +120,19 @@ func handleWebsocket(relay Relay) func(http.ResponseWriter, *http.Request) {
return
}
if evt.Kind == 5 {
// event deletion -- nip09
for _, tag := range evt.Tags {
if len(tag) >= 2 && tag[0] == "e" {
if err := relay.DeleteEvent(tag[1], evt.PubKey); err != nil {
notice = fmt.Sprintf("failed to delete: %s", err.Error())
return
}
}
}
return
}
err = relay.SaveEvent(&evt)
if err != nil {
notice = err.Error()

View File

@@ -11,6 +11,7 @@ type Relay interface {
Name() string
Init() error
SaveEvent(*nostr.Event) error
DeleteEvent(id string, pubkey string) error
QueryEvents(*nostr.Filter) ([]nostr.Event, error)
}