aboutsummaryrefslogtreecommitdiffstats
path: root/slack/slack_workspace.py
diff options
context:
space:
mode:
authorTrygve Aaberge <trygveaa@gmail.com>2023-10-21 23:31:00 +0200
committerTrygve Aaberge <trygveaa@gmail.com>2024-02-18 11:32:54 +0100
commitcfbe97d9a476eb543498ad13547a023ace23dd17 (patch)
treee5ae9178adf185897fb82a78522182cecda32a05 /slack/slack_workspace.py
parent9e99c1d54eec2ab49a1a6a749bec1def8d182927 (diff)
downloadwee-slack-cfbe97d9a476eb543498ad13547a023ace23dd17.tar.gz
Make conversations.name not async
This means a lot of methods don't have to be async. It's especially useful for the next commit adding conversations completions.
Diffstat (limited to 'slack/slack_workspace.py')
-rw-r--r--slack/slack_workspace.py25
1 files changed, 13 insertions, 12 deletions
diff --git a/slack/slack_workspace.py b/slack/slack_workspace.py
index fc3f65a..350a3ca 100644
--- a/slack/slack_workspace.py
+++ b/slack/slack_workspace.py
@@ -88,7 +88,7 @@ class SlackItem(
item = items_info.get(item_id)
if item is None:
raise SlackError(self.workspace, "item_not_found")
- return self._create_item_from_info(item)
+ return await self._create_item_from_info(item)
else:
return await self._item_class.create(self.workspace, item_id)
@@ -99,7 +99,7 @@ class SlackItem(
raise NotImplementedError()
@abstractmethod
- def _create_item_from_info(self, item_info: SlackItemInfo) -> SlackItemClass:
+ async def _create_item_from_info(self, item_info: SlackItemInfo) -> SlackItemClass:
raise NotImplementedError()
@@ -120,10 +120,10 @@ class SlackConversations(SlackItem[SlackConversation, SlackConversationsInfo]):
response["channel"]["id"]: response["channel"] for response in responses
}
- def _create_item_from_info(
+ async def _create_item_from_info(
self, item_info: SlackConversationsInfo
) -> SlackConversation:
- return self._item_class(self.workspace, item_info)
+ return await self._item_class.create_from_info(self.workspace, item_info)
class SlackUsers(SlackItem[SlackUser, SlackUserInfo]):
@@ -136,7 +136,7 @@ class SlackUsers(SlackItem[SlackUser, SlackUserInfo]):
response = await self.workspace.api.fetch_users_info(item_ids)
return {info["id"]: info for info in response["users"]}
- def _create_item_from_info(self, item_info: SlackUserInfo) -> SlackUser:
+ async def _create_item_from_info(self, item_info: SlackUserInfo) -> SlackUser:
return self._item_class(self.workspace, item_info)
@@ -150,7 +150,7 @@ class SlackBots(SlackItem[SlackBot, SlackBotInfo]):
response = await self.workspace.api.fetch_bots_info(item_ids)
return {info["id"]: info for info in response["bots"]}
- def _create_item_from_info(self, item_info: SlackBotInfo) -> SlackBot:
+ async def _create_item_from_info(self, item_info: SlackBotInfo) -> SlackBot:
return self._item_class(self.workspace, item_info)
@@ -166,7 +166,9 @@ class SlackUsergroups(SlackItem[SlackUsergroup, SlackUsergroupInfo]):
)
return {info["id"]: info for info in response["results"]}
- def _create_item_from_info(self, item_info: SlackUsergroupInfo) -> SlackUsergroup:
+ async def _create_item_from_info(
+ self, item_info: SlackUsergroupInfo
+ ) -> SlackUsergroup:
return self._item_class(self.workspace, item_info)
@@ -283,8 +285,7 @@ class SlackWorkspace:
if not history["messages"]:
return
- sort_key = await conversation.sort_key()
- return sort_key, conversation
+ return conversation.sort_key(), conversation
async def _connect_ws(self, url: str):
proxy = Proxy()
@@ -348,14 +349,14 @@ class SlackWorkspace:
for channel_id in changed_channels:
channel = self.open_conversations.get(channel_id)
if channel:
- await channel.update_buffer_props()
+ channel.update_buffer_props()
return
elif data["type"] == "user_status_changed":
user = await self.users[data["user"]["id"]]
user.update_info_json(data["user"])
for conversation in self.open_conversations.values():
if conversation.im_user_id == user.id:
- await conversation.update_buffer_props()
+ conversation.update_buffer_props()
return
elif data["type"] == "channel_joined" or data["type"] == "group_joined":
channel_id = data["channel"]["id"]
@@ -413,7 +414,7 @@ class SlackWorkspace:
await channel.change_message(data)
else:
if "subtype" in data and data["subtype"] == "channel_topic":
- await channel.set_topic(data["topic"])
+ channel.set_topic(data["topic"])
message = SlackMessage(channel, data)
await channel.add_new_message(message)