From 09deb69bc78fb5cfd3d9ff2455a5632ed71dd14b Mon Sep 17 00:00:00 2001 From: taehoon Date: Fri, 13 Sep 2019 15:34:17 -0400 Subject: [PATCH 1/5] do not collapse muted user's posts on muted user's profile page --- src/components/conversation/conversation.js | 3 ++- src/components/conversation/conversation.vue | 1 + src/components/status/status.js | 5 +++-- src/components/timeline/timeline.js | 3 ++- src/components/timeline/timeline.vue | 2 ++ src/components/user_profile/user_profile.vue | 1 + 6 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js index 10dd8eb0..44dc49bc 100644 --- a/src/components/conversation/conversation.js +++ b/src/components/conversation/conversation.js @@ -42,7 +42,8 @@ const conversation = { 'statusId', 'collapsable', 'isPage', - 'pinnedStatusIdsObject' + 'pinnedStatusIdsObject', + 'forceUnmute' ], created () { if (this.isPage) { diff --git a/src/components/conversation/conversation.vue b/src/components/conversation/conversation.vue index f184c071..ba138189 100644 --- a/src/components/conversation/conversation.vue +++ b/src/components/conversation/conversation.vue @@ -26,6 +26,7 @@ :in-conversation="isExpanded" :highlight="getHighlight()" :replies="getReplies(status.id)" + :force-unmute="forceUnmute" class="status-fadein panel-body" @goto="setHighlight" @toggleExpanded="toggleExpanded" diff --git a/src/components/status/status.js b/src/components/status/status.js index 502d9583..474a0480 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -29,7 +29,8 @@ const Status = { 'isPreview', 'noHeading', 'inlineExpanded', - 'showPinned' + 'showPinned', + 'forceUnmute' ], data () { return { @@ -117,7 +118,7 @@ const Status = { return hits }, - muted () { return !this.unmuted && (this.status.user.muted || this.muteWordHits.length > 0) }, + muted () { return !this.forceUnmute && !this.unmuted && (this.status.user.muted || this.muteWordHits.length > 0) }, hideFilteredStatuses () { return typeof this.$store.state.config.hideFilteredStatuses === 'undefined' ? this.$store.state.instance.hideFilteredStatuses diff --git a/src/components/timeline/timeline.js b/src/components/timeline/timeline.js index 8df48f7f..3d5f9de8 100644 --- a/src/components/timeline/timeline.js +++ b/src/components/timeline/timeline.js @@ -25,7 +25,8 @@ const Timeline = { 'tag', 'embedded', 'count', - 'pinnedStatusIds' + 'pinnedStatusIds', + 'forceUnmute' ], data () { return { diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue index ba66e6da..b89f505a 100644 --- a/src/components/timeline/timeline.vue +++ b/src/components/timeline/timeline.vue @@ -36,6 +36,7 @@ :status-id="statusId" :collapsable="true" :pinned-status-ids-object="pinnedStatusIdsObject" + :force-unmute="forceUnmute" /> diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue index 42516916..c380d2dc 100644 --- a/src/components/user_profile/user_profile.vue +++ b/src/components/user_profile/user_profile.vue @@ -26,6 +26,7 @@ timeline-name="user" :user-id="userId" :pinned-status-ids="user.pinnedStatusIds" + :force-unmute="true" />
Date: Fri, 13 Sep 2019 16:17:51 -0400 Subject: [PATCH 2/5] do not collapse muted user's posts on muted user's media timeline --- src/components/user_profile/user_profile.vue | 1 + 1 file changed, 1 insertion(+) diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue index c380d2dc..f463eea5 100644 --- a/src/components/user_profile/user_profile.vue +++ b/src/components/user_profile/user_profile.vue @@ -70,6 +70,7 @@ timeline-name="media" :timeline="media" :user-id="userId" + :force-unmute="true" /> Date: Fri, 13 Sep 2019 16:55:17 -0400 Subject: [PATCH 3/5] do not change word based muting logic --- src/components/conversation/conversation.js | 2 +- src/components/conversation/conversation.vue | 2 +- src/components/status/status.js | 4 ++-- src/components/timeline/timeline.js | 2 +- src/components/timeline/timeline.vue | 4 ++-- src/components/user_profile/user_profile.vue | 5 +++-- 6 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/components/conversation/conversation.js b/src/components/conversation/conversation.js index 44dc49bc..72ee9c39 100644 --- a/src/components/conversation/conversation.js +++ b/src/components/conversation/conversation.js @@ -43,7 +43,7 @@ const conversation = { 'collapsable', 'isPage', 'pinnedStatusIdsObject', - 'forceUnmute' + 'inProfile' ], created () { if (this.isPage) { diff --git a/src/components/conversation/conversation.vue b/src/components/conversation/conversation.vue index ba138189..0f1de55f 100644 --- a/src/components/conversation/conversation.vue +++ b/src/components/conversation/conversation.vue @@ -26,7 +26,7 @@ :in-conversation="isExpanded" :highlight="getHighlight()" :replies="getReplies(status.id)" - :force-unmute="forceUnmute" + :in-profile="inProfile" class="status-fadein panel-body" @goto="setHighlight" @toggleExpanded="toggleExpanded" diff --git a/src/components/status/status.js b/src/components/status/status.js index 474a0480..e8966f47 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -30,7 +30,7 @@ const Status = { 'noHeading', 'inlineExpanded', 'showPinned', - 'forceUnmute' + 'inProfile' ], data () { return { @@ -118,7 +118,7 @@ const Status = { return hits }, - muted () { return !this.forceUnmute && !this.unmuted && (this.status.user.muted || this.muteWordHits.length > 0) }, + muted () { return !this.unmuted && ((!this.inProfile && this.status.user.muted) || this.muteWordHits.length > 0) }, hideFilteredStatuses () { return typeof this.$store.state.config.hideFilteredStatuses === 'undefined' ? this.$store.state.instance.hideFilteredStatuses diff --git a/src/components/timeline/timeline.js b/src/components/timeline/timeline.js index 3d5f9de8..0594576c 100644 --- a/src/components/timeline/timeline.js +++ b/src/components/timeline/timeline.js @@ -26,7 +26,7 @@ const Timeline = { 'embedded', 'count', 'pinnedStatusIds', - 'forceUnmute' + 'inProfile' ], data () { return { diff --git a/src/components/timeline/timeline.vue b/src/components/timeline/timeline.vue index b89f505a..f1d3903a 100644 --- a/src/components/timeline/timeline.vue +++ b/src/components/timeline/timeline.vue @@ -36,7 +36,7 @@ :status-id="statusId" :collapsable="true" :pinned-status-ids-object="pinnedStatusIdsObject" - :force-unmute="forceUnmute" + :in-profile="inProfile" />
diff --git a/src/components/user_profile/user_profile.vue b/src/components/user_profile/user_profile.vue index f463eea5..14082e83 100644 --- a/src/components/user_profile/user_profile.vue +++ b/src/components/user_profile/user_profile.vue @@ -26,7 +26,7 @@ timeline-name="user" :user-id="userId" :pinned-status-ids="user.pinnedStatusIds" - :force-unmute="true" + :in-profile="true" />
From 6a3f2832565392526c648c070a2e1275c37f83ea Mon Sep 17 00:00:00 2001 From: taehoon Date: Fri, 13 Sep 2019 22:59:24 -0400 Subject: [PATCH 4/5] detect thread-muted posts --- src/components/status/status.js | 2 +- src/services/entity_normalizer/entity_normalizer.service.js | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/src/components/status/status.js b/src/components/status/status.js index e8966f47..1c38b0f1 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -118,7 +118,7 @@ const Status = { return hits }, - muted () { return !this.unmuted && ((!this.inProfile && this.status.user.muted) || this.muteWordHits.length > 0) }, + muted () { return !this.unmuted && ((!this.inProfile && this.status.user.muted) || this.status.thread_muted || this.muteWordHits.length > 0) }, hideFilteredStatuses () { return typeof this.$store.state.config.hideFilteredStatuses === 'undefined' ? this.$store.state.instance.hideFilteredStatuses diff --git a/src/services/entity_normalizer/entity_normalizer.service.js b/src/services/entity_normalizer/entity_normalizer.service.js index 6cc1851d..7438cd90 100644 --- a/src/services/entity_normalizer/entity_normalizer.service.js +++ b/src/services/entity_normalizer/entity_normalizer.service.js @@ -224,6 +224,7 @@ export const parseStatus = (data) => { output.statusnet_conversation_id = data.pleroma.conversation_id output.is_local = pleroma.local output.in_reply_to_screen_name = data.pleroma.in_reply_to_account_acct + output.thread_muted = pleroma.thread_muted } else { output.text = data.content output.summary = data.spoiler_text From baebf08d20eed14d06f9253e4cc939891955f8cb Mon Sep 17 00:00:00 2001 From: taehoon Date: Fri, 13 Sep 2019 22:59:45 -0400 Subject: [PATCH 5/5] do not collapse thread muted posts in conversation --- src/components/status/status.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/status/status.js b/src/components/status/status.js index 1c38b0f1..d17ba318 100644 --- a/src/components/status/status.js +++ b/src/components/status/status.js @@ -118,7 +118,7 @@ const Status = { return hits }, - muted () { return !this.unmuted && ((!this.inProfile && this.status.user.muted) || this.status.thread_muted || this.muteWordHits.length > 0) }, + muted () { return !this.unmuted && ((!this.inProfile && this.status.user.muted) || (!this.inConversation && this.status.thread_muted) || this.muteWordHits.length > 0) }, hideFilteredStatuses () { return typeof this.$store.state.config.hideFilteredStatuses === 'undefined' ? this.$store.state.instance.hideFilteredStatuses