-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsettings.py
More file actions
71 lines (62 loc) · 3.12 KB
/
settings.py
File metadata and controls
71 lines (62 loc) · 3.12 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import json
import logging
import os
class Settings():
def __init__(self):
self.LOG_FORMAT = "[%(asctime)s][%(levelname)s][%(filename)s:%(lineno)d] %(message)s"
self.baseWindowSize = [1080,800]
self.windowSize = [840,600]
self.infoDialogSize = [500,400]
self.windowContentMargin = [20,20,20,20]
self.logLevel = logging.INFO
self.logFile = ""
self.icon = ".\\resource\\icon.png"
self.reviewWordProbability = 0.2
self.zhPuncs = '"#$%&'()*+,-/:;<=>@[\]\
^_`{|}~⦅⦆「」、 、〃〈〉《》「」『』【】〔〕〖〗〘〙\
〚〛〜〝〞〟〰〾〿–—‘’‛“”„‟…‧﹏﹑﹔·!?。。'
self.enPuncs = r"""!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~"""
self.specialWords = set([])
self.markdownExt = [
'markdown.extensions.fenced_code',
'markdown.extensions.codehilite',
"markdown.extensions.abbr",
"markdown.extensions.attr_list",
"markdown.extensions.def_list",
"markdown.extensions.footnotes",
"markdown.extensions.tables",
"markdown.extensions.strikethrough"
]
self.baseWid = None
self.loadSettings()
def loadSettings(self):
if not os.path.isfile(".\\settings.json"):
logging.info("Didn't find any user settings because settings.json doesn't exist.")
return
with open(".\\settings.json", encoding="UTF-8") as f:
try:
setting = json.loads(f.read())
except Exception as e:
logging.warning("Cannot load user settings because settings.json is not a readable and vaild JSON file! Error message: %s"%str(e))
else:
if type(setting) != dict:
logging.warning("Cannot load user settings because settings.json is not valid!")
return
for key, item in setting.items():
if key=='baseWindowSize' and type(item)==list and len(item)==2:
self.baseWindowSize = item
elif key=='windowSize' and type(item)==list and len(item)==2:
self.windowSize = item
elif key=='infoDialogSize' and type(item)==list and len(item)==2:
self.infoDialogSize = item
elif key=='windowContentMargin' and type(item)==list and len(item)==4:
self.windowContentMargin = item
elif key=='specialWords' and type(item)==list:
self.specialWords = set(item)
elif key=="reviewWordProability" and type(item)==float:
self.reviewWordProbability = item
elif key=="markdownExt" and type(item)==list:
self.markdownExt = item
else: logging.warning("Setting key '%s' is unrecognizable."%key)
logging.info("Loaded settings from settings.json .")
settings = Settings()