-
Notifications
You must be signed in to change notification settings - Fork 0
/
settings.py
81 lines (75 loc) · 2.6 KB
/
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
from yaml import safe_load
class PrinterDeviceSettings(object):
def __init__(self, raw):
if 'includes' in raw:
self.includes = raw['includes']
else:
self.includes = []
if 'excludes' in raw:
self.excludes= raw['excludes']
else:
self.excludes = []
class PrinterSettings(object):
def __init__(self, raw):
if 'devices' in raw:
self.devices = PrinterDeviceSettings(raw['devices'])
else:
self.devices = PrinterDeviceSettings([])
if 'bauds' in raw:
self.bauds = raw['bauds']
else:
self.bauds = []
class DescriptionSettings(object):
def __init__(self, raw, default):
if 'type' in raw:
if raw['type'] in ['plain', 'markdown']:
self.type = raw['type']
else:
print ("ERROR in config: '" + raw['type'] +
"' is not a valid greeting type!")
self.type = "plain"
else:
self.type = "plain"
if 'text' in raw:
if self.type == 'markdown':
import markdown
self.text = markdown.markdown(raw['text'])
else:
self.text = raw['text']
else:
self.text = default
class CoreSettings(object):
def __init__(self, raw):
if 'printer' in raw:
self.printer = PrinterSettings(raw['printer'])
else:
self.printer = PrinterSettings([])
self.greeting = DescriptionSettings(raw['greeting'] if 'greeting' in raw else [], """
<h1>WebPront</h1><p>Welcome to WebPront!</p>
""")
if 'name' in raw:
self.name = raw['name']
else:
self.name = 'WebPront'
self.about = DescriptionSettings(raw['about'] if 'about' in raw else [],"""
<h2>About</h2>
<p>This is <strong>WebPront</strong>, a web frontend for
<a href="https://github.com/kliment/Printrun">PrintRun</a>.
"""
)
if 'cookie_secret' in raw:
self.cookie_secret = raw['cookie_secret']
else:
print "WARNING: No cookie_secret set, using default secret"
self.cookie_secret = "Ifw1Mp4pQAe2SGWlAddMFAQrXoKOiEGTgcEZxFlJ9fw="
class Settings(object):
def __init__(self, raw):
if 'core' in raw:
self.core = CoreSettings(raw['core'])
else:
self.core = CoreSettings([])
def load_settings():
stream = file('config.yaml', 'r')
values = safe_load (stream)
stream.close()
return Settings(values)