diff options
Diffstat (limited to 'news2mail.py')
-rw-r--r-- | news2mail.py | 71 |
1 files changed, 26 insertions, 45 deletions
diff --git a/news2mail.py b/news2mail.py index e1909a1..71e0d17 100644 --- a/news2mail.py +++ b/news2mail.py @@ -22,17 +22,18 @@ normal (what pygs does) operations flow is: Date:, normal headers ending with X-* and Resent-* headers. """ +from collections import OrderedDict import email import logging -from collections import OrderedDict -# logging.basicConfig(level=logging.DEBUG) -import sys import smtplib -import time from socket import gethostbyaddr, gethostname -import pyginfo +import sys +import time + +from mail2news import VERSION, DESC +# logging.basicConfig(level=logging.DEBUG) class news2mail(object): """news to mail gateway class""" @@ -55,8 +56,7 @@ class news2mail(object): def readfile(self): self.message = email.message_from_file(sys.stdin) - self.nntpheads = dict(((key, value) - for (key, value) in self.message.items())) + self.nntpheads = OrderedDict(self.message) @staticmethod def puthead(from_dict, out_list, key): @@ -97,18 +97,8 @@ class news2mail(object): """make a unique headers dictionary from NNTP and SMTP single headers dictionaries.""" - self.heads_dict = OrderedDict() - - try: - for header in self.nntpheads.keys(): # fill it w/ nntp old heads - self.heads_dict[header] = self.nntpheads[header] - - # and replace them w/ smtp new heads - for header in self.smtpheads.keys(): - self.heads_dict[header] = self.smtpheads[header] - - except KeyError, message: - print message + self.heads_dict = OrderedDict(self.nntpheads) + self.heads_dict.update(self.smtpheads) return self.heads_dict @@ -116,37 +106,28 @@ class news2mail(object): """add new header like X-Gateway: Received: """ - info = pyginfo.pygsinfo() - - try: - self.heads_dict['X-Gateway'] = info.PROGNAME + ' ' + \ - info.__doc__ + '\n' - - ##self.heads_dict['X-Gateway'] = '%s %s\n' % - ## (info.PROGNAME, info.__doc__) + self.heads_dict['X-Gateway'] = 'pyg {0} {1}'.format(VERSION, DESC) - # to make Received: header - t = time.ctime(time.time()) + # to make Received: header + t = time.ctime(time.time()) - if time.daylight: - tzone = time.tzname[1] - else: - tzone = time.tzname[0] + if time.daylight: + tzone = time.tzname[1] + else: + tzone = time.tzname[0] - # An exemple from debian-italian: - # Received: from murphy.debian.org (murphy.debian.org [216.234.231.6]) - # by smv04.iname.net (8.9.3/8.9.1SMV2) with SMTP id JAA26407 - # for <kame.primo@innocent.com> sent by - # <debian-italian-request@lists.debian.org + # An example from debian-italian: + # Received: from murphy.debian.org (murphy.debian.org [216.234.231.6]) + # by smv04.iname.net (8.9.3/8.9.1SMV2) with SMTP id JAA26407 + # for <kame.primo@innocent.com> sent by + # <debian-italian-request@lists.debian.org - tmp = 'from GATEWAY by ' + self.hostname + \ - ' with ' + info.PROGNAME + \ - '\n\tfor <' + self.rcpt + '> ; ' + \ - t + ' (' + tzone + ')\n' + tmp = 'from GATEWAY by ' + self.hostname + \ + ' with pyg' + \ + '\n\tfor <' + self.rcpt + '> ; ' + \ + t + ' (' + tzone + ')\n' - self.heads_dict['Received'] = tmp - except KeyError, message: - print message + self.heads_dict['Received'] = tmp return self.heads_dict |