« 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.js12
1 files changed, 10 insertions, 2 deletions
diff --git a/scratch-forums-no-reply-hider.js b/scratch-forums-no-reply-hider.js
index 1a6f844..268d6a3 100644
--- a/scratch-forums-no-reply-hider.js
+++ b/scratch-forums-no-reply-hider.js
@@ -11,15 +11,22 @@
 // if that reply was not written by an ST member?
 const remove1NonST = true
 
+// Should topics that you created ever be hidden?
+const hideOwnTopics = false
+
 // 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
+let numRemoved = 0, span, ownUsername
 
 const last = arr => arr[arr.length - 1]
 
 const observer = new MutationObserver(mutations => {
+  if (!ownUsername && window.Scratch && Scratch.INIT_DATA.LOGGED_IN_USER.model) {
+    ownUsername = Scratch.INIT_DATA.LOGGED_IN_USER.model.username
+  }
+
   let dirty = false
   for (const mutation of mutations) {
     for (const node of mutation.addedNodes) {
@@ -30,7 +37,8 @@ const observer = new MutationObserver(mutations => {
       if (node.matches('.box-content tr')) {
         const replyCount = parseInt(node.querySelector('.tc2').textContent)
         const latestReplier = last(node.querySelector('.tcr').textContent.trim().split(' '))
-        if (replyCount === 0 || remove1NonST && replyCount === 1 && !stMembers.includes(latestReplier)) {
+        const author = last(node.querySelector('.tcl').textContent.trim().split(' '))
+        if ((hideOwnTopics || author !== ownUsername) && (replyCount === 0 || remove1NonST && replyCount === 1 && !stMembers.includes(latestReplier))) {
           node.remove()
           numRemoved++
           dirty = true