diff options
author | Trygve Aaberge <trygveaa@gmail.com> | 2024-04-18 22:01:59 +0200 |
---|---|---|
committer | Trygve Aaberge <trygveaa@gmail.com> | 2024-04-18 22:04:38 +0200 |
commit | 4415a318372954a171024c9fd15a429addccc5f8 (patch) | |
tree | 6328b535dc8aa9fc0bd0372642b1bc43173a470d | |
parent | 57da2d338a23cc0da4230896c9c69fa8494d757a (diff) | |
download | wee-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.
-rw-r--r-- | wee_slack.py | 20 |
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 |