diff options
Diffstat (limited to 'slack')
-rw-r--r-- | slack/config.py | 12 | ||||
-rw-r--r-- | slack/slack_user.py | 12 |
2 files changed, 20 insertions, 4 deletions
diff --git a/slack/config.py b/slack/config.py index a1ab999..d4a36bd 100644 --- a/slack/config.py +++ b/slack/config.py @@ -38,8 +38,8 @@ class SlackConfigSectionColor: self.reaction_suffix = WeeChatOption( self._section, "reaction_suffix", - "text color for the [:wave:(@user)] suffix on messages that have " - "reactions attached to them.", + "text color for the [:wave:(@user)] suffix on messages that have" + " reactions attached to them.", WeeChatColor("darkgray"), ) @@ -79,6 +79,14 @@ class SlackConfigSectionWorkspace: 30, ) + self.use_real_names = self._create_option( + "use_real_names", + "use real names as the nicks for all users. When this is" + " false, display names will be used if set, with a fallback" + " to the real name if display name is not set", + False, + ) + def _create_option( self, name: str, diff --git a/slack/slack_user.py b/slack/slack_user.py index 8fcd445..e5d066b 100644 --- a/slack/slack_user.py +++ b/slack/slack_user.py @@ -16,8 +16,9 @@ class SlackUser: return self.workspace.api @property - def nick(self): - return self._info["name"] + def nick(self) -> str: + nick = self._nick_from_profile() + return nick.replace(" ", "") async def init(self): info = await self._api.fetch_users_info(self) @@ -25,3 +26,10 @@ class SlackUser: # TODO: Handle error raise Exception("Failed fetching user info") self._info = info["user"] + + def _nick_from_profile(self) -> str: + if self.workspace.config.use_real_names.value: + return self._info["real_name"] + + display_name = self._info["profile"].get("display_name") + return display_name or self._info["real_name"] |