mirror of
https://github.com/Faraphel/Atlas-Install.git
synced 2025-07-03 03:08:29 +02:00
34 lines
1.3 KiB
Python
34 lines
1.3 KiB
Python
import json
|
|
import os
|
|
|
|
|
|
class Option:
|
|
def __init__(self):
|
|
self.language = "en"
|
|
self.format = "FST"
|
|
self.disable_download = False
|
|
self.del_track_after_conv = False
|
|
self.dont_check_for_update = False
|
|
self.dont_check_track_sha1 = False
|
|
self.process_track = 8
|
|
|
|
def load_from_json(self, option_json: dict):
|
|
for key, value in option_json.items(): # load all value in the json as class attribute
|
|
setattr(self, key, value)
|
|
|
|
def load_from_file(self, option_file: str = "./option.json"):
|
|
if os.path.exists(option_file):
|
|
with open(option_file, encoding="utf-8") as file:
|
|
file_json = json.load(file)
|
|
self.load_from_json(file_json)
|
|
|
|
def save_to_file(self, option_file: str = "./option.json"):
|
|
option_json: dict = self.__dict__ # this return all attribute of the class as a dict
|
|
with open(option_file, "w", encoding="utf-8") as file:
|
|
json.dump(option_json, file, ensure_ascii=False)
|
|
|
|
def edit(self, option, value, need_restart=False, gui=None):
|
|
if type(value) in [str, int, bool]: setattr(self, option, value)
|
|
else: setattr(self, option, value.get())
|
|
self.save_to_file()
|
|
if need_restart: gui.restart()
|