Source code for core.plugs.mbox
# core/plugs/mbox.py
#
#
""" mailbox input plugin. """
__copyright__ = "Copyright 2014 B.H.J Thate"
## IMPORTS
from core.utils import j, error, parse_email, short_date, ftime
from core import kernel, Object
import email.message
import mailbox
import datetime
import logging
import email
import time
import os
## CMNDS
[docs]def mbox(event):
parsed = event.get_parsed()
if not parsed.args: return
rest = os.path.expanduser(parsed.args[0])
nr = 0
if not os.path.isdir(rest): todo = [rest, ]
else: todo = os.listdir(rest)
for fn in todo:
fn = j(kernel.cfg.workdir, rest, fn)
for m in mailbox.mbox(fn):
o = Object()
o.update(m.items())
if "From" in o and "skip" in parsed.wanted and parsed.wanted.skip not in o["From"]: continue
o.text = ""
if m.is_multipart():
for load in m.walk():
if load.get_content_type() == 'text/plain': o.text += load.get_payload()
else:
if m.get_content_type() == 'text/plain': o.text = m.get_payload()
o.text = o.text.replace("\\n", "\n")
nr += 1
if "Date" in o:
timed = short_date(o.Date)
o.save(timed.replace(" ", os.sep).replace(":", "_"))
else: o.save()
event.ok(nr)
kernel.cmnds.register("mbox", mbox)