Source code for point.plugs.mbox

# p/plugs/mbox.py
#
#

""" mailbox input plugin. """

## IMPORTS

from point.utils import j, error, parse_email, time_stamp
from point import kernel, Object

import email.message
import mailbox
import datetime
import logging
import email
import time
import os

## COMMANDS

[docs]def do_mbox(event): rest = event.get_rest() if not rest: logging.warn("mbox <file>") ; return nr = 0 event.reply("reading %s" % rest) for m in mailbox.mbox(rest): o = Object() o.update(m.items()) logging.warn("reading %s" % nr) o.text = "" if m.is_multipart(): for load in m.walk(): if load.get_content_type() == 'text/plain': o.text += str(load.get_payload(decode=True), "utf8", errors="ignore") else: if m.get_content_type() == 'text/plain': o.text = str(m.get_payload(decode=True), "utf8", errors="ignore") nr += 1 if "Date" in o: o.timed = time_stamp(o.Date) o.save() logging.warn("%s mails saved" % nr)
kernel.cmnds.register("mbox", do_mbox)