]> jfr.im git - erebus.git/commitdiff
Starting module API
authorzonidjan <redacted>
Sat, 23 Nov 2013 18:46:17 +0000 (12:46 -0600)
committerzonidjan <redacted>
Sat, 23 Nov 2013 18:46:17 +0000 (12:46 -0600)
modlib.py [new file with mode: 0644]
modules/modtest.py [new file with mode: 0644]

diff --git a/modlib.py b/modlib.py
new file mode 100644 (file)
index 0000000..eb9923f
--- /dev/null
+++ b/modlib.py
@@ -0,0 +1,19 @@
+class modlib(object):
+       hooks = {}
+       parent = None
+
+       def __init__(self, name):
+               self.name = name
+
+       def modstart(self, parent):
+               self.parent = parent
+               for cmd, func in self.hooks.iteritems():
+                       self.parent.hook(cmd, func)
+
+       def hook(self, cmd):
+               def realhook(func):
+                       self.hooks[cmd] = func
+                       if self.parent is not None:
+                               self.parent.hook(cmd, func)
+                       return func
+               return realhook
diff --git a/modules/modtest.py b/modules/modtest.py
new file mode 100644 (file)
index 0000000..ea2f4d9
--- /dev/null
@@ -0,0 +1,9 @@
+# preamble
+import modlib
+lib = modlib.modlib(__name__)
+modstart = lib.modstart
+
+#module code
+@lib.hook('test')
+def cmd_test(bot, user, chan, *args):
+       bot.msg(chan, "You said: !test %s" % (' '.join([str(arg) for arg in args])))