diff options
Diffstat (limited to 'push.py')
-rwxr-xr-x | push.py | 34 |
1 files changed, 19 insertions, 15 deletions
@@ -1,4 +1,4 @@ -#!/usr/local/bin/python +#!/usr/local/bin/python3.4 import os import re @@ -27,19 +27,19 @@ except KeyError: try: recipient_map = maps['recipients'] except KeyError: - print >>sys.stderr, "Found no recipients." + print("Found no recipients.", file=sys.stderr) sys.exit(1) try: recipient = os.environ['RECIPIENT'] except KeyError: - print >>sys.stderr, "Recipient missing." + print( "Recipient missing.", file=sys.stderr) sys.exit(1) try: - sender = os.environ['SENDER'] + sender = os.environ['SENDER'] except KeyError: - print >>sys.stderr, "Sender missing." + print("Sender missing.", file=sys.stderr) sys.exit(1) # Select api key from map based on sender @@ -49,14 +49,14 @@ for s in sender_map: try: api_token = s['key'] except KeyError: - print >>sys.stderr, "Found no key for sender." + print("Found no key for sender.", file=sys.stderr) sys.exit(1) else: break except KeyError: next else: - print >>sys.stderr, "Found no matching sender." + print("Found no matching sender.", file=sys.stderr) sys.exit(1) # Select user key(s) from map based on sender @@ -66,26 +66,30 @@ for r in recipient_map: try: user_tokens = r['keys'] except KeyError: - print >>sys.stderr, "Found no key(s) for recipient." + print("Found no key(s) for recipient.", file=sys.stderr) sys.exit(1) else: break except KeyError: next else: - print >>sys.stderr, "Found no matching receiver." + print("Found no matching receiver.", file=sys.stderr) sys.exit(1) # Read an email from stdin parser = email.parser.Parser() mail = parser.parse(sys.stdin) -# Try to get the subject from the email and recode to utf-8 if possible -title, encoding = email.header.decode_header(mail.get('subject'))[0] try: - title = title.decode(encoding).encode('utf-8') -except (NameError, TypeError): - pass + # Try to get the subject from the email and recode to utf-8 if possible + title, encoding = email.header.decode_header(mail.get('subject'))[0] +except TypeError: + title = None +else: + try: + title = title.decode(encoding).encode('utf-8') + except (NameError, TypeError): + pass # Lets at least try to handle mime multipart if mail.is_multipart(): @@ -118,7 +122,7 @@ for user_token in user_tokens: device = None try: - k = user_token.keys()[0] + k = list(user_token.keys())[0] device = user_token[k] except AttributeError: pass |