Source code for mods.output

# mods/output.py
#
#

"""
    commands that output data.

"""

from mads.name import tname, name
from mads.misc import stripped
from mads.getters import slice
from mads.time import elapsed
from mads.join import j

from mads.object import Object

import threading
import time
import mads
import mids
import os

format = "%-4s %-15s %-10s %-7s %-45s"

[docs]def aliases(event): """ show aliases. """ event.reply(mids.aliases)
[docs]def announce(event): """ announce text on all channels in fleet. """ mids.kernel.announce(event._parsed.rest)
[docs]def bot(event): """ dump bot json. """ for bot in mids.fleet: if bot.id() == event.id(): event.reply(bot)
[docs]def cfg(event): """ show config files. """ if not event._parsed.rest: event.reply(mids.cfg) return dcfg = mids.kernel.load(j("cfg", event._parsed.rest)) event.reply(dcfg)
[docs]def cmnds(event): """ show list of commands. """ res = sorted(set([cmnd for cmnd, mod in mids.kernel._names.items() if event._parsed.rest in str(mod)])) event.reply(res or "no modules loaded.")
[docs]def fleet(event): """ show list of running bots. """ event.reply(",".join([x.id() for x in mids.fleet]))
[docs]def kernel(event): """ show kernel dump. """ event.reply(mids.kernel)
[docs]def ls(event): """ show subdirs in working directory. """ event.reply(" ".join(os.listdir(mids.cfg.workdir)))
[docs]def modules(event): """ show kernel dump. """ if not event._parsed.rest: res = mids.kernel else: res = mids.kernel.get(event._parsed.rest, None) if res: event.reply(res.nice())
[docs]def pid(event): """ show pid of the MADS bot. """ event.reply(str(os.getpid()))
[docs]def ps(event): """ show running threads. """ res = [] nr = 1 txt = [] uptime = elapsed(int(time.time() - mids.kernel._times.start)) event.reply("KERNEL") event.reply("") event.reply(format % (0, "kernel", mids.kernel._state.printable(nokeys=True), uptime, mids.kernel._counters.printable())) for thr in sorted(mids.kernel.running(), key=lambda x: name(x)): obj = Object(vars(thr)) if "start" not in obj._times: continue if "sleep" in obj: uptime = elapsed(obj.sleep - int(time.time() - obj._times.last)) else: uptime = elapsed(int(time.time() - obj._times.start)) thrname = tname(thr) event.reply(format % (nr, thrname, obj._state.printable(nokeys=True), uptime, obj._counters.printable())) nr += 1 event.reply("") event.reply("FLEET") event.reply("") for bot in mids.fleet.bots: uptime = elapsed(int(time.time() - bot._times.start)) event.reply(format % (nr, bot.id(), bot._state.printable(nokeys=True), uptime,bot._counters.printable())) nr += 1
[docs]def runtime(event): """ print runtime dump. """ event.reply(str(mids.runtime))
[docs]def seen(event): event.reply(mids.seen)
[docs]def users(event): event.reply(mids.users)
[docs]def test(event): """ echo origin. """ event.reply(stripped(event.origin))
[docs]def uptime(event): """ show uptime. """ event.reply("uptime is %s" % elapsed(time.time() - mads._starttime))
[docs]def version(event): """ show version. """ event.reply("MADS #%s - %s" % (mads.__version__, mads.__txt__))
[docs]def whoami(event): """ show origin. """ event.reply(event.origin)