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)