File tree Expand file tree Collapse file tree 1 file changed +23
-1
lines changed
Expand file tree Collapse file tree 1 file changed +23
-1
lines changed Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ use deadpool_postgres::Pool;
33use deadpool_postgres:: { Manager , ManagerConfig , RecyclingMethod } ;
44use nostr:: event:: * ;
55use nostr:: filter:: Filter ;
6+ use nostr:: types:: Timestamp ;
67use nostr_database:: * ;
78use prelude:: BoxedFuture ;
89use tokio_postgres:: NoTls ;
@@ -109,7 +110,28 @@ impl NostrDatabase for NostrPostgres {
109110 & ' a self ,
110111 event : & ' a Event ,
111112 ) -> BoxedFuture < ' a , Result < SaveEventStatus , DatabaseError > > {
112- Box :: pin ( async move { self . save ( EventDataDb :: try_from ( event) ?) . await } )
113+ Box :: pin ( async move {
114+ let result = self . save ( EventDataDb :: try_from ( event) ?) . await ;
115+ let until = if event. created_at . is_zero ( ) {
116+ event. created_at
117+ } else {
118+ Timestamp :: from_secs ( event. created_at . as_u64 ( ) - 1 )
119+ } ;
120+ if event. kind . is_replaceable ( )
121+ && matches ! ( result, Ok ( SaveEventStatus :: Success ) )
122+ && let Err ( e) = self
123+ . delete (
124+ Filter :: new ( )
125+ . author ( event. pubkey )
126+ . kind ( event. kind )
127+ . until ( until) ,
128+ )
129+ . await
130+ {
131+ warn ! ( "Failed to delete old replaceable events: {e}" ) ;
132+ }
133+ result
134+ } )
113135 }
114136
115137 /// Check event status by ID
You can’t perform that action at this time.
0 commit comments