# Erebus IRC bot - Author: Erebus Team
-# simple module example
+# vim: fileencoding=utf-8
+# resource-usage module
# This file is released into the public domain; see http://unlicense.org/
# module info
modinfo = {
'author': 'Erebus Team',
'license': 'public domain',
- 'compatible': [1], # compatible module API versions
- 'depends': [], # other modules required to work properly?
+ 'compatible': [0],
+ 'depends': [],
+ 'softdeps': ['help'],
}
# preamble
# module code
import resource
-@lib.hook('ram', needchan=False, glevel=lib.MANAGER)
-def cmd_ram(bot, user, chan, realtarget, *args):
- if realtarget == chan.name: replyto = chan
+@lib.hook(needchan=False, wantchan=True, glevel=lib.MANAGER)
+@lib.help(None, "show RAM usage")
+def ram(bot, user, chan, realtarget, *args):
+ if chan is not None: replyto = chan
else: replyto = user
try:
except:
res = resource.getrusage(resource.RUSAGE_SELF)
- bot.msg(replyto, "Memory usage (MiB): %r" % (res.ru_maxrss/1024.0))
+ bot.fastmsg(replyto, "Memory usage (MiB): %r" % (res.ru_maxrss/1024.0))
-@lib.hook('resources', needchan=False, glevel=lib.MANAGER)
-def cmd_resources(bot, user, chan, realtarget, *args):
- if realtarget == chan.name: replyto = chan
+@lib.hook(needchan=False, wantchan=True, glevel=lib.MANAGER)
+@lib.help(None, "show resource usage")
+def resources(bot, user, chan, realtarget, *args):
+ if chan is not None: replyto = chan
else: replyto = user
try:
except:
res = resource.getrusage(resource.RUSAGE_SELF)
- bot.msg(replyto, "Resource usage:")
- for i, v in [
+ bot.slowmsg(replyto, "Resource usage:")
+ for i, v in (
('utime (s)', res.ru_utime),
('stime (s)', res.ru_stime),
- ('memory (MiB)', (res.ru_maxrss/1024.0))
+ ('memory (MiB)', (res.ru_maxrss/1024.0)),
('I/O (blocks)', res.ru_inblock+res.ru_oublock),
('page faults', res.ru_majflt),
('signals', res.ru_nsignals),
('context switches (voluntary)', res.ru_nvcsw),
('context switches (involuntary)', res.ru_nivcsw),
- ]:
- bot.msg(replyto, "- %s: %r" % (i, v))
- bot.msg(replyto, "EOL.")
+ ):
+ bot.slowmsg(replyto, "- %s: %r" % (i, v))
+ bot.slowmsg(replyto, "EOL.")