diff options
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( |