aboutsummaryrefslogtreecommitdiffstats
path: root/wee_slack.py
diff options
context:
space:
mode:
authorTrygve Aaberge <trygveaa@gmail.com>2024-04-18 22:01:59 +0200
committerTrygve Aaberge <trygveaa@gmail.com>2024-04-18 22:04:38 +0200
commit4415a318372954a171024c9fd15a429addccc5f8 (patch)
tree6328b535dc8aa9fc0bd0372642b1bc43173a470d /wee_slack.py
parent57da2d338a23cc0da4230896c9c69fa8494d757a (diff)
downloadwee-slack-4415a318372954a171024c9fd15a429addccc5f8.tar.gz
v2: Fix IM title not being updated on user status change
After we started fetching IM info in check_should_open, updating the IM title when the user changes their status stopped working because when info is fetched the members field is updated and the info included your own user in the members, while the update status code expected only the other user to be present in members. To fix this, make sure we always include both users in members and check for that.
Diffstat (limited to 'wee_slack.py')
-rw-r--r--wee_slack.py20
1 files changed, 14 insertions, 6 deletions
diff --git a/wee_slack.py b/wee_slack.py
index 420c4f4..3c654cd 100644
--- a/wee_slack.py
+++ b/wee_slack.py
@@ -2887,12 +2887,12 @@ class SlackDMChannel(SlackChannel):
has some important differences.
"""
- def __init__(self, eventrouter, users, **kwargs):
+ def __init__(self, eventrouter, users, myidentifier, **kwargs):
dmuser = kwargs["user"]
kwargs["name"] = users[dmuser].name if dmuser in users else dmuser
super(SlackDMChannel, self).__init__(eventrouter, "im", **kwargs)
self.update_color()
- self.members = {self.user}
+ self.members = {myidentifier, self.user}
if dmuser in users:
self.set_topic(create_user_status_string(users[dmuser].profile))
@@ -3729,7 +3729,9 @@ def handle_rtmstart(login_data, eventrouter, team, channel, metadata):
channels[item["id"]] = SlackChannel(eventrouter, **item)
for item in login_data["ims"]:
- channels[item["id"]] = SlackDMChannel(eventrouter, users, **item)
+ channels[item["id"]] = SlackDMChannel(
+ eventrouter, users, login_data["self"]["id"], **item
+ )
for item in login_data["mpims"]:
channels[item["id"]] = SlackMPDMChannel(
@@ -4123,7 +4125,9 @@ def process_user_change(message_json, eventrouter, team, channel, metadata):
profile = message_json["user"]["profile"]
if user:
user.update_status(profile.get("status_emoji"), profile.get("status_text"))
- dmchannel = team.find_channel_by_members({user.identifier}, channel_type="im")
+ dmchannel = team.find_channel_by_members(
+ {team.myidentifier, user.identifier}, channel_type="im"
+ )
if dmchannel:
dmchannel.set_topic(create_user_status_string(profile))
@@ -4384,7 +4388,9 @@ def process_channel_rename(message_json, eventrouter, team, channel, metadata):
def process_im_created(message_json, eventrouter, team, channel, metadata):
item = message_json["channel"]
- channel = SlackDMChannel(eventrouter, team=team, users=team.users, **item)
+ channel = SlackDMChannel(
+ eventrouter, team.users, team.myidentifier, team=team, **item
+ )
team.channels[item["id"]] = channel
team.buffer_prnt("IM channel created: {}".format(channel.name))
@@ -7259,7 +7265,9 @@ def initiate_connection(token):
def create_channel_from_info(eventrouter, channel_info, team, myidentifier, users):
if channel_info.get("is_im"):
- return SlackDMChannel(eventrouter, users, team=team, **channel_info)
+ return SlackDMChannel(
+ eventrouter, users, myidentifier, team=team, **channel_info
+ )
elif channel_info.get("is_mpim"):
return SlackMPDMChannel(
eventrouter, users, myidentifier, team=team, **channel_info