Silent B

隐藏指定的超展开列表项目,等等

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey, Greasemonkey или Violentmonkey.

Для установки этого скрипта вам необходимо установить расширение, такое как Tampermonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Violentmonkey.

Чтобы установить этот скрипт, вы сначала должны установить расширение браузера, например Tampermonkey или Userscripts.

Чтобы установить этот скрипт, сначала вы должны установить расширение браузера, например Tampermonkey.

Чтобы установить этот скрипт, вы должны установить расширение — менеджер скриптов.

(у меня уже есть менеджер скриптов, дайте мне установить скрипт!)

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение браузера, например Stylus.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

Чтобы установить этот стиль, сначала вы должны установить расширение — менеджер стилей.

(у меня уже есть менеджер стилей, дайте мне установить скрипт!)

/*
// ==UserScript==
// @name           Silent B
// @namespace      https://github.com/hentaiPanda
// @description    隐藏指定的超展开列表项目,等等
// @author         niR
// @version        4672.20 pre Bismark
// @license        MIT License
// @encoding       utf-8
// @require        http://code.jquery.com/jquery-2.1.1.js
// @grant          GM_getValue
// @grant          GM_setValue
// @include        http://bgm.tv/rakuen/topiclist
// @include        http://bangumi.tv/rakuen/topiclist
// @include        http://chii.in/rakuen/topiclist
// @include        http://bgm.tv/
// @include        http://bangumi.tv/
// @include        http://chii.in/
// @include        /^http://bgm\.tv/subject/[0-9]+/
// @include        /^http://bangumi\.tv/subject/[0-9]+/
// @include        /^http://chii\.in/subject/[0-9]+/
// @include        http://bgm.tv/subject_search/*
// @include        http://bangumi.tv/subject_search/*
// @include        http://chii.in/subject_search/*
// @include        /^http://bgm\.tv/(anime|book|music|real)/browser/
// @include        /^http://bangumi\.tv/(anime|book|music|real)/browser/
// @include        /^http://chii\.in/(anime|book|music|real)/browser/
// @include        /^http://bgm\.tv/group/(?!topic).+/
// @include        /^http://bangumi.tv/group/(?!topic).+/
// @include        /^http://chii.in/group/(?!topic).+/
// @include        http://bgm.tv/settings*
// @include        http://bangumi.tv/settings*
// @include        http://chii.in/settings*
// ==/UserScript==
 */
var addBtn, addBtnGroup, addBtnHome, addSettingBtn, checkTsuRtg, getParentNode, hideRank, hideRating, hideTsukkomi, initItemList, initItemListGroup, initItemListHome, main, refreshIndexList, refreshList, refreshTopicList, removeItem, removeItemGroup, removeItemHome, sbsetting, updateTsuRtg;

getParentNode = function(node, level) {
  var i, pn;
  i = level - 1;
  pn = node.parentNode;
  if (level === 0) {
    return node;
  }
  while (i > 0) {
    pn = pn.parentNode;
    i -= 1;
  }
  return pn;
};

addBtn = function() {
  $('li.item_list > div.inner > span.row').each(function() {
    var x_btn;
    x_btn = '<span class="xlihil"><a href="javascript:;">[X]</a></span>';
    return this.innerHTML = this.innerHTML + x_btn;
  });
  return $('body').on('click.removeli', '.xlihil', function(evt) {
    return removeItem(evt.target);
  });
};

removeItem = function(node) {
  var item, tpcid;
  item = getParentNode(node, 4);
  GM_setValue(item.id, true);
  tpcid = item.id.split("item_group_")[1];
  console.log(tpcid);
  GM_setValue("/group/topic/" + tpcid, true);
  return item.outerHTML = '';
};

initItemList = function() {
  var flag;
  flag = false;
  $('li.item_list').each(function() {
    if (GM_getValue(this.id, false)) {
      this.outerHTML = '';
      return flag = true;
    }
  });
  return flag;
};

