From 985e4704a0465b2ab5d5c6b0805029c2844c2fa7 Mon Sep 17 00:00:00 2001 From: jesopo Date: Mon, 25 Nov 2019 12:15:43 +0000 Subject: switch !to to !tell, add !to as an alias of !tell --- modules/tell.py | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) create mode 100644 modules/tell.py (limited to 'modules/tell.py') diff --git a/modules/tell.py b/modules/tell.py new file mode 100644 index 00000000..93aaba0c --- /dev/null +++ b/modules/tell.py @@ -0,0 +1,42 @@ +#--depends-on commands + +from src import EventManager, ModuleManager, utils + +class Module(ModuleManager.BaseModule): + @utils.hook("received.message.channel", priority=EventManager.PRIORITY_HIGH) + def channel_message(self, event): + messages = event["channel"].get_user_setting(event["user"].get_id(), + "to", []) + for nickname, message, timestamp in messages: + timestamp_parsed = utils.datetime.iso8601_parse(timestamp) + timestamp_human = utils.datetime.datetime_human(timestamp_parsed) + event["channel"].send_message("%s: <%s> %s (at %s UTC)" % ( + event["user"].nickname, nickname, message, timestamp_human)) + if messages: + event["channel"].del_user_setting(event["user"].get_id(), "to") + + @utils.hook("received.command.to", alias_of="tell") + @utils.hook("received.command.tell") + @utils.kwarg("min_args", 2) + @utils.kwarg("channel_only", True) + @utils.kwarg("help", + "Relay a message to a user the next time they talk in this channel") + @utils.kwarg("usage", " ") + def tell(self, event): + target_name = event["args_split"][0] + if not event["server"].has_user_id(target_name): + raise utils.EventError("I've never seen %s before" % target_name) + + target_user = event["server"].get_user(event["args_split"][0]) + messages = event["target"].get_user_setting(target_user.get_id(), + "to", []) + + if len(messages) == 5: + raise utils.EventError("Users can only have 5 messages stored") + + messages.append([event["user"].nickname, + " ".join(event["args_split"][1:]), + utils.datetime.iso8601_format_now()]) + event["target"].set_user_setting(target_user.get_id(), + "to", messages) + event["stdout"].write("Message saved") -- cgit v1.3.1-10-gc9f91