From: Edward Delaporte Date: Sun, 29 Mar 2026 16:52:31 +0000 (-0500) Subject: Fix error code X-Git-Tag: 1.1.0~30 X-Git-Url: https://apps.delaporte.us/gitweb/matrix-shop-bot.git/commitdiff_plain/a64200d96f4add62e58f2d845eca5fe301b58b26?ds=sidebyside Fix error code --- diff --git a/matrix_shop_bot/bot.py b/matrix_shop_bot/bot.py index 5c8e6c5..f426663 100644 --- a/matrix_shop_bot/bot.py +++ b/matrix_shop_bot/bot.py @@ -82,6 +82,7 @@ async def do_shop(match): if match.command('clear'): store_id = ' '.join(match.args()[1:]) Data().clear_list(store_id) + self.last_store_id = None return ['Success'] if match.command('clear-all'): @@ -91,6 +92,9 @@ async def do_shop(match): if match.command('list'): store_id = ' '.join(match.args()[1:]) + if len(store_id) == 0: + store_id = None + items = Data().get_shopping_list(store_id) results = ['Shopping List'] for item in items: @@ -129,6 +133,9 @@ async def shop_bot(room, message, bot): await bot.api.send_text_message( room.room_id, str(line)) except Exception as ex: - return ['You have:', ' no tea'] + for line in ['You have:', ' no tea']: + await bot.api.send_text_message( + room.room_id, str(line)) + diff --git a/matrix_shop_bot/db.py b/matrix_shop_bot/db.py index 6b7c7ab..05ca9eb 100644 --- a/matrix_shop_bot/db.py +++ b/matrix_shop_bot/db.py @@ -62,6 +62,7 @@ class Data(): self.file = db_file self.engine = self.get_engine() + self.last_store_id = None def _add_with_name(self, cls, name): id = -1 @@ -73,12 +74,27 @@ class Data(): return id def add_store(self, name): - return self._add_with_name(Store, name) + store_id = self._add_with_name(Store, name) + self.last_store_id = store_id + return store_id def add_item(self, name): - return self._add_with_name(Item, name) + item_id = self._add_with_name(Item, name) + if self.last_store_id: + with Session(self.engine) as session: + store_id = self.last_store_id + store = session.exec(_get_with_id(Store, store_id)).first() + item = session.exec(_get_with_id(Item, item_id)).first() + item.stores.append(store) + session.commit() + return item_id + + def assign_store(self, item_id, store_id=None): + if store_id: + self.last_store_id = store_id + else: + store_id = self.last_store_id - def assign_store(self, store_id, item_id): with Session(self.engine) as session: store = session.exec(_get_with_id(Store, store_id)).first() item = session.exec(_get_with_id(Item, item_id)).first() @@ -115,7 +131,10 @@ class Data(): return [f'No unsorted items!'] return items - def get_shopping_list(self, store_id) -> List[str]: + def get_shopping_list(self, store_id=None) -> List[str]: + if not store_id: + store_id = self.last_store_id + results = [] with Session(self.engine) as session: cmd = select(Store).where(Store.id == store_id)