'Forums You Ignore' issue

Discussion in 'Site and Forum Feedback' started by deferredAnon, Jan 12, 2018.

  1. deferredAnon, Jan 12, 2018
    Last edited: Jan 13, 2018

    deferredAnon macrumors 6502

    deferredAnon

    Joined:
    Dec 25, 2017
    Location:
    US
    #1
    I ignored Politics sub forum in settings but discussions from it still show up in 'Latest Replies' at the left hand side of main Forum listing. Very distracting!
     
  2. Weaselboy Moderator

    Weaselboy

    Staff Member

    Joined:
    Jan 23, 2005
    Location:
    California
    #2
    Yeah... same here and there is no way around it that I know of.
     
  3. Strelok macrumors 6502a

    Strelok

    Joined:
    Jun 6, 2017
    Location:
    United States
    #3
    Easiest way to "negate" this is to just use the "New Posts" tab. I do wish there was a way those replies never showed up for those of us that ignore it though. I don't like seeing that garbage.
     
  4. Plutonius macrumors 604

    Plutonius

    Joined:
    Feb 22, 2003
    Location:
    New Hampshire
    #4
    I ignore all forums not listed in the sidebar with the exception of PRSI.

    I myself find the PRSI forum very entertaining :).
     
  5. dwfaust, Jan 13, 2018
    Last edited: Jan 13, 2018

    dwfaust macrumors 68040

    dwfaust

    Joined:
    Jul 3, 2011
    Location:
    I am here => [•]
    #5
    Personally, I fail to see the need for stuff like PRSI here... what has that to do with the Apple-centric theme of the MacRumors site? There are plenty of other fora where vitriolic discussion of "he said, she said" political discourse can be had... for the most part I am able to simply ignore that whole area... but as the OP stated, there are some things that one simply cannot escape.
     
  6. deferredAnon, Jan 13, 2018
    Last edited: Jan 14, 2018

    deferredAnon thread starter macrumors 6502

    deferredAnon

    Joined:
    Dec 25, 2017
    Location:
    US
    #6
    I usually just browse the 'Trending Threads' tab.

    Yeah, I was surprised to find it here. My other forum has a strict policy against discussions involving Religion/Politics. But at least there is a 'Ignore Forum' feature here, which I didn't even know existed until a couple of days ago.
     
  7. acorntoy macrumors 6502a

    Joined:
    May 25, 2010
    #7
    I can’t think of a worse place to have a political discussion than an online forum. Even the thanksgiving table is more appropriate and will have a better chance of creating something productive.
     
  8. ShinyDren macrumors member

    ShinyDren

    Joined:
    Jun 25, 2010
    Location:
    Ambitoysterous, USA
    #8
    Thought I’d take a stab at this for kicks.

    If you are using a desktop browser you can install the Tampermonkey plugin (http://tampermonkey.net). Then add the userscript below, by following the documentation on the site if needed.

    The script runs only on the main forums page (where the sidebar is) and the “Forums you ignore” settings page. It will hide the replies in the sidebar for any that match the settings. By default this is the PRSI posts, but will include all forums you are ignoring after you visit the “Forums you ignore” settings page under your account.

    This is not a seamless solution as it just hides the post in the sidebar (decreasing how many are there).

    Code:
    // ==UserScript==
    // @name         MacRumors - Hide Ignored Forums in Latest Replies in Sidebar
    // @namespace    mr.ShinyDren
    // @version      0.3
    // @description  Hide posts in Latest Replies in sidebar if they are in a node being ignored via site account settings.
    // @author       ShinyDren
    // @match        https://forums.macrumors.com/
    // @match        https://forums.macrumors.com/account/ignored-forums
    // @grant        none
    // ==/UserScript==
    
    // localStorage is assumed
    
    var ignoredNodeRegex = /-47$/i; // fallback value
    var numHidden = 0;
    
    function copyIgnoredToLocalstorage() {
        if ( localStorage.getItem("_mod_sd_siteIgnoreForums") === null ) { // See if the localStorage item exists, display info message if not (only show message once).
            alert("Congratulations, it appears this is the first time running this script on the \"Forums You Ignore\" settings page.\n\nAny forums you select to ignore here will also be used to hide posts in the sidebar on the front page of the forums.");
        }
        var regexList = '';
        var checkedItems = document.querySelectorAll("ul.ignoredNodeList li input:checked"); // Get all matches.
        for (i = 0; i < checkedItems.length; i++) {
            var myValue = checkedItems[i].getAttribute("value");
            if ( i > 0 ) {
                regexList = regexList + "|";
            }
            regexList = regexList + "-" + myValue + "$";
        }
        localStorage.setItem("_mod_sd_siteIgnoreForums", regexList);
    }
    
    function checkReplies() { // Called once at page load.
        var theReplies = document.querySelectorAll(".sidebar .widget .avatarList li"); // Get all matches.
        if ( localStorage.getItem("_mod_sd_siteIgnoreForums") !== null ) { // If the ignoreForums value has been set use it instead of the fallback value.
            ignoredNodeRegex = new RegExp(localStorage.getItem("_mod_sd_siteIgnoreForums"), 'i');
        }
        for (i = 0; i < theReplies.length; i++) {
            if ( ignoredNodeRegex.test(theReplies[i].classList.item(1)) ) { // Contains the text.
                theReplies[i].style.display = "none"; // Hide the reply.
                numHidden++;
            }
        }
        if ( numHidden > 0 ) {
            var myNode = document.createElement("LI");
            var myTextnode = document.createTextNode(numHidden + " replies hidden per your request");
            myNode.appendChild(myTextnode);
            myNode.className = "userTitle"; // match other text
            myNode.style.padding = "10px 0 0 15px"; // adjust spacing
            theReplies[1].parentNode.appendChild(myNode);
        }
    }
    
    var myLoc = location.pathname;
    //alert(myLoc); // for testing
    if ( myLoc == "/account/ignored-forums" ) { // Get ignored items from page
        copyIgnoredToLocalstorage();
    }
    
    if ( myLoc == "/" ) { // Check/Hide replies
        checkReplies();
    }
    
    
     

Share This Page