aboutsummaryrefslogtreecommitdiff
path: root/src/core_modules/ctcp.py
diff options
context:
space:
mode:
Diffstat (limited to 'src/core_modules/ctcp.py')
-rw-r--r--src/core_modules/ctcp.py29
1 files changed, 29 insertions, 0 deletions
diff --git a/src/core_modules/ctcp.py b/src/core_modules/ctcp.py
new file mode 100644
index 00000000..678cf833
--- /dev/null
+++ b/src/core_modules/ctcp.py
@@ -0,0 +1,29 @@
+#--depends-on config
+
+import datetime
+from src import IRCBot, ModuleManager, utils
+
+
+@utils.export("serverset", utils.BoolSetting("ctcp-responses",
+ "Set whether I respond to CTCPs on this server"))
+class Module(ModuleManager.BaseModule):
+ @utils.hook("received.ctcp.request.version")
+ def ctcp_version(self, event):
+ default = "BitBot %s (%s)" % (IRCBot.VERSION, IRCBot.SOURCE)
+
+ event["user"].send_ctcp_response("VERSION",
+ self.bot.config.get("ctcp-version", default))
+
+ @utils.hook("received.ctcp.request.source")
+ def ctcp_source(self, event):
+ event["user"].send_ctcp_response("SOURCE",
+ self.bot.config.get("ctcp-source", IRCBot.SOURCE))
+
+ @utils.hook("received.ctcp.request.ping")
+ def ctcp_ping(self, event):
+ event["user"].send_ctcp_response("PING", event["message"])
+
+ @utils.hook("received.ctcp.request.time")
+ def ctcp_time(self, event):
+ event["user"].send_ctcp_response("TIME",
+ datetime.datetime.now().strftime("%c"))