Created
December 29, 2012 11:17
-
-
Save iwinux/4406251 to your computer and use it in GitHub Desktop.
豆藤补丁,按类型过滤广播,使用方法:patch 豆藤脚本.js < filter-by-type.patch
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
--- doubanhelper.user.js 2012-12-19 23:11:33.000000000 +0800 | |
+++ doubanhelper.user.patched.js 2012-12-29 19:02:51.267462938 +0800 | |
@@ -1571,7 +1571,7 @@ | |
//过滤设置项 | |
var toggle = document.createElement('div'); | |
toggle.id = 'myGFWbar'; | |
- toggle.innerHTML = '<span title="已屏蔽广播数 by 豆藤">屏蔽(<em id="blockNum">0</em>)</span> | <a id="showBlock" class="bn-status-more" href="#" title="还原显示被屏蔽广播 by 豆藤" >显示</a> | <a id="setMyGFW" class="bn-status-more" href="#" title="设置屏蔽规则 by 豆藤">设置</a> | '; | |
+ toggle.innerHTML = '<span title="已屏蔽广播数 by 豆藤">屏蔽(<em id="blockNum">0</em>)</span> | <a id="showBlock" class="bn-status-more" href="#" title="还原显示被屏蔽广播 by 豆藤" >显示</a>| <a id="filter-by-type" class="bn-status-more" href="#" title="过滤某些类型的广播">过滤</a> | <a id="setMyGFW" class="bn-status-more" href="#" title="设置屏蔽规则 by 豆藤">设置</a> | '; | |
$$('#mod-status-cate .status-cate')[0].insertBefore(toggle, $$('#mod-status-cate .bn-status-more')[0]); | |
GM_addStyle('#myGFWbar{display:inline;} #myGFWbar a:hover{background-color:#3377AA;} #myGFWbar span{color:#AAA;} .beBlock{display:none;background-color:#edf4ed;}'); | |
@@ -1586,6 +1586,17 @@ | |
$('#showBlock').innerHTML = '显示'; | |
}; | |
}, false); | |
+ | |
+ var btnFilter = $('#filter-by-type'); | |
+ btnFilter.addEventListener('click', function () { | |
+ if (btnFilter.innerHTML === '过滤') { | |
+ GM_addStyle('.beFiltered{display:none;}'); | |
+ btnFilter.innerHTML = '取消过滤'; | |
+ } else { | |
+ GM_addStyle('.beFiltered{display:block;}'); | |
+ btnFilter.innerHTML = '过滤'; | |
+ } | |
+ }); | |
$('#setMyGFW').addEventListener('click', function(){ | |
sw_set(false); | |
@@ -1603,19 +1614,23 @@ | |
.replace(/([\.\+\?\*\(\)\[\]\{\}\|\^\$\/\\])/g, '\\$1') //转义特殊符号 | |
.replace(/\n/g, '|'); | |
// GM_log(blockWords); | |
+ var rule, filteredTypes = ['1013', '1026', '5002']; | |
+ | |
+ if (blockWords !== '') { rule = new RegExp(blockWords, 'i'); } | |
- if(blockWords != ''){ | |
- var rule = new RegExp(blockWords, 'i'); | |
+ if (rule || filteredTypes.length > 0) { | |
// GM_log(rule); | |
//遍历友邻广播 | |
var items = $$('.status-item:not([myGFW])'), blockNum = Number($('#blockNum').innerHTML); | |
for(var i=0,j=items.length; i<j; i++){ | |
items[i].setAttribute('myGFW', '1');//已处理标记 | |
- if(rule.test(items[i].textContent)){ | |
+ if (rule && rule.test(items[i].textContent)) { | |
items[i].className += ' beBlock';//屏蔽标记 | |
blockNum++; | |
- }; | |
+ } else if (filteredTypes.indexOf(items[i].dataset.objectKind) !== -1) { | |
+ items[i].className += ' beFiltered'; | |
+ }; | |
}; | |
$('#blockNum').innerHTML = blockNum; | |
}; |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment