mirror of
https://github.com/aljazceru/khatru.git
synced 2025-12-25 01:04:24 +01:00
upgrade to go-nostr v0.2.0.
This commit is contained in:
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.1.4
|
||||
github.com/fiatjaf/go-nostr v0.2.0
|
||||
github.com/gorilla/mux v1.8.0
|
||||
github.com/gorilla/websocket v1.4.2
|
||||
github.com/jmoiron/sqlx v1.3.1
|
||||
|
||||
8
go.sum
8
go.sum
@@ -15,10 +15,10 @@ github.com/coreos/go-systemd v0.0.0-20190321100706-95778dfbb74e/go.mod h1:F5haX7
|
||||
github.com/davecgh/go-spew v0.0.0-20171005155431-ecdeabc65495/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38=
|
||||
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.0.0 h1:mpwbm+0KC9BXB/7/pnac4e4N1TiuppyEVXxtVAXj75k=
|
||||
github.com/fiatjaf/bip340 v1.0.0/go.mod h1:MxAz+5FQUTW4OT2gnCBC6Our486wmqf72ykZIrh7+is=
|
||||
github.com/fiatjaf/go-nostr v0.1.4 h1:OicdiaKBgt8UaI3/Eh+TIcC1uuMlXJMl+5IU7QqmgYo=
|
||||
github.com/fiatjaf/go-nostr v0.1.4/go.mod h1:Zwa4KwVMy3gLoMbbrH+NOZvqmrDADCIV+C67ew7VEqs=
|
||||
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.0 h1:qAhi+K5f6KhC54Bk2cWpdw0BThkNCYehUZTC+NsgNQY=
|
||||
github.com/fiatjaf/go-nostr v0.2.0/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=
|
||||
|
||||
@@ -105,14 +105,14 @@ func handleWebsocket(w http.ResponseWriter, r *http.Request) {
|
||||
return
|
||||
}
|
||||
|
||||
filters := make([]*filter.EventFilter, len(request)-2)
|
||||
filters := make(filter.EventFilters, len(request)-2)
|
||||
for i, filterReq := range request[2:] {
|
||||
err = json.Unmarshal(filterReq, &filters[i])
|
||||
if err != nil {
|
||||
return
|
||||
}
|
||||
|
||||
events, err := queryEvents(filters[i])
|
||||
events, err := queryEvents(&filters[i])
|
||||
if err == nil {
|
||||
for _, event := range events {
|
||||
conn.WriteJSON([]interface{}{"EVENT", id, event})
|
||||
|
||||
19
listener.go
19
listener.go
@@ -10,13 +10,13 @@ import (
|
||||
|
||||
type Listener struct {
|
||||
ws *websocket.Conn
|
||||
filters []*filter.EventFilter
|
||||
filters filter.EventFilters
|
||||
}
|
||||
|
||||
var listeners = make(map[string]*Listener)
|
||||
var listenersMutex = sync.Mutex{}
|
||||
|
||||
func setListener(id string, conn *websocket.Conn, filters []*filter.EventFilter) {
|
||||
func setListener(id string, conn *websocket.Conn, filters filter.EventFilters) {
|
||||
listenersMutex.Lock()
|
||||
defer func() {
|
||||
listenersMutex.Unlock()
|
||||
@@ -44,20 +44,7 @@ func notifyListeners(event *event.Event) {
|
||||
}()
|
||||
|
||||
for id, listener := range listeners {
|
||||
match := false
|
||||
for _, filter := range listener.filters {
|
||||
if filter == nil {
|
||||
match = false
|
||||
break
|
||||
}
|
||||
|
||||
if filter.Matches(event) {
|
||||
match = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !match {
|
||||
if !listener.filters.Match(event) {
|
||||
continue
|
||||
}
|
||||
|
||||
|
||||
5
query.go
5
query.go
@@ -25,11 +25,6 @@ func queryEvents(filter *filter.EventFilter) (events []event.Event, err error) {
|
||||
params = append(params, filter.ID)
|
||||
}
|
||||
|
||||
if filter.Author != "" {
|
||||
conditions = append(conditions, "pubkey = ?")
|
||||
params = append(params, filter.Author)
|
||||
}
|
||||
|
||||
if filter.Kind != nil && *filter.Kind != 0 {
|
||||
conditions = append(conditions, "kind = ?")
|
||||
params = append(params, filter.Kind)
|
||||
|
||||
Reference in New Issue
Block a user