wee-slack / wee-slack

A WeeChat script for Slack.com. Supports threads and reactions, synchronizes read markers, provides typing notification, etc..
MIT License
2.53k stars 226 forks source link

Reaction in cursor mode #914

Open tardypad opened 11 months ago

tardypad commented 11 months ago

I would find it pretty useful to be able to react on a post while navigating the list in cursor mode. For example, to send a :wave: or mark a post with :white_check_mark: via a single key press while going up or down.

I was using this myself previously on a WeeChat plugin for Mattermost (see wee-most).

The only thing needed would be a slack command like /slack react <message_id> <reaction>. (The opposite /slack unreact <message_id> <reaction> would be convenient to have too).

Then one would be able to have a cursor mode binding like /input delete_line; /input insert /slack react; hsignal:slack_cursor_message; /input insert :wave:; /input return to send a :wave: for example

Let me know what you think, I'm happy to help with a PR when I can

trygveaa commented 11 months ago

Even though there isn't a slash command for it, you can do it with the same special string you type to normally send reactions. So

/input delete_line; hsignal:slack_cursor_message; /input insert +:wave:; /input return

Use - instead of + in front of the emoji to remove the reaction instead of adding it.

tardypad commented 11 months ago

Ah nice! I initially couldn't see it in the documentation and I was expecting I could only use the relative nth last message as prefix to the reaction. But reading again, more carefully, I see it now. Thanks

tardypad commented 11 months ago

I just found an annoyance though. Using hsignal:slack_cursor_message stops the cursor mode, which defeats the use case of quickly adding reactions while navigating the posts.

I remember that for wee-most, I added the signal so that it would insert the post id but without stopping the cursor mode https://git.sr.ht/~tardypad/wee-most/tree/master/item/wee_most.py#L1630 (The users could always add a /cursor stop themselves in the binding where needed)

I guess that would be a breaking change to do that now but maybe another signal can be added?