diff options
author | Trygve Aaberge <trygveaa@gmail.com> | 2023-10-21 23:33:34 +0200 |
---|---|---|
committer | Trygve Aaberge <trygveaa@gmail.com> | 2024-02-18 11:32:54 +0100 |
commit | 90e78bb00e9f4457f5cd5bb0f181a9b6fad779df (patch) | |
tree | 09e0f39375d405d328dcdb0f1af0eed17087ad2f /slack/commands.py | |
parent | cfbe97d9a476eb543498ad13547a023ace23dd17 (diff) | |
download | wee-slack-90e78bb00e9f4457f5cd5bb0f181a9b6fad779df.tar.gz |
Add completion for conversation names
Diffstat (limited to 'slack/commands.py')
-rw-r--r-- | slack/commands.py | 25 |
1 files changed, 17 insertions, 8 deletions
diff --git a/slack/commands.py b/slack/commands.py index f9dcec2..beb35c8 100644 --- a/slack/commands.py +++ b/slack/commands.py @@ -438,13 +438,22 @@ def completion_slack_workspace_commands_cb( return weechat.WEECHAT_RC_OK -def completion_irc_channels_cb( +def completion_slack_channels_cb( data: str, completion_item: str, buffer: str, completion: str ) -> int: - if weechat.buffer_get_string(buffer, "full_name").startswith("core."): - weechat.completion_list_add( - completion, "#asd", 0, weechat.WEECHAT_LIST_POS_SORT - ) + slack_buffer = shared.buffers.get(buffer) + if slack_buffer is None: + return weechat.WEECHAT_RC_OK + + conversations = slack_buffer.workspace.open_conversations.values() + for conversation in conversations: + if conversation.buffer_type == "channel": + weechat.completion_list_add( + completion, + conversation.name_with_prefix("short_name_without_padding"), + 0, + weechat.WEECHAT_LIST_POS_SORT, + ) return weechat.WEECHAT_RC_OK @@ -611,9 +620,9 @@ def register_commands(): "", ) weechat.hook_completion( - "irc_channels", - "channels on all Slack workspaces", - get_callback_name(completion_irc_channels_cb), + "slack_channels", + "conversations in the current Slack workspace", + get_callback_name(completion_slack_channels_cb), "", ) weechat.hook_completion( |