This repository was archived by the owner on Jul 31, 2023. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathmain.py
More file actions
69 lines (57 loc) · 2.09 KB
/
Copy pathmain.py
File metadata and controls
69 lines (57 loc) · 2.09 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
import logger
import sys
import event_manager
import mister
import os
import sys
import json
import schedule
import time
import threading
import obs
import filesystem
import script
import discord
import dashboard
import retroarch
import config
import steam
if __name__ == "__main__":
pubsub_file = "pubsub.json"
if len(sys.argv) > 1:
new_file = sys.argv[1]
if os.path.exists(new_file):
pubsub_file = new_file
logger.info(f"Using {new_file} instead of pubsub.json")
SETTINGS = config.get_config()
pubsub = {}
if os.path.exists(pubsub_file):
with open(pubsub_file) as pubsub_json:
pubsub = json.load(pubsub_json)
for publisher in pubsub["publishers"]:
if pubsub["publishers"][publisher]["status"] == "enabled":
if publisher in event_manager.publishers:
if "initialize" in event_manager.publishers[publisher]:
threading.Thread(target=event_manager.publishers[publisher]["initialize"]).start()
refresh_rate = SETTINGS[publisher.lower()]['refresh_rate']
schedule.every(int(refresh_rate)).seconds.do(event_manager.publishers[publisher]["publish"])
for subscriber in event_manager.subscribers:
if subscriber in pubsub["subscribers"]:
if pubsub["subscribers"][subscriber]["status"] == "enabled":
if "initialize" in event_manager.subscribers[subscriber]:
if "type" in pubsub["subscribers"][subscriber]:
if pubsub["subscribers"][subscriber]["type"] == "async":
event_manager.subscribers[subscriber]["initialize"]()
else:
threading.Thread(target=event_manager.subscribers[subscriber]["initialize"]).start()
while True:
try:
schedule.run_pending()
time.sleep(1)
except KeyboardInterrupt:
# quit
try:
dashboard.shutdown()
except Exception as e:
os._exit(0)
sys.exit()