Example #1
0
File: htgen.py Project: shelt/tmail
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"))
Example #2
0
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