NOTICE: By continued use of this site you understand and agree to the binding Terms of Service and Privacy Policy.
/* // ==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();