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)