From 31e5ae37d5a85c79e6c1559bdc0434c3d6ab54a5 Mon Sep 17 00:00:00 2001 From: Nick Wynja Date: Tue, 2 Mar 2021 17:35:38 -0500 Subject: [PATCH 1/2] Hides content of messages from blocked people This introduces a basic implementation to not display the content of messages. It still shows that a message exists but shows localized copy indicating why the content was hidden. We should consider additional filters or queries in different views to actually remove these posts but I'll leave that as up for discussion since I can see value in showing that a blocked comment exists in a conversation. --- src/assets/style.css | 4 ++++ src/models.js | 5 +++++ src/views/i18n.js | 1 + src/views/index.js | 22 ++++++++++++++++++++-- 4 files changed, 30 insertions(+), 2 deletions(-) diff --git a/src/assets/style.css b/src/assets/style.css index 5b528a6..6fac4c1 100644 --- a/src/assets/style.css +++ b/src/assets/style.css @@ -667,6 +667,10 @@ section.post-preview > section > footer { display: none; } +section.post.blocked { + font-style: italic; +} + section > footer > div > a:hover, section > footer > div > form > button:hover { text-decoration: underline; diff --git a/src/models.js b/src/models.js index 8992101..e7f0885 100644 --- a/src/models.js +++ b/src/models.js @@ -866,6 +866,11 @@ module.exports = ({ cooler, isPublic }) => { ); } + const { blocking } = await models.friend.getRelationship( + msg.value.author + ); + lodash.set(msg, "value.meta.blocking", blocking); + return msg; }) ); diff --git a/src/views/i18n.js b/src/views/i18n.js index c64876c..0571944 100644 --- a/src/views/i18n.js +++ b/src/views/i18n.js @@ -75,6 +75,7 @@ const i18n = { relationshipFollowing: "You are following", relationshipYou: "This is you", relationshipBlocking: "You are blocking", + relationshipBlockingPost: "This message hides content from a blocked user.", relationshipNone: "You are neither following or blocking", relationshipConflict: "You are somehow both following and blocking", // author view diff --git a/src/views/index.js b/src/views/index.js index dcd825c..c033856 100644 --- a/src/views/index.js +++ b/src/views/index.js @@ -220,6 +220,7 @@ const thread = (messages) => { const isAncestor = Boolean( lodash.get(currentMsg, "value.meta.thread.ancestorOfTarget", false) ); + const isBlocked = Boolean(nextMsg.value.meta.blocking); msgList.push(`
`); const nextAuthor = lodash.get(nextMsg, "value.meta.author.name"); @@ -228,8 +229,13 @@ const thread = (messages) => { ? lodash.get(nextMsg, "value.content.contentWarning") : lodash.get(nextMsg, "value.content.text") ); - - msgList.push(summary(`${nextAuthor}: ${nextSnippet}`).outerHTML); + msgList.push( + summary( + isBlocked + ? i18n.relationshipBlockingPost + : `${nextAuthor}: ${nextSnippet}` + ).outerHTML + ); } else if (depth(currentMsg) > depth(nextMsg)) { // getting more shallow const diffDepth = depth(currentMsg) - depth(nextMsg); @@ -353,6 +359,7 @@ const post = ({ msg, aside = false }) => { }; const isPrivate = Boolean(msg.value.meta.private); + const isBlocked = Boolean(msg.value.meta.blocking); const isRoot = msg.value.content.root == null; const isFork = msg.value.meta.postType === "subtopic"; const hasContentWarning = @@ -438,6 +445,17 @@ const post = ({ msg, aside = false }) => { ) : article({ class: "content", innerHTML: markdownContent }); + if (isBlocked) { + messageClasses.push("blocked"); + return section( + { + id: msg.key, + class: messageClasses.join(" "), + }, + i18n.relationshipBlockingPost + ); + } + const articleContent = hasContentWarning ? details(summary(msg.value.content.contentWarning), articleElement) : articleElement; From 42dd16347925b31cd65b744b2a9d16d68281ebc7 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Wed, 3 Mar 2021 05:05:14 +0000 Subject: [PATCH 2/2] Bump open from 7.4.2 to 8.0.1 Bumps [open](https://github.com/sindresorhus/open) from 7.4.2 to 8.0.1. - [Release notes](https://github.com/sindresorhus/open/releases) - [Commits](https://github.com/sindresorhus/open/compare/v7.4.2...v8.0.1) Signed-off-by: dependabot[bot] --- package-lock.json | 16 +++++++++++----- package.json | 2 +- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/package-lock.json b/package-lock.json index e04db6f..1004cba 100644 --- a/package-lock.json +++ b/package-lock.json @@ -3099,6 +3099,11 @@ "inherits": "^2.0.3" } }, + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" + }, "define-properties": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", @@ -7919,12 +7924,13 @@ "integrity": "sha1-Kv3oTQPlC5qO3EROMGEKcCle37Q=" }, "open": { - "version": "7.4.2", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.2.tgz", - "integrity": "sha512-MVHddDVweXZF3awtlAS+6pgKLlm/JgxZ90+/NBurBoQctVOOB/zDdVjcyPzQ+0laDGbsWgrRkflI65sQeOgT9Q==", + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/open/-/open-8.0.1.tgz", + "integrity": "sha512-VfWbDBAay2Zbw2QrMMIxuo4H0SUe+TdHHT8qLkbBRF+TxdEhnbDxf7jWMV5Fbk5U4HX3abq2lvYH5v/xoo6CNg==", "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" } }, "opener": { diff --git a/package.json b/package.json index 625cfa2..920e3b3 100644 --- a/package.json +++ b/package.json @@ -36,7 +36,7 @@ "lodash": "^4.17.11", "lodash.shuffle": "^4.2.0", "markdown-it": "^12.0.2", - "open": "^7.0.3", + "open": "^8.0.1", "piexifjs": "^1.0.4", "pretty-ms": "^7.0.1", "pull-abortable": "^4.1.1",