valconomy/controller/app.py

50 lines
1.2 KiB
Python
Raw Normal View History

2024-12-12 14:15:12 +00:00
import logging
import os
import sys
import infi.systray
import pkg_resources # needed for pyinstaller?
import valconomy
DATA_DIR = os.path.join(os.environ['LOCALAPPDATA'], 'Valconomy')
LOG_FILE = os.path.join(DATA_DIR, 'app.log')
log = logging.getLogger('valconomy-app')
2024-12-12 14:15:12 +00:00
def data_file(fname: str) -> str:
return os.path.abspath(os.path.join(os.path.dirname(__file__), fname))
def do_open_datadir(tray: infi.systray.SysTrayIcon):
2024-12-12 14:15:12 +00:00
os.startfile(DATA_DIR)
def main():
os.makedirs(DATA_DIR, exist_ok=True)
if sys.stderr is None:
# running in console-less mode, redirect to log file
sys.stderr = open(LOG_FILE, 'a')
2024-12-12 14:15:12 +00:00
logging.basicConfig(
format='%(asctime)s %(levelname)s %(message)s', level=logging.INFO,
stream=sys.stderr)
2024-12-12 14:15:12 +00:00
log.info('Starting up')
def cb(i: valconomy.RiotPlayerInfo):
print(repr(i))
val_client = valconomy.ValorantLocalClient(cb)
def do_quit(tray: infi.systray.SysTrayIcon):
log.info('Shutting down')
val_client.stop()
with infi.systray.SysTrayIcon(
data_file('icon.ico'), 'Valconomy', on_quit=do_quit,
menu_options=(
('Open data directory', None, do_open_datadir),
)) as tray:
val_client.run()
2024-12-12 14:15:12 +00:00
if __name__ == '__main__':
main()