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)