diff --git a/app.py b/app.py index 749ccbf..5477a79 100644 --- a/app.py +++ b/app.py @@ -5,6 +5,13 @@ from icalendar.cal import Calendar, Component app = Flask(__name__) +FILTERED_COURSES = os.environ.get('COURSES', '').split(',') +FILTERED_TYPES = os.environ.get('TYPES', '').split(',') +YEAR = int(os.environ.get('YEAR', '4')) +GROUP = int(os.environ.get('GROUP', '1')) +GENERAL_GROUP = int(os.environ.get('GENERAL_GROUP', '0')) +GROUPS = [GROUP, GENERAL_GROUP] + @app.route("/") def hello(): @@ -14,8 +21,6 @@ def hello(): cal_str = urllib.request.urlopen(url).read() - FILTERED_EVENTS = os.environ.get('COURSES', '').split(',') - cal = Component.from_ical(cal_str) other = Calendar() @@ -28,12 +33,25 @@ def hello(): # Filter and copy VEVENTs for ev in cal.walk('VEVENT'): - course_code = ev['SUMMARY'].split('-')[1].split('/')[0] - if course_code not in FILTERED_EVENTS: + if should_add(ev): other.add_component(ev) return other.to_ical().replace(b'\r\n', b'\n').strip() + +def should_add(event): + course_code = event['SUMMARY'].split('-')[1].split('/')[0] + course_type = event['SUMMARY'].split('/')[1].split('_')[1] + year = event['SUMMARY'][0] + group = event['SUMMARY'][-1] + + return \ + course_code not in FILTERED_COURSES \ + and course_type not in FILTERED_TYPES \ + and year == YEAR \ + and group in GROUPS + + if __name__ == "__main__": port = int(os.environ.get('PORT', 5000)) app.run('0.0.0.0', port)