X-Git-Url: https://us-delaporte.pagekite.me/gitweb/matrix-shop-bot.git/blobdiff_plain/050ee98fbbfea0a1cde53a5853e1da905f8cbb7b..e1202c785e427e7a9a45249ef1f81afe9760ed1d:/matrix_shop_bot/db.py diff --git a/matrix_shop_bot/db.py b/matrix_shop_bot/db.py index a225f3c..cd8d494 100644 --- a/matrix_shop_bot/db.py +++ b/matrix_shop_bot/db.py @@ -70,8 +70,9 @@ def _get_pretty_shopping_list(store_id, session) -> List[str]: zone = str(_get_item_zone(item.name, session)).title() # Title Case if not zone in zones: zones[zone] = [] - zones[zone].append(str(item)) + zones[zone].append(str(item).title()) for zone in zones: + zones[zone].sort() results.append(f' ### {zone}') for item in zones[zone]: results.append(item) @@ -296,6 +297,34 @@ class Data(): def setup(self): SQLModel.metadata.create_all(self.engine) + with Session(self.engine) as session: + # Add some obvious store zones by default + DEFAULT_ZONES = { + 'Bakery': ['bread', 'cake', 'cookie', 'muffin', 'pie'], + 'Baking': ['flour', 'sugar'], + 'Books': ['book'], + 'Clothes': ['bra', 'coat', 'jacket', 'panties', 'pants', 'shirt', 'shorts', 'socks', 'sweater', 'underwear'], + 'Cooler': ['butter', 'cream', 'eggs', 'juice', 'milk', 'tea'], + 'Deli': ['beef', 'chicken', 'salmon', 'steak', 'turkey'], + 'Movies': ['movie', 'DVD'], + 'Music': ['cd', 'album'], + 'Produce': ['carrot', 'cucumber', 'greens', 'lettuce'], + 'Shoes': ['shoe'], + 'Television': ['tv', 'season'], + } + for zone in DEFAULT_ZONES: + logging.debug(f'Adding default items for {zone}') + for item in DEFAULT_ZONES[zone]: + try: + logging.debug(f'Attempt adding {item} to {zone}...') + new = ItemZone(name=item, zone=zone) + session.add(new) + session.commit() + logging.debug(f'Success adding {item} to {zone}...') + except Exception as ex: + session.rollback() + logging.debug(f'Failed adding {item} to {zone}: {ex}') + return 'Success'