diff --git a/webserver/docker_dokuwiki/tasks/main.yml b/webserver/docker_dokuwiki/tasks/main.yml index 782a5988d3fe33e923faf40154fe12776417c186..698b075e65f38595767c284a913f4b324ae06a35 100644 --- a/webserver/docker_dokuwiki/tasks/main.yml +++ b/webserver/docker_dokuwiki/tasks/main.yml @@ -34,4 +34,4 @@ hour: "20" minute: "0" job: "/usr/bin/python3 /srv/dokuwiki/sendmail_plenum.py" - disabled: true + disabled: false diff --git a/webserver/docker_dokuwiki/templates/sendmail_plenum.py b/webserver/docker_dokuwiki/templates/sendmail_plenum.py index 4663f60656b50e7a0ceb85ca99e0547f981a8769..9d6a752eabb26f6b2fe349c7625d3321a4d01575 100644 --- a/webserver/docker_dokuwiki/templates/sendmail_plenum.py +++ b/webserver/docker_dokuwiki/templates/sendmail_plenum.py @@ -1,19 +1,69 @@ import smtplib +import datetime from email.message import EmailMessage -msg = EmailMessage() -msg['Subject'] = 'Aktuelle Plenumsthemen für den kommenden Dienstag 20:00' -msg['From'] = '{{noreply_email_user}}' -msg['To'] = 'intern@warpzone.ms' - with open("/srv/dokuwiki/data/data/pages/intern/diskussionsthemen.txt") as fp: - msg.set_content(fp.read()) + raw = fp.read().split('\n') + + # Extract Themen + firstline = 0 + lastline = 0 + for index, line in enumerate(raw): + # Start marker + if "====== 1." in line: + firstline = index + 1 + continue + + # End marker + if "====== 2." in line: + lastline = index + break + + # Remove empty lines from topics + topics = [] + for extracted in raw[firstline:lastline-1]: + if extracted != '': + topics.append(extracted) + + # There are no topics - just exit + if (len(topics) == 0): + exit() + + # calculate date of next tuesday + d = datetime.date.today() + while d.strftime('%a') != 'Tue': + d += datetime.timedelta(1) + + # mail template + mail = f""" +Liebe Zonies, + +es gibt wieder Themen die im Plenum besprochen werden sollen. Der nächste +Reguläre Termin ist am nächsten Dienstag ({str(d)}). +Im Wiki (https://wiki.warpzone.ms/intern:diskussionsthemen#diskussionsthemen_naechstes_plenum_automatische_einladung) +stehen folgende Themen: + +{chr(10).join(topics)} + +Die Teilnahme ist natürlich auch remote möglich unter +https://jitsi.dorf-post.de/warpzone-plenum möglich. + +Viele Grüße und bis Dienstag, + +sendmail_plenum.py +""" -server = smtplib.SMTP('{{smtp_host}}', {{smtp_port}}) -server.starttls() -server.login("{{noreply_email_user}}", "{{noreply_email_pass}}") -server.send_message(msg) -server.quit() + msg = EmailMessage() + msg['Subject'] = 'Aktuelle Plenumsthemen für den kommenden Dienstag 20:00' + msg['From'] = '{{noreply_email_user}}' + msg['To'] = 'intern@warpzone.ms' + msg.set_content(mail) + + server = smtplib.SMTP('{{smtp_host}}', {{smtp_port}}) + server.starttls() + server.login("{{noreply_email_user}}", "{{noreply_email_pass}}") + server.send_message(msg) + server.quit()