qcs-python/main.py

48 lines
1.5 KiB
Python
Raw Normal View History

2023-04-30 22:13:02 +00:00
2023-05-01 00:46:08 +00:00
import os
2023-04-30 22:13:02 +00:00
import json
import logging
2023-04-30 22:18:25 +00:00
import contentapi
2023-05-01 00:46:08 +00:00
import toml
2023-05-01 01:03:03 +00:00
import myutils
2023-05-01 00:46:08 +00:00
CONFIGFILE="config.toml"
2023-04-30 22:13:02 +00:00
# The entire config object with all defaults
config = {
2023-04-30 22:49:30 +00:00
"api" : "https://oboy.smilebasicsource.com/api",
2023-05-01 01:12:14 +00:00
"default_loglevel" : "WARNING",
2023-05-01 01:03:03 +00:00
"expire_seconds" : 31536000, # 365 days in seconds, expiration for token
2023-04-30 22:49:30 +00:00
"tokenfile" : ".qcstoken"
2023-04-30 22:13:02 +00:00
}
def main():
print("Program start")
2023-05-01 00:46:08 +00:00
load_or_create_global_config()
2023-05-01 01:12:14 +00:00
logging.info("Config: " + json.dumps(config, indent = 2))
2023-04-30 22:57:50 +00:00
context = contentapi.ApiContext(config["api"], logging)
2023-04-30 22:18:25 +00:00
print("Program end")
2023-05-01 00:46:08 +00:00
# Loads the config from file into the global config var. If the file
# doesn't exist, the file is created from the defaults in config.
# The function returns nothing
def load_or_create_global_config():
global config
# Check if the config file exists
if os.path.exists(CONFIGFILE):
# Read and deserialize the config file
with open(CONFIGFILE, 'r', encoding='utf-8') as f:
2023-05-01 01:12:14 +00:00
temp_config = toml.load(f)
myutils.merge_dictionary(temp_config, config)
2023-05-01 00:46:08 +00:00
else:
# Serialize and write the config dictionary to the config file
logging.warn("No config found at " + CONFIGFILE + ", creating now")
with open(CONFIGFILE, 'w', encoding='utf-8') as f:
toml.dump(config, f)
2023-05-01 01:12:14 +00:00
myutils.set_logging_level(config["default_loglevel"])
2023-05-01 00:46:08 +00:00
2023-04-30 22:18:25 +00:00
# Because python reasons
if __name__ == "__main__":
main()