From fdcfd863e07a92a8dea9179da196f1b2ee9dc54c Mon Sep 17 00:00:00 2001 From: mleku Date: Wed, 10 Sep 2025 22:23:35 +0100 Subject: [PATCH] Update `SaveEvent` to improve logging consistency, block duplicate event creations more explicitly, and handle multi-line log formatting updates. Bump version to `v0.3.1`. --- pkg/acl/follows.go | 2 +- pkg/database/save-event.go | 44 +++++++++++++++++++++++++++----------- pkg/version/version | 2 +- 3 files changed, 33 insertions(+), 15 deletions(-) diff --git a/pkg/acl/follows.go b/pkg/acl/follows.go index d0f0568..dc5e44a 100644 --- a/pkg/acl/follows.go +++ b/pkg/acl/follows.go @@ -278,7 +278,7 @@ func (f *Follows) startSubscriptions(ctx context.Context) { if ok, err := res.Event.Verify(); chk.T(err) || !ok { continue } - if _, _, err := f.D.SaveEvent( + if _, _, err = f.D.SaveEvent( ctx, res.Event, ); err != nil { if !strings.HasPrefix( diff --git a/pkg/database/save-event.go b/pkg/database/save-event.go index 69cf901..6744d2c 100644 --- a/pkg/database/save-event.go +++ b/pkg/database/save-event.go @@ -44,10 +44,10 @@ func (d *D) SaveEvent(c context.Context, ev *event.E) (kc, vc int, err error) { // check if the event already exists var ser *types.Uint40 if ser, err = d.GetSerialById(ev.ID); err == nil && ser != nil { - err = errorf.E("event already exists: %0x", ev.ID) + err = errorf.E("blocked: event already exists: %0x", ev.ID) return } - + // If the error is "id not found", we can proceed with saving the event if err != nil && strings.Contains(err.Error(), "id not found in database") { // Reset error since this is expected for new events @@ -57,10 +57,13 @@ func (d *D) SaveEvent(c context.Context, ev *event.E) (kc, vc int, err error) { log.E.F("error checking if event exists: %s", err) return } - + // Check if the event has been deleted before allowing resubmission if err = d.CheckForDeleted(ev, nil); err != nil { - log.I.F("SaveEvent: rejecting resubmission of deleted event ID=%s: %v", hex.Enc(ev.ID), err) + // log.I.F( + // "SaveEvent: rejecting resubmission of deleted event ID=%s: %v", + // hex.Enc(ev.ID), err, + // ) err = errorf.E("blocked: %s", err.Error()) return } @@ -85,8 +88,11 @@ func (d *D) SaveEvent(c context.Context, ev *event.E) (kc, vc int, err error) { } // Only replace if the new event is newer or same timestamp if ev.CreatedAt < oldEv.CreatedAt { - log.I.F("SaveEvent: rejecting older replaceable event ID=%s (created_at=%d) - existing event ID=%s (created_at=%d)", - hex.Enc(ev.ID), ev.CreatedAt, hex.Enc(oldEv.ID), oldEv.CreatedAt) + log.I.F( + "SaveEvent: rejecting older replaceable event ID=%s (created_at=%d) - existing event ID=%s (created_at=%d)", + hex.Enc(ev.ID), ev.CreatedAt, hex.Enc(oldEv.ID), + oldEv.CreatedAt, + ) shouldReplace = false break } @@ -97,8 +103,11 @@ func (d *D) SaveEvent(c context.Context, ev *event.E) (kc, vc int, err error) { if oldEv, err = d.FetchEventBySerial(s); chk.E(err) { continue } - log.I.F("SaveEvent: replacing older replaceable event ID=%s (created_at=%d) with newer event ID=%s (created_at=%d)", - hex.Enc(oldEv.ID), oldEv.CreatedAt, hex.Enc(ev.ID), ev.CreatedAt) + log.I.F( + "SaveEvent: replacing older replaceable event ID=%s (created_at=%d) with newer event ID=%s (created_at=%d)", + hex.Enc(oldEv.ID), oldEv.CreatedAt, hex.Enc(ev.ID), + ev.CreatedAt, + ) if err = d.DeleteEventBySerial( c, s, oldEv, ); chk.E(err) { @@ -139,8 +148,11 @@ func (d *D) SaveEvent(c context.Context, ev *event.E) (kc, vc int, err error) { } // Only replace if the new event is newer or same timestamp if ev.CreatedAt < oldEv.CreatedAt { - log.I.F("SaveEvent: rejecting older addressable event ID=%s (created_at=%d) - existing event ID=%s (created_at=%d)", - hex.Enc(ev.ID), ev.CreatedAt, hex.Enc(oldEv.ID), oldEv.CreatedAt) + log.I.F( + "SaveEvent: rejecting older addressable event ID=%s (created_at=%d) - existing event ID=%s (created_at=%d)", + hex.Enc(ev.ID), ev.CreatedAt, hex.Enc(oldEv.ID), + oldEv.CreatedAt, + ) shouldReplace = false break } @@ -151,8 +163,11 @@ func (d *D) SaveEvent(c context.Context, ev *event.E) (kc, vc int, err error) { if oldEv, err = d.FetchEventBySerial(s); chk.E(err) { continue } - log.I.F("SaveEvent: replacing older addressable event ID=%s (created_at=%d) with newer event ID=%s (created_at=%d)", - hex.Enc(oldEv.ID), oldEv.CreatedAt, hex.Enc(ev.ID), ev.CreatedAt) + log.I.F( + "SaveEvent: replacing older addressable event ID=%s (created_at=%d) with newer event ID=%s (created_at=%d)", + hex.Enc(oldEv.ID), oldEv.CreatedAt, hex.Enc(ev.ID), + ev.CreatedAt, + ) if err = d.DeleteEventBySerial( c, s, oldEv, ); chk.E(err) { @@ -216,6 +231,9 @@ func (d *D) SaveEvent(c context.Context, ev *event.E) (kc, vc int, err error) { return }, ) - log.T.F("total data written: %d bytes keys %d bytes values for event ID %s", kc, vc, hex.Enc(ev.ID)) + log.T.F( + "total data written: %d bytes keys %d bytes values for event ID %s", kc, + vc, hex.Enc(ev.ID), + ) return } diff --git a/pkg/version/version b/pkg/version/version index d4dfa56..1e66a61 100644 --- a/pkg/version/version +++ b/pkg/version/version @@ -1 +1 @@ -v0.3.0 \ No newline at end of file +v0.3.1 \ No newline at end of file