unify usage and export nostr.IsOlder() helper.
This commit is contained in:
@@ -56,6 +56,11 @@ func (b *BleveBackend) Init() error {
|
|||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
func (b *BleveBackend) CountEvents(nostr.Filter) (uint32, error) {
|
func (b *BleveBackend) CountEvents(filter nostr.Filter) (uint32, error) {
|
||||||
|
if filter.String() == "{}" {
|
||||||
|
count, err := b.index.DocCount()
|
||||||
|
return uint32(count), err
|
||||||
|
}
|
||||||
|
|
||||||
return 0, errors.New("not supported")
|
return 0, errors.New("not supported")
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import (
|
|||||||
|
|
||||||
"fiatjaf.com/nostr"
|
"fiatjaf.com/nostr"
|
||||||
"fiatjaf.com/nostr/eventstore"
|
"fiatjaf.com/nostr/eventstore"
|
||||||
"fiatjaf.com/nostr/eventstore/internal"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func (b *BleveBackend) ReplaceEvent(evt nostr.Event) error {
|
func (b *BleveBackend) ReplaceEvent(evt nostr.Event) error {
|
||||||
@@ -19,7 +18,7 @@ func (b *BleveBackend) ReplaceEvent(evt nostr.Event) error {
|
|||||||
|
|
||||||
shouldStore := true
|
shouldStore := true
|
||||||
for previous := range b.QueryEvents(filter, 1) {
|
for previous := range b.QueryEvents(filter, 1) {
|
||||||
if internal.IsOlder(previous, evt) {
|
if nostr.IsOlder(previous, evt) {
|
||||||
if err := b.DeleteEvent(previous.ID); err != nil {
|
if err := b.DeleteEvent(previous.ID); err != nil {
|
||||||
return fmt.Errorf("failed to delete event for replacing: %w", err)
|
return fmt.Errorf("failed to delete event for replacing: %w", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import (
|
|||||||
"iter"
|
"iter"
|
||||||
|
|
||||||
"fiatjaf.com/nostr"
|
"fiatjaf.com/nostr"
|
||||||
"fiatjaf.com/nostr/eventstore/internal"
|
|
||||||
"go.etcd.io/bbolt"
|
"go.etcd.io/bbolt"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -36,7 +35,7 @@ func (b *BoltBackend) ReplaceEvent(evt nostr.Event) error {
|
|||||||
|
|
||||||
shouldStore := true
|
shouldStore := true
|
||||||
for previous := range results {
|
for previous := range results {
|
||||||
if internal.IsOlder(previous, evt) {
|
if nostr.IsOlder(previous, evt) {
|
||||||
if err := b.delete(txn, previous.ID); err != nil {
|
if err := b.delete(txn, previous.ID); err != nil {
|
||||||
return fmt.Errorf("failed to delete event %s for replacing: %w", previous.ID, err)
|
return fmt.Errorf("failed to delete event %s for replacing: %w", previous.ID, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,17 +1,11 @@
|
|||||||
package internal
|
package internal
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"math"
|
"math"
|
||||||
|
|
||||||
"fiatjaf.com/nostr"
|
"fiatjaf.com/nostr"
|
||||||
)
|
)
|
||||||
|
|
||||||
func IsOlder(previous, next nostr.Event) bool {
|
|
||||||
return previous.CreatedAt < next.CreatedAt ||
|
|
||||||
(previous.CreatedAt == next.CreatedAt && bytes.Compare(previous.ID[:], next.ID[:]) == 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
func ChooseNarrowestTag(filter nostr.Filter) (key string, values []string, goodness int) {
|
func ChooseNarrowestTag(filter nostr.Filter) (key string, values []string, goodness int) {
|
||||||
var tagKey string
|
var tagKey string
|
||||||
var tagValues []string
|
var tagValues []string
|
||||||
|
|||||||
@@ -5,7 +5,6 @@ import (
|
|||||||
"iter"
|
"iter"
|
||||||
|
|
||||||
"fiatjaf.com/nostr"
|
"fiatjaf.com/nostr"
|
||||||
"fiatjaf.com/nostr/eventstore/internal"
|
|
||||||
"github.com/PowerDNS/lmdb-go/lmdb"
|
"github.com/PowerDNS/lmdb-go/lmdb"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -37,7 +36,7 @@ func (b *LMDBBackend) ReplaceEvent(evt nostr.Event) error {
|
|||||||
|
|
||||||
shouldStore := true
|
shouldStore := true
|
||||||
for previous := range results {
|
for previous := range results {
|
||||||
if internal.IsOlder(previous, evt) {
|
if nostr.IsOlder(previous, evt) {
|
||||||
if err := b.delete(txn, previous.ID); err != nil {
|
if err := b.delete(txn, previous.ID); err != nil {
|
||||||
return fmt.Errorf("failed to delete event %s for replacing: %w", previous.ID, err)
|
return fmt.Errorf("failed to delete event %s for replacing: %w", previous.ID, err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import (
|
|||||||
"runtime"
|
"runtime"
|
||||||
|
|
||||||
"fiatjaf.com/nostr"
|
"fiatjaf.com/nostr"
|
||||||
"fiatjaf.com/nostr/eventstore/internal"
|
|
||||||
"github.com/PowerDNS/lmdb-go/lmdb"
|
"github.com/PowerDNS/lmdb-go/lmdb"
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -72,7 +71,7 @@ func (il *IndexingLayer) ReplaceEvent(evt nostr.Event) error {
|
|||||||
var acquiredFreeRangeFromDelete *position
|
var acquiredFreeRangeFromDelete *position
|
||||||
shouldStore := true
|
shouldStore := true
|
||||||
for previous := range results {
|
for previous := range results {
|
||||||
if internal.IsOlder(previous, evt) {
|
if nostr.IsOlder(previous, evt) {
|
||||||
if pos, shouldPurge, err := il.delete(mmmtxn, iltxn, previous.ID); err != nil {
|
if pos, shouldPurge, err := il.delete(mmmtxn, iltxn, previous.ID); err != nil {
|
||||||
return fmt.Errorf("failed to delete event %s for replacing: %w", previous.ID, err)
|
return fmt.Errorf("failed to delete event %s for replacing: %w", previous.ID, err)
|
||||||
} else if shouldPurge {
|
} else if shouldPurge {
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import (
|
|||||||
|
|
||||||
"fiatjaf.com/nostr"
|
"fiatjaf.com/nostr"
|
||||||
"fiatjaf.com/nostr/eventstore"
|
"fiatjaf.com/nostr/eventstore"
|
||||||
"fiatjaf.com/nostr/eventstore/internal"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
var _ eventstore.Store = (*SliceStore)(nil)
|
var _ eventstore.Store = (*SliceStore)(nil)
|
||||||
@@ -134,7 +133,7 @@ func (b *SliceStore) ReplaceEvent(evt nostr.Event) error {
|
|||||||
|
|
||||||
shouldStore := true
|
shouldStore := true
|
||||||
for previous := range b.QueryEvents(filter, 1) {
|
for previous := range b.QueryEvents(filter, 1) {
|
||||||
if internal.IsOlder(previous, evt) {
|
if nostr.IsOlder(previous, evt) {
|
||||||
if err := b.delete(previous.ID); err != nil {
|
if err := b.delete(previous.ID); err != nil {
|
||||||
return fmt.Errorf("failed to delete event for replacing: %w", err)
|
return fmt.Errorf("failed to delete event for replacing: %w", err)
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,19 +1,11 @@
|
|||||||
package khatru
|
package khatru
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"bytes"
|
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
"strings"
|
"strings"
|
||||||
|
|
||||||
"fiatjaf.com/nostr"
|
|
||||||
)
|
)
|
||||||
|
|
||||||
func isOlder(previous, next *nostr.Event) bool {
|
|
||||||
return previous.CreatedAt < next.CreatedAt ||
|
|
||||||
(previous.CreatedAt == next.CreatedAt && bytes.Compare(previous.ID[:], next.ID[:]) == 1)
|
|
||||||
}
|
|
||||||
|
|
||||||
var privateMasks = func() []net.IPNet {
|
var privateMasks = func() []net.IPNet {
|
||||||
privateCIDRs := []string{
|
privateCIDRs := []string{
|
||||||
"127.0.0.0/8",
|
"127.0.0.0/8",
|
||||||
|
|||||||
5
utils.go
5
utils.go
@@ -82,3 +82,8 @@ func AppendUnique[I comparable](arr []I, item ...I) []I {
|
|||||||
}
|
}
|
||||||
return arr
|
return arr
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func IsOlder(previous, next Event) bool {
|
||||||
|
return previous.CreatedAt < next.CreatedAt ||
|
||||||
|
(previous.CreatedAt == next.CreatedAt && bytes.Compare(previous.ID[:], next.ID[:]) == 1)
|
||||||
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user