Source code for core.plugs.write
# core/plugs/write.py
#
#
""" storage. """
__copyright__ = "Copyright 2015, B.H.J Thate"
## IMPORTS
from core.utils.time import short_date
from core.kernel import kernel
from core.thing import Thing
import mailbox
import os
## CMNDS
[docs]def write_mbox(event):
fn = os.path.expanduser(event.parsed.args[0])
nr = 0
if os.path.isdir(fn): thing = mailbox.Maildir(fn, create=False)
elif os.path.isfile(fn): thing = mailbox.mbox(fn, create=False)
else: event.reply("need a mbox or maildir.") ; return
for m in thing:
o = Thing()
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.prefix = "email"
if sdate: o.save(sdate)
else: o.save()
nr += 1
if nr: event.ok(nr)
kernel.register("write.mbox", write_mbox)
## CMNDS
[docs]def write_log(event):
o = Thing(event)
o.prefix = "log"
o.log = event.parsed.rest
path = o.save()
event.ok()
kernel.register("write.log", write_log)
[docs]def write_todo(event):
o = Thing(event)
o.prefix = "todo"
o.todo = event.parsed.rest
path = o.save()
event.ok()
kernel.register("write.todo", write_todo)