forked from wangroot/MFCRecorder
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathmfcrecorder.py
35 lines (33 loc) · 1.41 KB
/
mfcrecorder.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
import datetime
import time
import os
import sys
import threading
import mfcauto
import classes
if __name__ == '__main__':
config = classes.config.Config(os.path.join(sys.path[0], 'config.conf'))
#when config is edited at runtime and postprocessing is added, we cannot start it
if config.settings.post_processing_command:
classes.postprocessing.init_workers(config.settings.post_processing_thread_count)
if config.settings.web_enabled:
import webapp
webapp.views.init_data(config)
threading.Thread(
target=webapp.app.run,
kwargs={'host':'0.0.0.0', 'port': config.settings.port, 'threaded':'True', 'ssl_context':('certs/snakeoil.cert', 'certs/snakeoil.key')}
).start()
next_run = datetime.datetime.now()
while True:
if datetime.datetime.now() < next_run:
time.sleep(0.1)
continue
print("another run {}".format(datetime.datetime.now()))
next_run += datetime.timedelta(seconds=config.settings.interval)
config.refresh()
for uid, model in classes.models.get_online_models().items():
if not config.does_model_pass_filter(model):
continue
classes.recording.start_recording(model.session, config)
print("recording {}: {} ({} viewers) [{}]".format(model.name, model.session['uid'], model.session['rc'], model.tags))
print('finished run')