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