// ==UserScript== // @name TogetterFilter // @namespace TogetterFilter // @description Togetterを任意のユーザー名を用いてフィルタリング // @include http://togetter.com/* // ==/UserScript== // ここにフィルタリングしたいユーザーのIDを''で囲い、,で区切って記述して下さい var blackListArray = ['carejinzaibank', 'ptotjinzaibank', 'nursejinzaibank']; var blackList = new RegExp('^(?:' + blackListArray.join('|') + ')$', 'g'); // AutoPagerizeで増えた分ではない、1ページ目のフィルタリング filter(document); // AutoPagerizeにfilterをイベントとして追加 // 要AutoPagerize(version 0.40 以降)、jAutoPagerize(Rev: 33889+ 以降) // 参考URL: http://d.hatena.ne.jp/os0x/20090829/1251556449 document.body.addEventListener('AutoPagerize_DOMNodeInserted',function(evt){ var node = evt.target; filter(node); }, false); function filter(node) { if(document.URL.match(/^http:\/\/togetter.com\/li\/*/)) { filterTweets(node); } else { filterLists(node); } } function filterTweets(node) { //各まとめページの発言をフィルタリング var items = document.querySelectorAll( 'div.list_body > div.status > a[href^="http://twitter.com"]' ); for (var i = 0; i < items.length; i++) { var thisLink = items[i]; if(thisLink.innerHTML.match(blackList)) { gone(thisLink); } } // コメント欄をフィルタリング var items = document.querySelectorAll( 'div.status > a.twttrname' ); for (var i = 0; i < items.length; i++) { var thisLink = items[i]; if(thisLink.innerHTML.match(blackList)) { gone(thisLink); } } } function filterLists(node) { var items = document.querySelectorAll( 'div.info_infomation > a.icon_author' ); for (var i = 0; i < items.length; i++) { var thisLink = items[i]; if(thisLink.innerHTML.match(blackList)) { gone(thisLink); } } } function gone(item){ //display = 'none'にしてフィルタリング // item.parentNode.parentNode.parentNode.parentNode.style.display = 'none'; item.parentNode.parentNode.parentNode.parentNode.style.opacity = 0.1; }