Last active
August 29, 2015 14:04
-
-
Save ccloli/974a7f3790f3b0310da1 to your computer and use it in GitHub Desktop.
Tieba Block
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// ==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