-
Notifications
You must be signed in to change notification settings - Fork 0
/
user_settings.py
92 lines (86 loc) · 1.75 KB
/
user_settings.py
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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
import re
def validate_bool(elem):
try:
bool(elem)
return True
except Exception:
return False
def validate_color(elem):
if not re.fullmatch(r'^#(?:[0-9a-fA-F]{3}){1,2}$', elem):
return False
return True
SETTINGS = {
"normal_greetings": {
"default": True,
"type": "bool",
},
"chatgpt_greetings": {
"default": False,
"type": "bool",
},
"show_revision_selector": {
"default": False,
"type": "bool",
},
"day_switch_keys": {
"default": True,
"type": "bool",
},
"background_color": {
"default": "#121212",
"type": "color",
},
"accent_color": {
"default": "#A860FF",
"type": "color",
},
"text_color": {
"default": "#ffffff",
"type": "color",
},
"cancelled_color": {
"default": "#ff1744",
"type": "color",
},
"rainbow": {
"default": False,
"type": "bool",
},
"filled_in_buttons": {
"default": True,
"type": "bool",
},
"swipe_day_change": {
"default": False,
"type": "bool",
},
"external_times": {
"default": True,
"type": "bool",
},
"load_first_favorite": {
"default": True,
"type": "bool",
},
"weekplan_default": {
"default": False,
"type": "bool",
},
"filled_in_weekplan": {
"default": False,
"type": "bool"
}
}
TYPE_FUNCTIONS = {
"bool": {
"validation": validate_bool,
"conversion": bool,
},
"color": {
"validation": validate_color,
"conversion": str,
}
}
DEFAULT_SETTINGS = {
key: value["default"] for key, value in SETTINGS.items()
}