diff options
author | Trygve Aaberge <trygveaa@gmail.com> | 2017-10-31 20:38:39 +0100 |
---|---|---|
committer | Trygve Aaberge <trygveaa@gmail.com> | 2017-11-07 17:14:19 +0100 |
commit | 986b294eb0ae6ec5149accbc39d1de41bb5d4bb5 (patch) | |
tree | b3ae73d054953cf175e4abcdb7ca2388febf0f3a | |
parent | 3eff1de49d3aba1d991b7b6953e6b55a24fdecd9 (diff) | |
download | wee-slack-986b294eb0ae6ec5149accbc39d1de41bb5d4bb5.tar.gz |
Allow sending special messages by prefixing them with a slash or a space
This allows you to send messages starting with / or messages like s/a/b/
and +:test: as normal text messages instead of performing the action
they normally would. This is done by prefixing the message with a slash
(/) or a space ( ), and then the prefix character is removed from the
resulting message.
Allowing / as a prefix, so you can write e.g. //slack is the normal way
to send messages starting with / in weechat. This will work for all
messages starting with a slash, but won't work for e.g. /+:test:, as
that is interpreted as a command. Using space as a prefix is the way
Slack does it. This will work for all messages.
-rw-r--r-- | README.md | 6 | ||||
-rw-r--r-- | wee_slack.py | 4 |
2 files changed, 9 insertions, 1 deletions
@@ -186,6 +186,12 @@ Run a Slack slash command. Simply prepend `/slack slash` to what you'd type in t /slack slash /desiredcommand arg1 arg2 arg3 ``` +To send a command as a normal message instead of performing the action, prefix it with a slash or a space, like so: +``` +//slack + s/a/b/ +``` + #### Threads Start a new thread on the most recent message The number indicates which message in the buffer to reply to, in reverse time order: diff --git a/wee_slack.py b/wee_slack.py index c354bf5..2cdbb8f 100644 --- a/wee_slack.py +++ b/wee_slack.py @@ -644,7 +644,7 @@ def buffer_input_callback(signal, buffer_ptr, data): if not channel: return w.WEECHAT_RC_ERROR - reaction = re.match("^\s*(\d*)(\+|-):(.*):\s*$", data) + reaction = re.match("^(\d*)(\+|-):(.*):\s*$", data) substitute = re.match("^(\d*)s/", data) if reaction: if reaction.group(2) == "+": @@ -664,6 +664,8 @@ def buffer_input_callback(signal, buffer_ptr, data): old = old.replace(r'\/', '/') channel.edit_nth_previous_message(msgno, old, new, flags) else: + if data.startswith(('//', ' ')): + data = data[1:] channel.send_message(data) # this is probably wrong channel.mark_read(update_remote=True, force=True) return w.WEECHAT_RC_OK |