addBtnHome = function() {
  $('div#home_subject_tpc a.l, div#home_grp_tpc a.l:not(.rr)').each(function() {
    var x_btn;
    if ($(this).attr("href").startsWith("/group/my")) {
      return;
    }
    x_btn = '<a class="xlihil" href="javascript:;">[X]</a>';
    return $(this).next().html(function(i, old) {
      return old + x_btn;
    });
  });
  return $('body').on('click.removeli', '.xlihil', function(evt) {
    return removeItemHome(evt.target);
  });
};

removeItemHome = function(node) {
  var itemhref, tpcid;
  itemhref = $(node).parents().eq(0).prev().attr("href");
  GM_setValue(itemhref, true);
  tpcid = itemhref.split("/group/topic/")[1];
  console.log(tpcid);
  GM_setValue("item_group_" + tpcid, true);
  return $(node).parents().eq(2).remove();
};

initItemListHome = function() {
  var flag;
  flag = false;
  $('div#home_subject_tpc a.l, div#home_grp_tpc a.l').each(function() {
    var href;
    href = $(this).attr("href");
    if (GM_getValue(href, false)) {
      $(this).parents().eq(1).remove();
      return flag = true;
    }
  });
  return flag;
};

addBtnGroup = function() {
  $('table.topic_list td.subject').each(function() {
    var x_btn;
    x_btn = '<small class="grey"><a class="xlihil" href="javascript:;">[X]  </a></small>';
    return $(this).html(function(i, old) {
      return x_btn + old;
    });
  });
  return $('body').on('click.removeli', '.xlihil', function(evt) {
    return removeItemGroup(evt.target);
  });
};

removeItemGroup = function(node) {
  var itemhref, tpcid;
  itemhref = $(node).parent().next().attr("href");
  console.log(itemhref);
  GM_setValue(itemhref, true);
  tpcid = itemhref.split("/group/topic/")[1];
  console.log(tpcid);
  GM_setValue("item_group_" + tpcid, true);
  return $(node).parents().eq(2).remove();
};

initItemListGroup = function() {
  var flag;
  flag = false;
  $('table.topic_list td.subject a.l').each(function() {
    var href;
    href = $(this).attr("href");
    if (GM_getValue(href, false)) {
      $(this).parents().eq(1).remove();
      return flag = true;
    }
  });
  return flag;
};

refreshList = function() {
  var i;
  i = true;
  return $('li.item_list').each(function() {
    if (this.style.display) {
      return;
    }
    if (i) {
      this.className = 'line_odd item_list';
    } else {
      this.className = 'line_even item_list';
    }
    i = !i;
    return console.log(this.id);
  });
};

refreshIndexList = function(klasslist, klass, subklass) {
  $(klass).each(function() {
    var sub_item, swch;
    swch = true;
    sub_item = $(this).find(subklass);
    if (!sub_item.length) {
      return;
    }
    sub_item.each(function() {
      if (swch) {
        this.className = klasslist[0];
      } else {
        this.className = klasslist[1];
      }
      swch = !swch;
      return 1;
    });
    return 1;
  });
  return true;
};

refreshTopicList = function(klasslist, klass) {
  var swch;
  swch = true;
  $(klass).each(function() {
    if (this.style.display) {
      return;
    }
    if (swch) {
      this.className = klasslist[0];
    } else {
      this.className = klasslist[1];
    }
    swch = !swch;
    return 1;
  });
  return true;
};

hideTsukkomi = function(swch) {
  if (!swch) {
    return;
  }
  return $("#comment_box").remove();
};

hideRating = function(swch) {
  if (!swch) {
    return;
  }
  return $("#ChartWarpper, #columnSubjectInHomeB .global_rating").remove();
};

hideRank = function(swch) {
  if (!swch) {
    return;
  }
  return $("#browserItemList span.rank, #browserItemList p.rateInfo").remove();
};

addSettingBtn = function() {
  $(".secTab").html(function(i, old) {
    return '<li><a href="javascript:;" id="sb_setting"><span>STB设置</span></a></li>' + old;
  });
  $('body').off('click.sb_setting');
  return $('body').on('click.sb_setting', '#sb_setting', function() {
    return sbsetting();
  });
};

