Skip to content

Instantly share code, notes, and snippets.

@ccloli
Last active August 29, 2015 14:04
Show Gist options
  • Save ccloli/974a7f3790f3b0310da1 to your computer and use it in GitHub Desktop.
Save ccloli/974a7f3790f3b0310da1 to your computer and use it in GitHub Desktop.
Tieba Block
// ==UserScript==
// @name Tieba Block
// @version 0.2
// @description Tieba Block
// @match http://tieba.baidu.com/*
// @include http://tieba.baidu.com/*
// @author 864907600cc
// @icon http://1.gravatar.com/avatar/147834caf9ccb0a66b2505c753747867
// @run-at document-start
// @grant GM_registerMenuCommand
// @namespace http://ext.ccloli.com
// ==/UserScript==
// 本脚本基于 GPLv3 协议开源 http://www.gnu.org/licenses/gpl.html‎
// (c) 86497600cc. Some Rights Reserved.
// Default setting: Press Ctrl and click right key on a image to search.
function call_setting(){
var node=document.createElement('div');
node.className='tb_block_setting';
node.innerHTML=
'<fieldset>\
<legend style="padding:0 2px">屏蔽指定用户</legend>\
<label><input type="checkbox" attr="user_block">开启屏蔽规则</label><br>\
<textarea attr="user_list" title="输入欲屏蔽的用户名,一行一个,多个用户名以回车分隔"></textarea><br>\
<label><input type="checkbox" attr="user_frs">在贴吧页屏蔽主题贴</label><br>\
<label><input type="checkbox" attr="user_pb">在贴子页屏蔽楼层</label><br>\
<label><input type="checkbox" attr="user_lzl">在贴子页屏蔽楼中楼</label><br>\
<label><input type="checkbox" attr="user_show">不显示隐藏提醒</label><br>\
<label style="opacity:0.5;pointer-events:none"><input type="checkbox" attr="user_h">启用高资源占用模式</label><br>\
</fieldset>\
<fieldset style="opacity:0.5;pointer-events:none">\
<legend style="padding:0 2px">屏蔽关键词</legend>\
<label><input type="checkbox" attr="filter_block">开启屏蔽规则</label><br>\
<textarea attr="filter_list" title="输入欲屏蔽的关键词,一行一个,多个关键词以回车分隔"></textarea><br>\
<label><input type="checkbox" attr="filter_frs">在贴吧页屏蔽主题贴</label><br>\
<label><input type="checkbox" attr="filter_pb">在贴子页屏蔽楼层</label><br>\
<label><input type="checkbox" attr="filter_lzl">在贴子页屏蔽楼中楼</label><br>\
<label><input type="checkbox" attr="filter_show">不显示隐藏提醒</label><br>\
<label><input type="checkbox" attr="filter_h">启用高资源占用模式</label><br>\
</fieldset>\
<input type="button" value="保存">';
document.body.appendChild(node);
if(data.length!=0){
var nodes=node.querySelectorAll('fieldset [attr]');
for(var i=0;i<nodes.length;i++){
if(nodes[i].tagName.toLowerCase()=='textarea')nodes[i].value=data[nodes[i].getAttribute('attr')]
else if(data[nodes[i].getAttribute('attr')]==1)nodes[i].setAttribute('checked','checked');
}
}
node.querySelector('input[type="button"]').onclick=function(){
for(var i=0;i<nodes.length;i++){
if(nodes[i].tagName.toLowerCase()=='textarea')data[nodes[i].getAttribute('attr')]=nodes[i].value;
else data[nodes[i].getAttribute('attr')]=nodes[i].checked?1:0;
}
localStorage.setItem('tb_block_setting',JSON.stringify(data));
node.parentElement.removeChild(node);
}
}
var data=localStorage.getItem('tb_block_setting')?JSON.parse(localStorage.getItem('tb_block_setting')):{};
var stylesheet=document.createElement('style');
stylesheet.textContent='.tb_block_setting{width:600px;height:300px;position:fixed;left:0;right:0;top:0;bottom:0;margin:auto;background:rgba(255,255,255,0.75);text-align:center;border:1px solid #EEE;box-shadow:0 0 5px #999}\
.tb_block_setting fieldset{width:45%;display:inline-block;border:1px dotted #999;padding:5px;text-align:left}\
.tb_block_setting legend{padding:0 2px}\
.tb_block_setting textarea{width:100%;height:100px;resize:none}\
.tb_block_setting p{align:5px 0}\
.tb_block_setting input{margin:5px 0}\
.tb_block_item{width:100%;height:50px;line-height:50px;font-size:14px;color:#FFF;text-shadow:0 0 5px #F00;text-align:center;background:rgba(255,0,0,0.75);cursor:pointer}';
document.head.appendChild(stylesheet);
if(data.user_block==1&&data.user_list!=''){
var user_list=data.user_list.replace(/ /gi,'').split('\n');
var block_data='';
for(var i=0;i<user_list.length;i++){
if(user_list[i]!=''){
if(data.user_frs==1)block_data+=(block_data==''?'':',')+'.j_thread_list[data-field*="\\"author_name\\":\\"'+/*escape(*/user_list[i]/*).toLowerCase().replace(/%u/gi,'\\\\u')*/+'\\""]'
if(data.user_pb==1)block_data+=(block_data==''?'':',')+'.l_post[data-field*="\\"user_name\\":\\"'+/*escape(*/user_list[i]/*).toLowerCase().replace(/%u/gi,'\\\\u')*/+'\\""]'
if(data.user_lzl==1)block_data+=(block_data==''?'':',')+'.lzl_single_post[data-field*="\'user_name\':\''+user_list[i]+'\'"]'
}
}
if(block_data!='')stylesheet.textContent+=block_data+'{display:none}';
if(!data.user_show)window.onload=function(){
var nodes=document.querySelectorAll(block_data);
for(var i=0;i<nodes.length;i++){
var element=document.createElement('div');
var hide_node=nodes[i];
element.className='tb_block_item';
element.textContent='隐藏了一个贴子';
hide_node.parentElement.insertBefore(element,hide_node);
element.onclick=function(){
console.log(this.nextElementSibling)
this.nextElementSibling.style.cssText='display:block!important';
this.parentElement.removeChild(this);
}
}
}
}
/*
if(data.user_block==1||data.filter_block==1){
if((PageData.product=='frs'&&(data.user_frs==1||data.filter_frs==1))||(PageData.product=='pb'&&(data.user_pb==1||data.user_lzl==1||data.filter_pb==1||data.filter_lzl==1))){
if(data.filter_h==0&&data.user_h==0){
document.body.addEventListener('load',function(){
var nodes==null;
if((PageData.product=='frs'&&(data.user_frs==1||data.filter_frs==1)))nodes=document.getElementsByClassName('j_thread_list');
else if(PageData.product=='pb')nodes=document.querySelectorAll((data.user_pb==1||data.filter_pb==1)?'.l_post':''+(data.user_lzl==1||data.filter_lzl==1)?' .lzl_single_post':'');
if(nodes!=null){
for
}
})
}
}
}*/
GM_registerMenuCommand('Tieba Block Setting',call_setting);
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment