Loading poolpay/__main__.py +22 −10 Original line number Diff line number Diff line Loading @@ -4,7 +4,10 @@ from sqlalchemy import create_engine from sqlalchemy.orm import Session from poolpay import db from poolpay.card.Pirc522CardReader import Pirc522CardReader from poolpay.director.Director import Director from poolpay.model.Retrievable import Retrievable from poolpay.ui.Play import Play from poolpay.vault.Vault import Vault proj_dir = Path(__file__).parent.parent.resolve() Loading @@ -12,24 +15,33 @@ instance_dir = proj_dir / "instance" vault_file = proj_dir / "instance.img" db_file = instance_dir / "poolpay.db" # TODO Start UI (with a basic message indicating the application is locked and a password is required) # TODO Show a message indicating the application is locked and a password is required? password = "hunter2" # TODO Prompt for this instead of hardcoding it into the file vault = Vault(vault_file, instance_dir) if not vault_file.exists(): vault.create(password) play = Play( # TODO Insert types here Idle=..., PaymentSuccess=..., Balance=..., Reversal=..., WaitForCard=..., ) director = Director(play) with vault.open(password), Pirc522CardReader() as card_reader: try: vault.open(password) engine = create_engine(f"sqlite:///{db_file}") Retrievable.metadata.create_all(engine) db.session = Session(engine) # TODO Initialize card reader (on card presented: Update UI, book transaction) # TODO Change UI to a "ready" state card_reader.on_card_presented( lambda reader: director.card_presented(reader.read_id()) ) card_reader.on_card_removed( lambda reader: director.card_removed() ) director.start() finally: db.session.close() engine.dispose() vault.close() Loading
poolpay/__main__.py +22 −10 Original line number Diff line number Diff line Loading @@ -4,7 +4,10 @@ from sqlalchemy import create_engine from sqlalchemy.orm import Session from poolpay import db from poolpay.card.Pirc522CardReader import Pirc522CardReader from poolpay.director.Director import Director from poolpay.model.Retrievable import Retrievable from poolpay.ui.Play import Play from poolpay.vault.Vault import Vault proj_dir = Path(__file__).parent.parent.resolve() Loading @@ -12,24 +15,33 @@ instance_dir = proj_dir / "instance" vault_file = proj_dir / "instance.img" db_file = instance_dir / "poolpay.db" # TODO Start UI (with a basic message indicating the application is locked and a password is required) # TODO Show a message indicating the application is locked and a password is required? password = "hunter2" # TODO Prompt for this instead of hardcoding it into the file vault = Vault(vault_file, instance_dir) if not vault_file.exists(): vault.create(password) play = Play( # TODO Insert types here Idle=..., PaymentSuccess=..., Balance=..., Reversal=..., WaitForCard=..., ) director = Director(play) with vault.open(password), Pirc522CardReader() as card_reader: try: vault.open(password) engine = create_engine(f"sqlite:///{db_file}") Retrievable.metadata.create_all(engine) db.session = Session(engine) # TODO Initialize card reader (on card presented: Update UI, book transaction) # TODO Change UI to a "ready" state card_reader.on_card_presented( lambda reader: director.card_presented(reader.read_id()) ) card_reader.on_card_removed( lambda reader: director.card_removed() ) director.start() finally: db.session.close() engine.dispose() vault.close()