diff options
author | Trygve Aaberge <trygveaa@gmail.com> | 2023-01-19 23:05:25 +0100 |
---|---|---|
committer | Trygve Aaberge <trygveaa@gmail.com> | 2024-02-18 11:32:53 +0100 |
commit | d2bb9263f0062275b92024ccdba68d5439521b5d (patch) | |
tree | dd9b46727d5a3fc8e1b1c232419504772305e928 /slack/slack_conversation.py | |
parent | d6b4f505d53e69ecb39d518a89d8d0013e22ad51 (diff) | |
download | wee-slack-d2bb9263f0062275b92024ccdba68d5439521b5d.tar.gz |
Add support for completing nicks
This uses Slacks edgeapi which only works for session tokens, but has
the benefit of being able to complete nicks without all users being
loaded. So need to add some completion for the loaded users for when
using OAuth tokens as well.
Diffstat (limited to 'slack/slack_conversation.py')
-rw-r--r-- | slack/slack_conversation.py | 16 |
1 files changed, 15 insertions, 1 deletions
diff --git a/slack/slack_conversation.py b/slack/slack_conversation.py index 8fb1c0e..647d0fe 100644 --- a/slack/slack_conversation.py +++ b/slack/slack_conversation.py @@ -2,7 +2,7 @@ from __future__ import annotations import time from contextlib import contextmanager -from typing import TYPE_CHECKING, Optional +from typing import TYPE_CHECKING, List, Optional import weechat @@ -37,6 +37,12 @@ class SlackConversation: self.history_filled = False self.history_pending = False + self.is_completing = False + self.completion_context = 0 + self.completion_query: Optional[str] = None + self.completion_values: List[str] = [] + self.completion_index = 0 + @property def _api(self) -> SlackApi: return self.workspace.api @@ -51,6 +57,14 @@ class SlackConversation: self.is_loading = False weechat.bar_item_update("input_text") + @contextmanager + def completing(self): + self.is_completing = True + try: + yield + finally: + self.is_completing = False + async def init(self): with self.loading(): info = await self._api.fetch_conversations_info(self) |