PTH Ignore thread

Hide threads in subforum view

目前為 2017-01-01 提交的版本,檢視 最新版本

// ==UserScript==
// @name         PTH Ignore thread
// @version      0.1
// @description  Hide threads in subforum view
// @author       Chameleon
// @include      http*://passtheheadphones.me/forums.php?action=viewforum*
// @grant        none
// @namespace https://gf.qytechs.cn/users/87476
// ==/UserScript==

(function() {
  'use strict';

  var showHidden=document.createElement('a');
  showHidden.setAttribute('class', 'brackets');
  document.getElementsByClassName('linkbox')[0].appendChild(showHidden);
  showHidden.setAttribute('id', 'ignoreToggle');
  showHidden.addEventListener('click', toggleHidden.bind(undefined, showHidden), false);

  hide();
})();

function toggleHidden(a)
{
  if(a.innerHTML.indexOf('Show') != -1)
  {
    a.innerHTML = a.innerHTML.replace(/Show/, "Hide");
    var trs=document.getElementsByClassName('forum_index')[0].getElementsByTagName('tr');
    for(var i=1; i<trs.length; i++)
    {
      trs[i].style.display='';
    }
  }
  else
  {
    a.innerHTML = a.innerHTML.replace(/Hide/, "Show");
    hide();
  }
}

function hide()
{
  var ignored=getIgnored();

  var count=0;

  var trs=document.getElementsByClassName('forum_index')[0].getElementsByTagName('tr');
  for(var i=1; i<trs.length; i++)
  {
    var tr=trs[i];
    var threadId=tr.getElementsByTagName('strong')[0].getElementsByTagName('a')[0].href.split("threadid=");
    if(threadId.length == 1)
      continue;
    threadId=parseInt(threadId[1]);

    var ig=false;
    for(var j=0; j<ignored.length; j++)
    {
      if(threadId === ignored[j])
      {
        count++;
        tr.style.display='none';
        ig=true;
        break;
      }
    }

    var hideLink=tr.getElementsByClassName('ignoreThread');
    if(hideLink.length === 0)
    {
      hideLink=document.createElement('a');
      hideLink.href='javascript:void(0);';
      hideLink.setAttribute('class', 'brackets ignoreThread');
      tr.getElementsByClassName('last_poster')[0].appendChild(hideLink);
      hideLink.addEventListener('click', hideToggle.bind(undefined, hideLink, threadId), false);
    }
    hideLink.innerHTML='-';
    if(ig)
      hideLink.innerHTML = '+';
  }

  var a=document.getElementById('ignoreToggle');
  if(count > 0)
  {
    a.style.display='';
    a.innerHTML = 'Show '+count+' hidden threads';
  }
  else
    a.style.display = 'none';
}

function hideToggle(a, threadId)
{
  var ignored=getIgnored();
  if(a.innerHTML.indexOf('-') != -1)
  {
    a.innerHTML='+';
    ignored.push(threadId);
    window.localStorage.ignoredThreads=JSON.stringify(ignored);
    hide();
  }
  else
  {
    a.innerHTML='-';
    var i=ignored.indexOf(threadId);
    if(i > -1)
    {
      ignored.splice(i, 1);
    }
    var as=document.getElementsByClassName('ignoreThread');
    var count=0;
    for(var i=0; i<as.length; i++)
    {
      if(as[i].innerHTML === '+')
        count++;
    }
    var a=document.getElementById('ignoreToggle');
    a.innerHTML = 'Hide '+count+' hidden threads';
    if(count === 0)
      a.style.display='none';
    window.localStorage.ignoredThreads=JSON.stringify(ignored);
  }
}

function getIgnored()
{
  var ignored=window.localStorage.ignoredThreads;
  if(!ignored)
    ignored=[];
  else
    ignored=JSON.parse(ignored);

  return ignored;
}

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址