diff options
| author | 2020-01-30 14:59:48 +0000 | |
|---|---|---|
| committer | 2020-01-30 15:00:34 +0000 | |
| commit | 24e84af4d2f1d17ba6cfc574ad440cea76093b7a (patch) | |
| tree | a2258adc14952a78f174227a6589aab26f2e8c4b /modules | |
| parent | add utils.datetime.seconds_since(); compare utcnow to datetime (diff) | |
| signature | ||
add !msearch, to search for patterns in recent messages
Diffstat (limited to 'modules')
| -rw-r--r-- | modules/messages.py | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/modules/messages.py b/modules/messages.py new file mode 100644 index 00000000..d55d8a62 --- /dev/null +++ b/modules/messages.py @@ -0,0 +1,27 @@ +import re +from src import ModuleManager, utils + +class Module(ModuleManager.BaseModule): + @utils.hook("received.command.msearch") + @utils.spec("!-channelonly !<pattern>string") + def msearch(self, event): + print(event["spec"]) + pattern = re.compile(event["spec"][0], re.I) + message_list = list(event["target"].buffer.find_all(pattern)) + message_count = len(message_list) + + if message_list: + messages = [] + for message in message_list: + seconds = utils.datetime.seconds_since(message.line.timestamp) + messages.append("%s ago %s" % ( + utils.datetime.to_pretty_time(seconds), + message.line.format())) + + plural = "message" if message_count == 0 else "messages" + event["stdout"].write("%s: found %d/%d messages: %s" + % (event["user"].nickname, message_count, + len(event["target"].buffer), "\n".join(messages))) + else: + event["stderr"].write("%s: no messages found" + % event["user"].nickname) |
