/*
// ==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();