mirror of
https://github.com/fiatjaf/khatru.git
synced 2026-04-21 12:17:53 +02:00
update go-nostr.
This commit is contained in:
@@ -8,14 +8,13 @@ import (
|
||||
"strconv"
|
||||
"strings"
|
||||
|
||||
"github.com/fiatjaf/go-nostr/event"
|
||||
"github.com/fiatjaf/go-nostr/filter"
|
||||
"github.com/fiatjaf/go-nostr"
|
||||
"github.com/rs/zerolog/log"
|
||||
)
|
||||
|
||||
func (b *BasicRelay) QueryEvents(
|
||||
filter *filter.EventFilter,
|
||||
) (events []event.Event, err error) {
|
||||
filter *nostr.EventFilter,
|
||||
) (events []nostr.Event, err error) {
|
||||
var conditions []string
|
||||
var params []interface{}
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ import (
|
||||
"fmt"
|
||||
"strings"
|
||||
|
||||
"github.com/fiatjaf/go-nostr/event"
|
||||
"github.com/fiatjaf/go-nostr"
|
||||
)
|
||||
|
||||
func (b *BasicRelay) SaveEvent(evt *event.Event) error {
|
||||
func (b *BasicRelay) SaveEvent(evt *nostr.Event) error {
|
||||
// disallow large contents
|
||||
if len(evt.Content) > 1000 {
|
||||
return errors.New("event content too large")
|
||||
@@ -17,14 +17,14 @@ func (b *BasicRelay) SaveEvent(evt *event.Event) error {
|
||||
|
||||
// react to different kinds of events
|
||||
switch evt.Kind {
|
||||
case event.KindSetMetadata:
|
||||
case nostr.KindSetMetadata:
|
||||
// delete past set_metadata events from this user
|
||||
b.DB.Exec(`DELETE FROM event WHERE pubkey = $1 AND kind = 0`, evt.PubKey)
|
||||
case event.KindRecommendServer:
|
||||
case nostr.KindRecommendServer:
|
||||
// delete past recommend_server events equal to this one
|
||||
b.DB.Exec(`DELETE FROM event WHERE pubkey = $1 AND kind = 2 AND content = $2`,
|
||||
evt.PubKey, evt.Content)
|
||||
case event.KindContactList:
|
||||
case nostr.KindContactList:
|
||||
// delete past contact lists from this same pubkey
|
||||
b.DB.Exec(`DELETE FROM event WHERE pubkey = $1 AND kind = 3`, evt.PubKey)
|
||||
default:
|
||||
|
||||
2
go.mod
2
go.mod
@@ -3,7 +3,7 @@ module github.com/fiatjaf/relayer
|
||||
go 1.15
|
||||
|
||||
require (
|
||||
github.com/fiatjaf/go-nostr v0.3.0
|
||||
github.com/fiatjaf/go-nostr v0.4.1
|
||||
github.com/gorilla/mux v1.8.0
|
||||
github.com/gorilla/websocket v1.4.2
|
||||
github.com/jmoiron/sqlx v1.3.1
|
||||
|
||||
6
go.sum
6
go.sum
@@ -17,10 +17,8 @@ github.com/davecgh/go-spew v1.1.1 h1:vj9j/u1bqnvCEfJOwUhtlOARqs3+rkHYY13jYWTU97c
|
||||
github.com/davecgh/go-spew v1.1.1/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
github.com/fiatjaf/bip340 v1.1.0 h1:W+CnUU3RyqgMKS2S9t/r2l3L4D+sSkRtU4la7MlVBR8=
|
||||
github.com/fiatjaf/bip340 v1.1.0/go.mod h1:MxAz+5FQUTW4OT2gnCBC6Our486wmqf72ykZIrh7+is=
|
||||
github.com/fiatjaf/go-nostr v0.2.1 h1:oMNyNKA+9k675y/hyQ4z+qm90aVvfzpiMSFS5wQ5pfI=
|
||||
github.com/fiatjaf/go-nostr v0.2.1/go.mod h1:Uw7NI2zQE2QYgcT5495pZguoHoYRIrmXvLRO0eXhOs0=
|
||||
github.com/fiatjaf/go-nostr v0.3.0 h1:Ccdn2E8to99TSb691YUieKbFkvfkaM2fwjQJovfpzRU=
|
||||
github.com/fiatjaf/go-nostr v0.3.0/go.mod h1:Uw7NI2zQE2QYgcT5495pZguoHoYRIrmXvLRO0eXhOs0=
|
||||
github.com/fiatjaf/go-nostr v0.4.1 h1:kYgdEFAojK0tuaYqt6FWs1uVw5QJJni6ShbQqfL3Gos=
|
||||
github.com/fiatjaf/go-nostr v0.4.1/go.mod h1:Uw7NI2zQE2QYgcT5495pZguoHoYRIrmXvLRO0eXhOs0=
|
||||
github.com/fsnotify/fsnotify v1.4.7/go.mod h1:jwhsz4b93w/PPRr/qN1Yymfu8t87LnFCMoQvtojpjFo=
|
||||
github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs=
|
||||
github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg=
|
||||
|
||||
@@ -7,8 +7,7 @@ import (
|
||||
"net/http"
|
||||
"time"
|
||||
|
||||
"github.com/fiatjaf/go-nostr/event"
|
||||
"github.com/fiatjaf/go-nostr/filter"
|
||||
"github.com/fiatjaf/go-nostr"
|
||||
"github.com/gorilla/websocket"
|
||||
)
|
||||
|
||||
@@ -95,7 +94,7 @@ func handleWebsocket(relay Relay) func(http.ResponseWriter, *http.Request) {
|
||||
switch typ {
|
||||
case "EVENT":
|
||||
// it's a new event
|
||||
var evt event.Event
|
||||
var evt nostr.Event
|
||||
if err := json.Unmarshal(request[1], &evt); err != nil {
|
||||
notice = "failed to decode event: " + err.Error()
|
||||
return
|
||||
@@ -132,7 +131,7 @@ func handleWebsocket(relay Relay) func(http.ResponseWriter, *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
filters := make(filter.EventFilters, len(request)-2)
|
||||
filters := make(nostr.EventFilters, len(request)-2)
|
||||
for i, filterReq := range request[2:] {
|
||||
if err := json.Unmarshal(
|
||||
filterReq,
|
||||
|
||||
@@ -1,8 +1,7 @@
|
||||
package relayer
|
||||
|
||||
import (
|
||||
"github.com/fiatjaf/go-nostr/event"
|
||||
"github.com/fiatjaf/go-nostr/filter"
|
||||
"github.com/fiatjaf/go-nostr"
|
||||
)
|
||||
|
||||
var Log = log
|
||||
@@ -10,10 +9,10 @@ var Log = log
|
||||
type Relay interface {
|
||||
Name() string
|
||||
Init() error
|
||||
SaveEvent(*event.Event) error
|
||||
QueryEvents(*filter.EventFilter) ([]event.Event, error)
|
||||
SaveEvent(*nostr.Event) error
|
||||
QueryEvents(*nostr.EventFilter) ([]nostr.Event, error)
|
||||
}
|
||||
|
||||
type Injector interface {
|
||||
InjectEvents() chan event.Event
|
||||
InjectEvents() chan nostr.Event
|
||||
}
|
||||
|
||||
15
listener.go
15
listener.go
@@ -3,20 +3,19 @@ package relayer
|
||||
import (
|
||||
"sync"
|
||||
|
||||
"github.com/fiatjaf/go-nostr/event"
|
||||
"github.com/fiatjaf/go-nostr/filter"
|
||||
"github.com/fiatjaf/go-nostr"
|
||||
"github.com/gorilla/websocket"
|
||||
)
|
||||
|
||||
type Listener struct {
|
||||
filters filter.EventFilters
|
||||
filters nostr.EventFilters
|
||||
}
|
||||
|
||||
var listeners = make(map[*websocket.Conn]map[string]*Listener)
|
||||
var listenersMutex = sync.Mutex{}
|
||||
|
||||
func GetListeningFilters() filter.EventFilters {
|
||||
var respfilters = make(filter.EventFilters, 0, len(listeners)*2)
|
||||
func GetListeningFilters() nostr.EventFilters {
|
||||
var respfilters = make(nostr.EventFilters, 0, len(listeners)*2)
|
||||
|
||||
listenersMutex.Lock()
|
||||
defer func() {
|
||||
@@ -29,7 +28,7 @@ func GetListeningFilters() filter.EventFilters {
|
||||
for _, listenerfilter := range listener.filters {
|
||||
for _, respfilter := range respfilters {
|
||||
// check if this filter specifically is already added to respfilters
|
||||
if filter.Equal(listenerfilter, respfilter) {
|
||||
if nostr.Equal(listenerfilter, respfilter) {
|
||||
goto nextconn
|
||||
}
|
||||
}
|
||||
@@ -48,7 +47,7 @@ func GetListeningFilters() filter.EventFilters {
|
||||
return respfilters
|
||||
}
|
||||
|
||||
func setListener(id string, conn *websocket.Conn, filters filter.EventFilters) {
|
||||
func setListener(id string, conn *websocket.Conn, filters nostr.EventFilters) {
|
||||
listenersMutex.Lock()
|
||||
defer func() {
|
||||
listenersMutex.Unlock()
|
||||
@@ -80,7 +79,7 @@ func removeListener(conn *websocket.Conn, id string) {
|
||||
}
|
||||
}
|
||||
|
||||
func notifyListeners(event *event.Event) {
|
||||
func notifyListeners(event *nostr.Event) {
|
||||
listenersMutex.Lock()
|
||||
defer func() {
|
||||
listenersMutex.Unlock()
|
||||
|
||||
Reference in New Issue
Block a user