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')
|
|
|
|
|
2024-12-12 17:12:13 +00:00
|
|
|
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))
|
|
|
|
|
2024-12-12 17:12:13 +00:00
|
|
|
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)
|
2024-12-12 17:12:13 +00:00
|
|
|
|
|
|
|
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,
|
2024-12-12 17:12:13 +00:00
|
|
|
stream=sys.stderr)
|
2024-12-12 14:15:12 +00:00
|
|
|
|
|
|
|
log.info('Starting up')
|
2024-12-12 17:12:13 +00:00
|
|
|
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()
|