Source code for mods.storage
# mods/storage.py
#
#
""" commands to manipulate objects in the backend storage. """
from mads.time import to_day, now, day
from mads.getters import slice
from mids import kernel
import time
[docs]def rm(event):
""" set deleted flag on objects. """
nr = 0
for object in kernel.selected(event):
object.deleted = True
object.sync()
nr += 1
event.ok(nr)
[docs]def restore(event):
""" set deleted=False in selected records. """
nr = 0
event.nodel = True
for object in kernel.selected(event):
object.deleted = False
object.sync()
nr += 1
if not nr:
event.reply("no results")
event.ok(nr)
[docs]def week(event):
""" show last week's logged objects. """
event._parsed.start = to_day(day()) - 7 * 24 * 60 * 60
event._parsed.end = time.time()
nr = 0
for object in kernel.selected(event):
nr += 1
event.display(object, event._parsed.args, str(nr))
if not nr:
event.reply("no results")
[docs]def today(event):
""" show objects logged for today. """
event._parsed.start = to_day(day())
event._parsed.end = time.time()
nr = 0
for object in kernel.selected(event):
nr += 1
event.display(object, event._parsed.args, str(nr))
if not nr:
event.reply("no results")
[docs]def yesterday(event):
""" show objects added yesterday. """
event._parsed.start = to_day(day()) - 24 * 60 * 60
event._parsed.end = to_day(day())
nr = 0
for object in kernel.selected(event):
nr += 1
event.display(object, event._parsed.args, str(nr))
if not nr:
event.reply("no results")
[docs]def sequence(event):
""" show sequence of events. """
if "end" not in event._parsed:
end = to_day(day())
else:
end = event._parsed.end
if "start" not in event._parsed:
start = 0
else:
start = event._parsed.start
nr = 0
for o in kernel.sequence(start, end, skip=["feeds", "seen"]):
nr += 1
event.reply(o.nice())
if not nr:
event.reply("no results")
[docs]def find(event):
""" present a list of objects based on prompt input. """
nr = 0
for obj in kernel.selected(event):
nr += 1
event.display(obj, event._parsed.args, str(nr), direct=True)
if not nr:
event.reply("no results")
[docs]def deleted(event):
""" show deleted records. """
event.nodel = True
nr = 0
for object in kernel.selected(event):
nr += 1
event.display(object, event._parsed.args, str(nr))
if not nr:
event.reply("no results")
[docs]def dump(event):
""" dump objects matching the given criteria. """
nr = 0
for object in kernel.selected(event):
nr += 1
event.reply(object.nice())
if not nr:
event.reply("no results")
[docs]def first(event):
""" show the first record matching the given criteria. """
object = kernel.first(*event._parsed.args)
if object:
event.reply(object.nice())
else:
event.reply("no result")
[docs]def last(event):
""" show last objectect matching the criteria. """
object = kernel.last(*event._parsed.args)
if object:
event.reply(object.nice())
else:
event.reply("no result")