Source code for zot.plugs.mail

# bot/plugs/mbox.py
#
#

""" mailbox input plugin. """

__copyright__ = "Copyright 2015, B.H.J Thate"

## IMPORTS

from zot.utils import j, error, parse_email, short_date, ftime
from zot.object import Object
from zot.runtime import kernel

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

## CMNDS

[docs]def mbox(event): try: fn = os.path.abspath(os.path.expanduser(event.args[0])) except: return nr = 0 if not os.path.isfile(fn): event.reply("a mbox file is needed.") ; return for m in mailbox.mbox(fn, create=False): o = Object() o.update(m.items()) try: sdate = os.sep.join(short_date(o.Date).split()) except AttributeError: sdate = None o.text = "" for load in m.walk(): if load.get_content_type() == 'text/plain': o.text += load.get_payload() o.text = o.text.replace("\\n", "\n") o.prepath = "email" if sdate: o.save(sdate) else: o.save() nr += 1 if nr: event.ok(nr)
kernel.register("mbox", mbox)