aboutsummaryrefslogtreecommitdiff
path: root/helpers/__init__.py
diff options
context:
space:
mode:
Diffstat (limited to 'helpers/__init__.py')
-rw-r--r--helpers/__init__.py76
1 files changed, 75 insertions, 1 deletions
diff --git a/helpers/__init__.py b/helpers/__init__.py
index 7fe9c35..eb948f2 100644
--- a/helpers/__init__.py
+++ b/helpers/__init__.py
@@ -5,6 +5,80 @@ from .lock import *
5from .font import * 5from .font import *
6import yaml 6import yaml
7 7
8def parse_config2():
9 stream = open("config.yml", "r")
10 config = yaml.load(stream)
11 stream.close()
12
13 aliases = config['aliases']
14 seen_files = {}
15
16 file_lock = Lock("file")
17
18 channel_id = 0
19
20 key_properties = {}
21
22 for key in config['key_properties']:
23 if key not in key_properties:
24 key_properties[key] = {
25 "actions": [],
26 "properties": config['key_properties'][key],
27 "files": []
28 }
29
30 for mapped_key in config['keys']:
31 if mapped_key not in key_properties:
32 key_properties[mapped_key] = {
33 "actions": [],
34 "properties": {},
35 "files": []
36 }
37 for action in config['keys'][mapped_key]:
38 action_name = list(action)[0]
39 action_args = {}
40 if action[action_name] is None:
41 action[action_name] = []
42
43 if 'include' in action[action_name]:
44 included = action[action_name]['include']
45 del(action[action_name]['include'])
46
47 if isinstance(included, str):
48 action[action_name].update(aliases[included], **action[action_name])
49 else:
50 for included_ in included:
51 action[action_name].update(aliases[included_], **action[action_name])
52
53 for argument in action[action_name]:
54 if argument == 'file':
55 filename = action[action_name]['file']
56 if filename not in seen_files:
57 if filename in config['music_properties']:
58 seen_files[filename] = MusicFile(
59 filename,
60 file_lock,
61 channel_id,
62 **config['music_properties'][filename])
63 else:
64 seen_files[filename] = MusicFile(
65 filename,
66 file_lock,
67 channel_id)
68 channel_id = channel_id + 1
69
70 if filename not in key_properties[mapped_key]['files']:
71 key_properties[mapped_key]['files'].append(seen_files[filename])
72
73 action_args['music'] = seen_files[filename]
74
75 else:
76 action_args[argument] = action[action_name][argument]
77
78 key_properties[mapped_key]['actions'].append([action_name, action_args])
79
80 return (key_properties, channel_id + 1, seen_files)
81
8def parse_config(mapping): 82def parse_config(mapping):
9 stream = open("config.yml", "r") 83 stream = open("config.yml", "r")
10 config = yaml.load(stream) 84 config = yaml.load(stream)
@@ -46,7 +120,7 @@ def parse_config(mapping):
46 seen_files[filename] = MusicFile( 120 seen_files[filename] = MusicFile(
47 filename, 121 filename,
48 file_lock, 122 file_lock,
49 channel_id, 123 channel_id,
50 **config['music_properties'][filename]) 124 **config['music_properties'][filename])
51 else: 125 else:
52 seen_files[filename] = MusicFile( 126 seen_files[filename] = MusicFile(