]> apps.delaporte.us Git - matrix-fridge-bot.git/commitdiff
Fix - allow adding items again after they are long expired
authorEdward Delaporte <edward@delaporte.us>
Sat, 6 Jun 2026 18:46:34 +0000 (13:46 -0500)
committerEdward Delaporte <edward@delaporte.us>
Sat, 6 Jun 2026 18:46:34 +0000 (13:46 -0500)
matrix_fridge_bot/db.py

index eb414a4a8404dde8aa95a69b0ba275d862d84aa2..4f31e5af5e47d92df5079e41ce64344fa5fd96f6 100644 (file)
@@ -3,7 +3,7 @@ import os
 from datetime import datetime as dt
 from datetime import timedelta
 
-from sqlmodel import Field, Session, SQLModel, create_engine, select, text
+from sqlmodel import Field, Session, SQLModel, create_engine, select, text, delete
 
 ## Todo List
 # - [x] add to fridge
@@ -13,7 +13,7 @@ from sqlmodel import Field, Session, SQLModel, create_engine, select, text
 DATE_FORMAT = '%A, %Y-%m-%d'
 MODULE='fridge'
 STALE_DAYS = 4
-TOSS_DAYS = 5
+FORGET_DAYS = 10
 
 def today():
     return dt.now().strftime(DATE_FORMAT)
@@ -55,6 +55,12 @@ class Data():
         logger.debug(f'Stale date is {stale}')
         return stale
 
+    @staticmethod
+    def get_forget():
+        forget = dt.now() - timedelta(FORGET_DAYS)
+        return forget 
+
+
     def list(self):
         results = []
         with Session(self.engine) as session:
@@ -78,6 +84,16 @@ class Data():
 
         return results
 
+    def cleanup(self):
+        
+        logger.debug(f'Cleaning up...')
+        with Session(self.engine) as session:
+            stale_dt = Data.get_forget()
+            cmd = delete(Food).where(Food.added_date < stale_dt)
+            result = session.exec(cmd)
+            session.commit()
+        return True
+
 
     def filter(self, term):
         results = []
@@ -88,6 +104,8 @@ class Data():
         return results
         
     def add(self, name):
+        logger.debug(f'Attempting to add {name}')
+        self.cleanup()  # Old items can block new ones
         try:
             with Session(self.engine) as session:
                 new = Food(name=name)