From 631df53d690822bce028ceff19ebcdfc37f42f9b Mon Sep 17 00:00:00 2001 From: Georgios Atheridis Date: Sat, 14 Jan 2023 02:44:00 +0000 Subject: [PATCH] announcer now creates a log directory in APPDATA or .cache; updated .gitignore --- .gitignore | 132 ++++++++++++++++++++++++++++++++++++++++++++++++-- announcer.pyw | 34 +++++++++++-- 2 files changed, 160 insertions(+), 6 deletions(-) diff --git a/.gitignore b/.gitignore index 59c81b1..f0aac32 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,133 @@ -test/ +# Byte-compiled / optimized / DLL files +__pycache__/ +*.py[cod] +*$py.class + +# C extensions +*.so + +# Distribution / packaging +.Python build/ +develop-eggs/ dist/ -__pycache__/ +downloads/ +eggs/ +.eggs/ +lib/ +lib64/ +parts/ +sdist/ +var/ +wheels/ +pip-wheel-metadata/ +share/python-wheels/ +*.egg-info/ +.installed.cfg +*.egg +MANIFEST + +# PyInstaller +# Usually these files are written by a python script from a template +# before PyInstaller builds the exe, so as to inject date/other infos into it. +*.manifest *.spec -log.txt + +# Installer logs +pip-log.txt +pip-delete-this-directory.txt + +# Unit test / coverage reports +htmlcov/ +.tox/ +.nox/ +.coverage +.coverage.* +.cache +nosetests.xml +coverage.xml +*.cover +*.py,cover +.hypothesis/ +.pytest_cache/ + +# Translations +*.mo +*.pot + +# Django stuff: +*.log +local_settings.py +db.sqlite3 +db.sqlite3-journal + +# Flask stuff: +instance/ +.webassets-cache + +# Scrapy stuff: +.scrapy + +# Sphinx documentation +docs/_build/ + +# PyBuilder +target/ + +# Jupyter Notebook +.ipynb_checkpoints + +# IPython +profile_default/ +ipython_config.py + +# pyenv +.python-version + +# pipenv +# According to pypa/pipenv#598, it is recommended to include Pipfile.lock in version control. +# However, in case of collaboration, if having platform-specific dependencies or dependencies +# having no cross-platform support, pipenv may install dependencies that don't work, or not +# install all needed dependencies. +#Pipfile.lock + +# PEP 582; used by e.g. github.com/David-OConnor/pyflow +__pypackages__/ + +# Celery stuff +celerybeat-schedule +celerybeat.pid + +# SageMath parsed files +*.sage.py + +# Environments +.env +.venv +env/ +venv/ +ENV/ +env.bak/ +venv.bak/ + +# Spyder project settings +.spyderproject +.spyproject + +# Rope project settings +.ropeproject + +# mkdocs documentation +/site + +# mypy +.mypy_cache/ +.dmypy.json +dmypy.json + +# Pyre type checker +.pyre/ + + +# Visual Studio .vs/ diff --git a/announcer.pyw b/announcer.pyw index 2aa0005..248d0b7 100644 --- a/announcer.pyw +++ b/announcer.pyw @@ -2,11 +2,37 @@ import requests import time import urllib3 import audioplayer +import os +import sys from os import path, _exit import random from tkinter import * import threading +if os.name == "posix": + if "XDG_CONFIG_HOME" in os.environ and "XDG_CACHE_HOME" in os.environ: + LOGS_DIR = os.path.join(os.environ["XDG_CACHE_HOME"], "announcer") + elif "HOME" in os.environ: + LOGS_DIR = os.path.join(os.environ["HOME"], ".cache/announcer") + else: + print( + "HOME environment variable is not set, something must be very wrong.", + file=sys.stderr, + ) + sys.exit(1) +elif os.name == "nt": + if "APPDATA" in os.environ: + LOGS_DIR = os.path.join(os.environ["APPDATA"], "announcer") + else: + print( + "APPDATA is not set, something must be very wrong.", + file=sys.stderr, + ) + sys.exit(1) +else: + print("Your OS is not supported", file=sys.stderr) + sys.exit(1) + SOUNDS_FOLDER = "sounds/" EVENT_SOUNDS = { "Welcome": ["welcometosummonersrift.mp3"], @@ -82,14 +108,16 @@ except: pass def announcer_loop(): + # File for logging exceptions. - log_file = open("log.txt", "w") - + os.makedirs(LOGS_DIR, exist_ok=True) + log_file = open(os.path.join(LOGS_DIR, "logs.txt"), "w") + global previous_game_time global game_time global previous_event_count global event_count - + while True: try: # Get all data from the game in JSON format. -- 2.30.2