aboutsummaryrefslogtreecommitdiffstats
path: root/wee_slack.py
diff options
context:
space:
mode:
authorTrygve Aaberge <trygveaa@gmail.com>2020-06-18 00:07:58 +0200
committerTrygve Aaberge <trygveaa@gmail.com>2020-06-20 23:55:07 +0200
commit8a733b744494dd06b40790036f778d36c9984f8e (patch)
treeaa95598d3ea26aa510ad0927cd5d1f76007d3af1 /wee_slack.py
parenta7ed1a46169569635f54ff95187568d07115d5ec (diff)
downloadwee-slack-8a733b744494dd06b40790036f778d36c9984f8e.tar.gz
Don't print short name prefix if set with /buffer set
When short name is set with /buffer set short_name, instead of changing it to include the prefix, keep it as is. I think this is what would be expected, and it also allows the user to choose which prefix to show. When showing typing notices, replace the first character with the typing character.
Diffstat (limited to 'wee_slack.py')
-rw-r--r--wee_slack.py45
1 files changed, 37 insertions, 8 deletions
diff --git a/wee_slack.py b/wee_slack.py
index e46331f..0cdf29e 100644
--- a/wee_slack.py
+++ b/wee_slack.py
@@ -839,6 +839,7 @@ def buffer_renamed_cb(data, signal, current_buffer):
channel.label_full_drop_prefix = True
channel.label_full = w.buffer_get_string(channel.channel_buffer, "name")
else:
+ channel.label_short_drop_prefix = True
channel.label_short = w.buffer_get_string(channel.channel_buffer, "short_name")
channel.rename()
@@ -1542,6 +1543,7 @@ class SlackChannelCommon(object):
def __init__(self):
self.label_full_drop_prefix = False
self.label_full = None
+ self.label_short_drop_prefix = False
self.label_short = None
self.buffer_rename_in_progress = False
@@ -1818,7 +1820,8 @@ class SlackChannel(SlackChannelCommon):
w.buffer_set(self.channel_buffer, "hotlist", "1")
def formatted_name(self, style="default", typing=False, present=None):
- if style == "sidebar" and typing and config.channel_name_typing_indicator:
+ show_typing = typing and config.channel_name_typing_indicator
+ if style == "sidebar" and show_typing:
prepend = ">"
elif self.type == "group" or self.type == "private":
prepend = config.group_name_prefix
@@ -1832,7 +1835,12 @@ class SlackChannel(SlackChannelCommon):
if style == "sidebar":
sidebar_color = config.color_buflist_muted_channels if self.muted else ""
name = self.label_short or name
- return colorize_string(sidebar_color, prepend + name)
+ if self.label_short_drop_prefix:
+ if show_typing:
+ name = prepend + name[1:]
+ else:
+ name = prepend + name
+ return colorize_string(sidebar_color, name)
elif style == "long_default":
if self.label_full_drop_prefix:
return name
@@ -2304,9 +2312,11 @@ class SlackDMChannel(SlackChannel):
self.color_name = ""
def formatted_name(self, style="default", typing=False, present=True):
+ show_typing = typing and config.channel_name_typing_indicator
name = self.label_full or self.slack_name
if style == "sidebar":
- if typing and config.channel_name_typing_indicator:
+ name = self.label_short or name
+ if show_typing:
prepend = ">"
elif present and config.show_buflist_presence:
prepend = "+"
@@ -2314,7 +2324,12 @@ class SlackDMChannel(SlackChannel):
prepend = " "
else:
prepend = ""
- name = prepend + (self.label_short or name)
+
+ if self.label_short_drop_prefix:
+ if show_typing:
+ name = prepend + name[1:]
+ else:
+ name = prepend + name
if config.colorize_private_chats:
return colorize_string(self.color_name, name)
@@ -2398,13 +2413,22 @@ class SlackMPDMChannel(SlackChannel):
self.eventrouter.receive(s)
def formatted_name(self, style="default", typing=False, present=None):
+ show_typing = typing and config.channel_name_typing_indicator
name = self.label_full or self.slack_name
if style == "sidebar":
- if typing and config.channel_name_typing_indicator:
+ name = self.label_short or name
+ if show_typing:
prepend = ">"
else:
prepend = "@"
- return prepend + (self.label_short or name)
+
+ if self.label_short_drop_prefix:
+ if show_typing:
+ return prepend + name[1:]
+ else:
+ return name
+ else:
+ return prepend + name
elif style == "long_default":
if self.label_full_drop_prefix:
return name
@@ -2493,8 +2517,12 @@ class SlackThreadChannel(SlackChannelCommon):
def formatted_name(self, style="default"):
name = self.label_full or self.parent_message.hash
if style == "sidebar":
- indent = w.config_string(w.config_get("buflist.format.indent"))
- return "{}${}".format(indent, self.label_short or name)
+ name = self.label_short or name
+ if self.label_short_drop_prefix:
+ return name
+ else:
+ indent = w.config_string(w.config_get("buflist.format.indent"))
+ return "{}${}".format(indent, name)
elif style == "long_default":
if self.label_full_drop_prefix:
return name
@@ -5041,6 +5069,7 @@ def command_label(data, current_buffer, args):
channel.label_full_drop_prefix = False
channel.label_full = split_args[1] if split_args[1] != "-unset" else None
else:
+ channel.label_short_drop_prefix = False
channel.label_short = args if args != "-unset" else None
channel.rename()