diff options
author | Lukas Fleischer <lfleischer@archlinux.org> | 2015-10-10 17:25:03 +0200 |
---|---|---|
committer | Lukas Fleischer <lfleischer@archlinux.org> | 2015-10-17 17:31:46 +0200 |
commit | c76499993f37976f14e8e30eb8bb06d53166d5f4 (patch) | |
tree | fa1827ae1d9ab1e3219c204b3bd11d999e756ab2 | |
parent | 1f6237ffa73f1cc931ec7cb2abbdd6ff54e1581a (diff) | |
download | aurweb-c76499993f37976f14e8e30eb8bb06d53166d5f4.tar.xz |
notify: Split out email header generation
Signed-off-by: Lukas Fleischer <lfleischer@archlinux.org>
-rwxr-xr-x | scripts/notify.py | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/scripts/notify.py b/scripts/notify.py index 56c15d5..4e04234 100755 --- a/scripts/notify.py +++ b/scripts/notify.py @@ -26,7 +26,13 @@ sender = config.get('notifications', 'sender') reply_to = config.get('notifications', 'reply-to') -def send_notification(to, subject, body, refs, cc=None, reference=None): +def headers_cc(cclist): + return {'Cc': str.join(', ', cclist)} + +def headers_reply(thread_id): + return {'In-Reply-To': thread_id, 'References': thread_id} + +def send_notification(to, subject, body, refs, headers={}): body = '\n'.join([textwrap.fill(line) for line in body.splitlines()]) body += '\n\n' + refs @@ -37,12 +43,8 @@ def send_notification(to, subject, body, refs, cc=None, reference=None): msg['Reply-to'] = reply_to msg['To'] = recipient - if cc: - msg['Cc'] = str.join(', ', cc) - - if reference: - msg['In-Reply-To'] = reference - msg['References'] = reference + for key, value in headers.items(): + msg[key] = value p = subprocess.Popen([sendmail, '-t', '-oi'], stdin=subprocess.PIPE) p.communicate(msg.as_bytes()) @@ -130,8 +132,9 @@ def comment(cur, uid, pkgbase_id): refs = '[1] ' + user_uri + '\n' refs += '[2] ' + pkgbase_uri thread_id = '<pkg-notifications-' + pkgbase + '@aur.archlinux.org>' + headers = headers_reply(thread_id) - send_notification(to, subject, body, refs, reference=thread_id) + send_notification(to, subject, body, refs, headers) def flag(cur, uid, pkgbase_id): user = username_from_id(cur, uid) @@ -207,8 +210,9 @@ def request_open(cur, uid, reqid, reqtype, pkgbase_id, merge_into=None): refs = '[1] ' + user_uri + '\n' refs += '[2] ' + pkgbase_uri + '\n' thread_id = '<pkg-request-' + reqid + '@aur.archlinux.org>' + headers = headers_reply(thread_id) + headers_cc(cc) - send_notification(to, subject, body, refs, cc, thread_id) + send_notification(to, subject, body, refs, headers) def request_close(cur, uid, reqid, reason): user = username_from_id(cur, uid) @@ -227,8 +231,9 @@ def request_close(cur, uid, reqid, reason): body += ':\n\n' + text refs = '[1] ' + user_uri thread_id = '<pkg-request-' + reqid + '@aur.archlinux.org>' + headers = headers_reply(thread_id) + headers_cc(cc) - send_notification(to, subject, body, refs, cc, thread_id) + send_notification(to, subject, body, refs, headers) if __name__ == '__main__': |