updateTsuRtg = function(node) {
  switch (node.id) {
    case "rtg_yes":
      return GM_setValue("hiderating", true);
    case "rtg_no":
      return GM_setValue("hiderating", false);
    case "tsu_yes":
      return GM_setValue("hidetsukkomi", true);
    case "tsu_no":
      return GM_setValue("hidetsukkomi", false);
    default:
      return false;
  }
};

checkTsuRtg = function() {
  var defaultval, flagrtg, flagtsu;
  defaultval = true;
  flagtsu = GM_getValue("hidetsukkomi", defaultval);
  flagrtg = GM_getValue("hiderating", defaultval);
  if (flagrtg) {
    $("#rtg_yes")[0].checked = true;
  } else {
    $("#rtg_no")[0].checked = true;
  }
  if (flagtsu) {
    return $("#tsu_yes")[0].checked = true;
  } else {
    return $("#tsu_no")[0].checked = true;
  }
};

sbsetting = function() {
  var newcolumn;
  $("#columnB").css("display", "none");
  $("#header > h1").html(function(i, old) {
    return "STB设置";
  });
  $(".secTab > li > a").removeClass("selected");
  $("#sb_setting").addClass("selected");
  newcolumn = '<span class="text"><table class="settings" cellpadding="5" cellspacing="0" align="center" width="98%"><tbody><tr><td valign="top" width="12%"><h2 class="subtitle">隐藏评分信息</h2></td><td valign="top"></td></tr><tr><td valign="top" width="20%">是</td><td valign="top"><input name="rtg_radio" class="stb" id="rtg_yes" type="radio"></td></tr><tr><td valign="top" width="20%">否</td><td valign="top"><input name="rtg_radio"  class="stb" id="rtg_no" type="radio"></td></tr><tr><td valign="top" width="12%"><h2 class="subtitle">隐藏概览页吐槽箱</h2></td><td valign="top"></td></tr><tr><td valign="top" width="20%">是</td><td valign="top"><input name="tsu_radio"  class="stb" id="tsu_yes" type="radio"></td></tr><tr><td valign="top" width="20%">否</td><td valign="top"><input name="tsu_radio"  class="stb" id="tsu_no" type="radio"></td></tr></tbody></span>';
  $("#columnA").html(newcolumn);
  checkTsuRtg();
  $('body').off('click.sb_input');
  return $('body').on('click.sb_input', 'input.stb', function(evt) {
    return updateTsuRtg(evt.target);
  });
};

main = function() {
  var defaultval, i, j, len, path, ref, regPatt, results;
  defaultval = true;
  path = location.pathname;
  regPatt = {
    "/$": function() {
      var flag;
      console.log("http://bangumi.tv");
      flag = initItemListHome();
      addBtnHome();
      if (flag) {
        return refreshIndexList(['line_odd clearit', 'line_even clearit'], '.sideTpcList', 'li');
      }
    },
    "/rakuen/topiclist": function() {
      var flag;
      console.log("/rakuen");
      flag = initItemList();
      if (flag) {
        refreshList();
      }
      return addBtn();
    },
    "/subject/[0-9]+$": function() {
      var flagrtg, flagtsu;
      flagtsu = GM_getValue("hidetsukkomi", defaultval);
      flagrtg = GM_getValue("hiderating", defaultval);
      hideTsukkomi(flagtsu);
      return hideRating(flagrtg);
    },
    "/subject_search/.*": function() {
      var flagrtg;
      flagrtg = GM_getValue("hiderating", defaultval);
      return hideRank(flagrtg);
    },
    "/(anime|book|music|real)/browser": function() {
      var flagrtg;
      flagrtg = GM_getValue("hiderating", defaultval);
      return hideRank(flagrtg);
    },
    "/group/(?!topic).+": function() {
      var flag;
      flag = initItemListGroup();
      addBtnGroup();
      if (flag) {
        return refreshTopicList(['topic odd', 'topic even'], '.topic');
      }
    },
    "/settings": function() {
      console.log("/settings");
      return addSettingBtn();
    }
  };
  ref = Object.keys(regPatt);
  results = [];
  for (j = 0, len = ref.length; j < len; j++) {
    i = ref[j];
    if (RegExp(i).test(path)) {
      results.push(regPatt[i]());
    } else {
      results.push(void 0);
    }
  }
  return results;
};

main();