aboutsummaryrefslogtreecommitdiffstats
path: root/slack/slack_workspace.py
diff options
context:
space:
mode:
authorTrygve Aaberge <trygveaa@gmail.com>2023-10-19 23:45:45 +0200
committerTrygve Aaberge <trygveaa@gmail.com>2024-02-18 11:32:54 +0100
commitce7126e9efecb63055283a2c5b6fe474f423f3ed (patch)
tree020daa4dde7c602f670c69998744abba28fdda8a /slack/slack_workspace.py
parent84c0c20bd5bf04b89384691d90c9ef7f2a41ca0c (diff)
downloadwee-slack-ce7126e9efecb63055283a2c5b6fe474f423f3ed.tar.gz
Support open/close/joined/left conversation events
Diffstat (limited to 'slack/slack_workspace.py')
-rw-r--r--slack/slack_workspace.py24
1 files changed, 22 insertions, 2 deletions
diff --git a/slack/slack_workspace.py b/slack/slack_workspace.py
index 9aa19b1..fc3f65a 100644
--- a/slack/slack_workspace.py
+++ b/slack/slack_workspace.py
@@ -357,6 +357,8 @@ class SlackWorkspace:
if conversation.im_user_id == user.id:
await conversation.update_buffer_props()
return
+ elif data["type"] == "channel_joined" or data["type"] == "group_joined":
+ channel_id = data["channel"]["id"]
elif data["type"] == "reaction_added" or data["type"] == "reaction_removed":
channel_id = data["item"]["channel"]
elif (
@@ -379,9 +381,19 @@ class SlackWorkspace:
channel = self.open_conversations.get(channel_id)
if channel is None:
- if data["type"] == "message":
+ if (
+ data["type"] == "message"
+ or data["type"] == "im_open"
+ or data["type"] == "mpim_open"
+ or data["type"] == "group_open"
+ or data["type"] == "channel_joined"
+ or data["type"] == "group_joined"
+ ):
channel = await self.conversations[channel_id]
- if channel.type in ["im", "mpim"]:
+ if channel.type in ["im", "mpim"] or data["type"] in [
+ "channel_joined",
+ "group_joined",
+ ]:
await channel.open_buffer()
await channel.set_hotlist()
else:
@@ -405,6 +417,14 @@ class SlackWorkspace:
message = SlackMessage(channel, data)
await channel.add_new_message(message)
+ elif (
+ data["type"] == "im_close"
+ or data["type"] == "mpim_close"
+ or data["type"] == "group_close"
+ or data["type"] == "channel_left"
+ or data["type"] == "group_left"
+ ):
+ weechat.buffer_close(channel.buffer_pointer)
elif data["type"] == "reaction_added" and data["item"]["type"] == "message":
await channel.reaction_add(
SlackTs(data["item"]["ts"]), data["reaction"], data["user"]