SVN: toys/cvsstats/email2sql.py
pawelz
pawelz at pld-linux.org
Sun Feb 28 00:51:46 CET 2010
Author: pawelz
Date: Sun Feb 28 00:51:45 2010
New Revision: 11212
Modified:
toys/cvsstats/email2sql.py
Log:
- workaround for multipart messages
Modified: toys/cvsstats/email2sql.py
==============================================================================
--- toys/cvsstats/email2sql.py (original)
+++ toys/cvsstats/email2sql.py Sun Feb 28 00:51:45 2010
@@ -8,7 +8,7 @@
import time
rmsg = re.compile(
- "\AAuthor: (?P<author>\S+)\s+Date: (?P<date>.*)\n"
+ "^Author: (?P<author>\S+)\s+Date: (?P<date>.*)\n"
"Module: (?P<module>\S+)\s+Tag: (?P<tag>.*)\n"
"---- Log message:\n"
"(?P<log>(.*\n)*)\n"
@@ -38,20 +38,26 @@
msg = email.message_from_file(fp)
fp.close()
- for part in msg.walk():
- p = part.get_payload(decode=True)
- m = rmsg.match(p)
- if m:
- self.author = m.group("author")
- d = time.strptime(m.group("date")[0:-4])
- self.date = "%i-%i-%i %i:%i:%i" % (d.tm_year, d.tm_mon, d.tm_mday,
- d.tm_hour, d.tm_min, d.tm_sec)
- self.module = m.group("module")
- self.tag = m.group("tag")
- self.log = m.group("log")
- self.files = m.group("files")
- self.parse_diff(m.group("diff"))
- break;
+ #for part in msg.walk():
+ p = msg.get_payload(decode=True)
+
+ # ugly workaround, for some reason get_payload fails for multipart
+ # messages
+ if (not p):
+ p = str(msg)
+
+ m = rmsg.search(p)
+ if m:
+ self.author = m.group("author")
+ d = time.strptime(m.group("date")[0:-4])
+ self.date = "%i-%i-%i %i:%i:%i" % (d.tm_year, d.tm_mon, d.tm_mday,
+ d.tm_hour, d.tm_min, d.tm_sec)
+ self.module = m.group("module")
+ self.tag = m.group("tag")
+ self.log = m.group("log")
+ self.files = m.group("files")
+ self.parse_diff(m.group("diff"))
+ #break;
def parse_diff(self, diff):
current_file=None
@@ -118,6 +124,10 @@
for f in sys.argv:
if f == sys.argv[0]:
continue
- c = commit(f)
- c.files_sql()
- c.commit_sql()
+ try:
+ c = commit(f)
+ print "-- %s" % f
+ c.files_sql()
+ c.commit_sql()
+ except:
+ print >> sys.stderr, "Error: %s" % f
More information about the pld-cvs-commit
mailing list