From 1a8f2361085c1f38a6fc2a9e915ddb4d007d9273 Mon Sep 17 00:00:00 2001
From: Julian Rother <julianr@fsmpi.rwth-aachen.de>
Date: Mon, 12 Sep 2016 03:44:09 +0200
Subject: [PATCH] Use scheduler to periodically update next meeting psa

---
 config.py.example | 1 +
 meetings.py       | 1 +
 server.py         | 4 ++++
 3 files changed, 6 insertions(+)

diff --git a/config.py.example b/config.py.example
index 27254fd..53d80f9 100644
--- a/config.py.example
+++ b/config.py.example
@@ -19,3 +19,4 @@ SQLITE_INIT_SCHEMA = True
 SQLITE_INIT_DATA = False
 
 #LDAP_HOST = 'ldaps://rumo.fsmpi.rwth-aachen.de'
+#ICAL_URL = 'https://user:password@mail.fsmpi.rwth-aachen.de/SOGo/....ics'
diff --git a/meetings.py b/meetings.py
index 57b3e50..0eb0195 100644
--- a/meetings.py
+++ b/meetings.py
@@ -21,6 +21,7 @@ def get_next_meeting():
 	event = sorted(meetings, key=lambda e: e['DTSTART'].dt)[0]
 	return str(event['UID']), event['DTSTART'].dt.replace(tzinfo=None)
 
+@sched_func(60*60)
 def update_meeting():
 	try:
 		uid, start = get_next_meeting()
diff --git a/server.py b/server.py
index 88c5683..8b00fbc 100644
--- a/server.py
+++ b/server.py
@@ -8,6 +8,7 @@ import sys
 import hashlib
 import random
 import sched
+import time
 
 app = Flask(__name__)
 
@@ -19,6 +20,7 @@ app.add_template_global(timedelta, name='timedelta')
 
 scheduler = sched.scheduler()
 def run_scheduler():
+	time.sleep(1) # UWSGI does weird things on startup
 	while True:
 		scheduler.run()
 
@@ -449,3 +451,5 @@ import feeds
 import importer
 import schedule
 import sorter
+if 'ICAL_URL' in config:
+	import meetings
-- 
GitLab