def box(wfile,boxtype): msgs = [] if boxtype == "in": raw_msgs = database.get_inbox() elif boxtype == "out": raw_msgs = database.get_outbox() else: raise ValueError("Unknown boxtype: "+boxtype) # Sorting by date DATE_INDEX = 1 try: import operator except ImportError: sortkey = key=operator.itemgetter(DATE_INDEX) else: sortkey = lambda x: x[DATE_INDEX] raw_msgs.sort(key=sortkey, reverse=True) for raw_msg in raw_msgs: msg = {} msg['read'] = raw_msg[2] == 1 parsed = email.message_from_string(raw_msg[0]) msg['msgid'] = escape(parsed.get("Message-ID")) msg['sender'] = escape(parsed.get("From")) msg['recip'] = escape(parsed.get("To")) msg['subj'] = escape(parsed.get("Subject")) msg['date'] = escape(parsed.get("Date")) msgs.append(msg) html = temp_box.render(boxtype=boxtype, msgs=msgs) wfile.write(html.encode("UTF-8"))
def get_box_content(boxtype): if boxtype == "in": raw_msgs = database.get_inbox() elif boxtype == "out": raw_msgs = database.get_outbox() else: raise ValueError("Unknown boxtype: " + boxtype) # Sorting by date DATE_INDEX = 1 try: import operator except ImportError: sortkey = key = operator.itemgetter(DATE_INDEX) else: sortkey = lambda x: x[DATE_INDEX] raw_msgs.sort(key=sortkey, reverse=True) # Adding messages msgs = """<ol class="boxmessages"> """ for raw_msg in raw_msgs: if raw_msg[2] == 1: # is read? weight = "normal" else: weight = "bold" msg = email.message_from_string(raw_msg[0]) msgid = escape(msg.get("Message-ID")) sender = escape(msg.get("From")) recip = escape(msg.get("To")) subj = escape(msg.get("Subject")) date = escape(msg.get("Date")) msgs += """ <li class="boxmessage"> <a href="/thread/{msgid}"> <div class="info whobox"> <table> <tr><td style="color:#AAA;">F:</td><td>{sender}</td></tr> <tr><td style="color:#AAA;">T:</td><td>{recip}</td></tr> </table> </div> <div class ="info whatwhenbox"> <div class="subject" style="font-weight: {weight};">{subj}</div> <div class="date">{date}</div> </div> </a> </li>""".format( msgid=msgid, sender=sender, recip=recip, weight=weight, subj=subj, date=date ) msgs += "</ol>" return msgs