aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrygve Aaberge <trygveaa@gmail.com>2018-09-04 20:20:58 +0200
committerTrygve Aaberge <trygveaa@gmail.com>2018-09-04 20:48:27 +0200
commitd48709847c25da4c50133ba23639bc15a5c72180 (patch)
tree2ccb9d48357e564e1f06dd4c492d5e3f430d0061
parent90cea03220b1607a8c05d93e79bd5cf99fc3c2e7 (diff)
downloadwee-slack-d48709847c25da4c50133ba23639bc15a5c72180.tar.gz
Set tag slack_muted_channel on muted channel messages
The tag slack_muted_channel is set on all messages in channels which are muted, and all messages in threads which belong to muted channels. If you use a plugin for push notifications and don't want notifications from muted channels, you can set it to ignore messages with this tag. This would give you the same behavior as with the official client. Note that this just applies to messages shown in the hotlist, i.e. highlights (depending on your config) and thread messages, as messages hidden from the hotlist are probably already ignored by the notification plugin.
-rw-r--r--wee_slack.py20
1 files changed, 13 insertions, 7 deletions
diff --git a/wee_slack.py b/wee_slack.py
index b2c8d72..5cf8990 100644
--- a/wee_slack.py
+++ b/wee_slack.py
@@ -1928,6 +1928,10 @@ class SlackThreadChannel(object):
# def set_name(self, slack_name):
# self.name = "#" + slack_name
+ @property
+ def muted(self):
+ return self.parent_message.channel.muted
+
def formatted_name(self, style="default", **kwargs):
hash_or_ts = self.parent_message.hash or self.parent_message.ts
styles = {
@@ -1959,7 +1963,7 @@ class SlackThreadChannel(object):
# tags = tag("dm")
# self.new_messages = True
# else:
- tags = tag("default")
+ tags = tag("default", thread=True, muted=self.muted)
# self.new_messages = True
w.prnt_date_tags(self.channel_buffer, ts.major, tags, data)
modify_print_time(self.channel_buffer, ts.minorstr(), ts.major)
@@ -3137,7 +3141,7 @@ def format_nick(nick, previous_nick=None):
return nick_prefix_color + nick_prefix + w.color("reset") + nick + nick_suffix_color + nick_suffix + w.color("reset")
-def tag(tagset, user=None, muted=False):
+def tag(tagset, user=None, thread=False, muted=False):
tagsets = {
# messages in the team/server buffer, e.g. "new channel created"
"team_info": {"no_highlight", "log3"},
@@ -3157,11 +3161,13 @@ def tag(tagset, user=None, muted=False):
nick_tag = {"nick_{}".format(user or "unknown").replace(" ", "_")}
slack_tag = {"slack_{}".format(tagset)}
tags = nick_tag | slack_tag | tagsets[tagset]
- if muted and config.muted_channels_activity != "all":
- tags -= {"notify_highlight", "notify_message", "notify_private"}
- tags.add("notify_none")
- if config.muted_channels_activity == "none":
- tags.add("no_highlight")
+ if muted:
+ tags.add("slack_muted_channel")
+ if not thread and config.muted_channels_activity != "all":
+ tags -= {"notify_highlight", "notify_message", "notify_private"}
+ tags.add("notify_none")
+ if config.muted_channels_activity == "none":
+ tags.add("no_highlight")
return ",".join(tags)
###### New/converted command_ commands