Google検索結果をフィルタリングするFilterinGoogleというGreasemonkeyスクリプトを作りました
追記:バグの修正をしました。
最新のスクリプトは[FilterinGoogle] - 素人がプログラミングを勉強するブログからチェックしてください。
センスの無い名前ですが、作りました。
wedataの404 Not Foundかスクリプト本体に自由にフィルター規則を追加できます。
FilterinGoogle.user.js
// ==UserScript== // @name FilterinGoogle // @namespace http://d.hatena.ne.jp/javascripter/ // @include http://www.google.co.jp/ // ==/UserScript== var ITEM_DELETE=false;//trueだと削除、falseだと半透明 var USER_RULES=[ 'http://swik.net/' ];//文字列または正規表現で指定 var IMPORT_URL='http://wedata.net/databases/FilterinGoogle/items.json'; var get_cache=function(callback){ var cache=GM_getValue('cache'); if(cache){ callback(eval(cache)); }else{ GM_xmlhttpRequest({ method:'GET', url:IMPORT_URL, onload:function(res){ var urls=eval(res.responseText).map( function(i) i.data.url.indexOf('/')? i.data.url: RegExp(i.data.url.slice(1,-1))); GM_setValue('cache',uneval(urls)); callback(urls); } }); }; } get_cache(function(SITEINFO_RULE){ var RULES=USER_RULES.concat(SITEINFO_RULE); var deleteItem=ITEM_DELETE? function(element){ element.parentNode.removeChild(element); } : function(element){ element.style.opacity='0.5'; }; var gc=function(root){ Array.filter(root.getElementsByClassName('g'), function(item) RULES.some(function(url) item.getElementsByClassName('l')[0].href[typeof(url)=='string'?'indexOf':'search'](url)!=-1 ) ).forEach(deleteItem); } gc(document.getElementById('res')); window.AutoPagerize&& window.AutoPagerize.addFilter( function(docs){ docs.forEach(deleteItem); } ); });
ToDo:
- 削除しないものを指定できるようにする
- Firefox3以外でも使えるように。
参考にしたところ:
など。