aboutsummaryrefslogtreecommitdiffstats
path: root/slack/commands.py
diff options
context:
space:
mode:
authorTrygve Aaberge <trygveaa@gmail.com>2023-10-21 23:33:34 +0200
committerTrygve Aaberge <trygveaa@gmail.com>2024-02-18 11:32:54 +0100
commit90e78bb00e9f4457f5cd5bb0f181a9b6fad779df (patch)
tree09e0f39375d405d328dcdb0f1af0eed17087ad2f /slack/commands.py
parentcfbe97d9a476eb543498ad13547a023ace23dd17 (diff)
downloadwee-slack-90e78bb00e9f4457f5cd5bb0f181a9b6fad779df.tar.gz
Add completion for conversation names
Diffstat (limited to 'slack/commands.py')
-rw-r--r--slack/commands.py25
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(