« get me outta code hell

scratch-userscripts - Handy userscripts for the Scratch website - issues/ideas: https://notabug.org/towerofnix/scratch-userscripts/issues
about summary refs log tree commit diff
path: root/scratch-forums-no-reply-hider.js
diff options
context:
space:
mode:
Diffstat (limited to 'scratch-forums-no-reply-hider.js')
-rw-r--r--scratch-forums-no-reply-hider.js19
1 files changed, 16 insertions, 3 deletions
diff --git a/scratch-forums-no-reply-hider.js b/scratch-forums-no-reply-hider.js
index 0b02b2e..1a6f844 100644
--- a/scratch-forums-no-reply-hider.js
+++ b/scratch-forums-no-reply-hider.js
@@ -1,12 +1,24 @@
 // ==UserScript==
-// @name Hide Unreplied Posts
+// @name Hide Unreplied Topics
 // @namespace Violentmonkey Scripts
 // @match https://scratch.mit.edu/discuss/57/*
 // @grant none
 // ==/UserScript==
 
+// Customization ///////////////////////////////////////
+
+// Should topics which only have one reply be hidden
+// if that reply was not written by an ST member?
+const remove1NonST = true
+
+// Topic hiding ////////////////////////////////////////
+
+const stMembers = 'ceebee designerd kittyloaf shruti Champ99 dietbacon chrisg codubee sgcc_ dsquare scmb1 tarmelop quacht mres ericr natalie raimondious speakvisually thisandagain pandatt brycedtea Morant cwillisf pondermake stymphalianbirb'.split(' ')
+
 let numRemoved = 0, span
 
+const last = arr => arr[arr.length - 1]
+
 const observer = new MutationObserver(mutations => {
   let dirty = false
   for (const mutation of mutations) {
@@ -17,7 +29,8 @@ const observer = new MutationObserver(mutations => {
 
       if (node.matches('.box-content tr')) {
         const replyCount = parseInt(node.querySelector('.tc2').textContent)
-        if (replyCount === 0) {
+        const latestReplier = last(node.querySelector('.tcr').textContent.trim().split(' '))
+        if (replyCount === 0 || remove1NonST && replyCount === 1 && !stMembers.includes(latestReplier)) {
           node.remove()
           numRemoved++
           dirty = true
@@ -36,7 +49,7 @@ const observer = new MutationObserver(mutations => {
     while (span.firstChild) {
       span.removeChild(span.firstChild)
     }
-    span.appendChild(document.createTextNode(` - ${numRemoved} post${numRemoved === 1 ? '' : 's'} with no replies hidden`))
+    span.appendChild(document.createTextNode(` - ${numRemoved} topic${numRemoved === 1 ? '' : 's'} with no replies hidden`))
   }
 })