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)