Files
hamster-tools/hamstertools/app.py
2024-12-06 21:30:34 -05:00

44 lines
1023 B
Python

from textual.app import App
from .db import db
from .kimaiapi import KimaiAPI
from .screens.hamster import HamsterScreen
from .screens.kimai import KimaiScreen
class HamsterToolsApp(App):
CSS_PATH = "app.tcss"
BINDINGS = [
("h", "switch_mode('hamster')", "Hamster"),
("k", "switch_mode('kimai')", "Kimai"),
("q", "quit", "Quit"),
]
api_ = None
@property
def api(self) -> KimaiAPI:
if self.api_ is None:
self.api_ = KimaiAPI(self.kimai_api_key)
return self.api_
def __init__(self, kimai_api_key):
self.kimai_api_key = kimai_api_key
self.add_mode("hamster", HamsterScreen())
self.add_mode("kimai", KimaiScreen())
# self.mode MODES = {
# "hamster": HamsterScreen(),
# "kimai": KimaiScreen(),
# }
super().__init__()
def on_mount(self) -> None:
self.switch_mode("hamster")
async def action_quit(self) -> None:
db.close()
self.exit()