2020-03-16 21:02:05 -04:00
|
|
|
# SPDX-License-Identifier: GPL-2.0-or-later
|
2023-10-16 09:46:31 -04:00
|
|
|
|
|
|
|
from configparser import SafeConfigParser
|
|
|
|
|
|
|
|
|
|
|
|
class Settings():
|
|
|
|
def __init__(self):
|
|
|
|
self.config = SafeConfigParser()
|
|
|
|
self.config.read("settings.ini")
|
|
|
|
|
2020-06-09 20:07:21 -04:00
|
|
|
def write_changes(self):
|
|
|
|
with open('settings.ini', 'w') as config_file:
|
|
|
|
self.config.write(config_file)
|
|
|
|
config_file.close()
|
|
|
|
|
2020-04-17 11:18:23 -04:00
|
|
|
def get_config(self, key, default=None):
|
|
|
|
return self.config.get("DEFAULT", key, fallback=default)
|
2023-10-16 09:46:31 -04:00
|
|
|
|
2020-04-17 11:18:23 -04:00
|
|
|
def get_bool(self, key, default=False):
|
|
|
|
return bool(self.config.get("DEFAULT", key, fallback=default) == "True")
|
2023-10-16 09:46:31 -04:00
|
|
|
|
|
|
|
def set_config(self, key, value):
|
2020-06-09 20:07:21 -04:00
|
|
|
value = str(value)
|
2023-10-16 09:46:31 -04:00
|
|
|
self.config.set("DEFAULT", key, value)
|
2020-06-09 20:07:21 -04:00
|
|
|
self.write_changes()
|
2023-10-16 09:46:31 -04:00
|
|
|
|
2020-06-09 20:07:21 -04:00
|
|
|
def add_to_list(self, key, value):
|
|
|
|
config_value = self.config.get("DEFAULT", key, fallback=None)
|
|
|
|
value = str(value)
|
|
|
|
|
|
|
|
if config_value:
|
|
|
|
config_list = config_value.split("|")
|
|
|
|
else:
|
|
|
|
config_list = []
|
|
|
|
|
|
|
|
config_list.append(value)
|
|
|
|
|
|
|
|
self.config.set("DEFAULT", key, "|".join(config_list))
|
|
|
|
self.write_changes()
|
|
|
|
|
|
|
|
def remove_from_list(self, key, value):
|
|
|
|
config_value = self.config.get("DEFAULT", key, fallback=None)
|
|
|
|
value = str(value)
|
|
|
|
|
|
|
|
if config_value:
|
|
|
|
config_list = config_value.split("|")
|
|
|
|
else:
|
|
|
|
return
|
|
|
|
|
|
|
|
if value in config_list:
|
|
|
|
config_list.remove(value)
|
|
|
|
else:
|
|
|
|
return
|
|
|
|
|
|
|
|
self.config.set("DEFAULT", key, "|".join(config_list))
|
|
|
|
self.write_changes()
|
|
|
|
|
|
|
|
def get_list(self, key):
|
|
|
|
return self.config.get("DEFAULT", key, fallback="").split("|")
|