#!/usr/bin/env python import sys import mailbox import email import datetime try: mbox_filename = sys.argv[1] except: # to create combined.mbox: # - download files from ftp://lists.gnu.org/bug-lilypond/ # - cat 2011-04 2011-05 > combined.mbox mbox_filename = "combined.mbox" # TODO: only count replies from Bug Squad members as official # TODO: add summary at top of page? initial_emails = [] for message in mailbox.mbox(mbox_filename): # ignore automatic emails from googlecode. if message['from'].startswith('address@hidden'): continue # ignore replies to previous emails if message['references'] or message['subject'].startswith("Re:"): continue # everything else should get a response initial_emails.append(message) less_24_hours = [] less_48_hours = [] late_answer = [] never_answer = [] for question in initial_emails: # look for a response replied = False for message in mailbox.mbox(mbox_filename): if message['references']: if message['references'].find(question['message-id']) >= 0: # ick, sorry question_date = datetime.datetime(*( email.utils.parsedate(question['date'])[:-2])) answer_date = datetime.datetime(*( email.utils.parsedate(message['date'])[:-2])) delta = answer_date - question_date if delta < datetime.timedelta(hours=24): less_24_hours.append( (question, message) ) elif delta < datetime.timedelta(hours=48): less_48_hours.append( (question, message) ) else: late_answer.append( (question, message) ) replied = True break if not replied: never_answer.append( (question) ) def write_table(html_file, message, emails, color): html_file.write("
Initial email | Answer | ||
---|---|---|---|
%s | %s | %s | %s |
%s | %s | %s | %s |