firefoxでしか確認していないけれど、URL、正規表現、XPathで指定できる様にしてみたよ。
// ==UserScript== // @name filter for Hatena::Bookmark // @namespace http://anond.hatelabo.jp/ // @include http://b.hatena.ne.jp/hotentry* // @include http://b.hatena.ne.jp/entrylist* // origin http://anond.hatelabo.jp/20080302214727 // ==/UserScript== (function(){ var itemxpath = "//div[@class='entry']"; function xpathgenURL(url) {return "//div[@class='entry' and descendant::a[starts-with(@href,'"+url+"')]]"} var filters = [ // start with '//' then xpath // moconico douga // {"tag": "div", "name": "entry", "pattern": "nicovideo\.jp"}, "//div[@class='entry' and descendant::a[contains(@href,'nicovideo.jp')]]", /* // tag of "2ch" {"tag": "a", "name": "tag", "pattern": "2ch", "parentNum": HatebuTagParentNum}, {"tag": "a", "name": "tag", "pattern": "\\*2ch", "parentNum": HatebuTagParentNum}, ***/ // start with 'http' then url // 2ch blogs // livedoor // {"tag": "div", "name": "entry", // "pattern": /http:\/\/blog\.livedoor\.jp\/(insidears|dqnplus)\//}, "http://blog.livedoor.jp/insidears/", "http://blog.livedoor.jp/dqnplus/", // {"tag": "div", "name": "entry", // "pattern": /http:\/\/(guideline|alfalfa|news4vip)\.livedoor\.biz\//}, "http://guideline.livedoor.biz/", "http://alfalfa.livedoor.biz/", "http://news4vip.livedoor.biz/", // typeof /regexp/ is function (@firefox) then regexp pattern // fc2 // {"tag": "div", "name": "entry", // "pattern": /http:\/\/(urasoku|news23vip|waranote|vipvipblogblog|netanabe|res2ch|kanasoku|tenkomo)\.blog\d+\.fc2\.com\//}, /http:\/\/(urasoku|news23vip|waranote|vipvipblogblog|netanabe|res2ch|kanasoku|tenkomo)\.blog\d+\.fc2\.com\//, // tag of "neta" // {"tag": "a", "name": "tag", "pattern": "ネタ", "parentNum": HatebuTagParentNum}, "//div[@class='entry' and descendant::a[@class='tag' and string()='ネタ']]", // {"tag": "a", "name": "tag", "pattern": "*ネタ", "parentNum": HatebuTagParentNum}, "//div[@class='entry' and descendant::a[@class='tag' and string()='*ネタ']]", // hatena anonymouse diary // {"tag": "div", "name": "entry", "pattern": /http:\/\/anond\.hatelabo\.jp\//} "http://anond.hatelabo.jp/", ]; for (var i=0; i<filters.length; i++) { var filter = filters[i]; var type = typeof filter; var regexp; var xpath; if (type == "function") { xpath = itemxpath; regexp = filter; } else if (type == "string") { if (filter.match(/^http/)) { xpath = xpathgenURL(filter); } else if (filter.match(/^\/\//)) { xpath = filter; } else { next; } } var removeNodes = document.evaluate(xpath,document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null); for (var j=0; j<removeNodes.snapshotLength; j++) { var node = removeNodes.snapshotItem(j); if (!regexp || node.innerHTML.match(regexp)) { node.parentNode.removeChild(node); } } } })();
ついでに増田版も作ってみたよ。
// ==UserScript== // @name filter for Hatelabo::AnonymousDiary // @namespace http://anond.hatelabo.jp/ // @include http://anond.hatelabo.jp/ // @include http://anond.hatelabo.jp/*?page=* // @exclude http://anond.hatelabo.jp/YourID/* // ==/UserScript== // origin http://anond.hatelabo.jp/20080302214727 (function(){ var itemxpath = "//div[@class='section']"; function xpathgenURL(url) {return "//div[@class='section' and descendant::a[starts-with(@href,'"+url+"')]]"} var filters = [ // start with '//' then xpath "//div[@class='section' and child::h3[starts-with(string(),'■はてなの嫌われ者!')]]", // start with 'http' then url "http://anond.hatelabo.jp/", // typeof /regexp/ is function (@firefox) then regexp pattern /釣り/, ]; for (var i=0; i<filters.length; i++) { var filter = filters[i]; var type = typeof filter; var regexp; var xpath; if (type == "function") { xpath = itemxpath; regexp = filter; } else if (type == "string") { if (filter.match(/^http/)) { xpath = xpathgenURL(filter); } else if (filter.match(/^\/\//)) { xpath = filter; } else { next; } } var removeNodes = document.evaluate(xpath,document,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null); for (var j=0; j<removeNodes.snapshotLength; j++) { var node = removeNodes.snapshotItem(j); if (!regexp || node.innerHTML.match(regexp)) { node.parentNode.removeChild(node); } } } })();
アイドルマスターとか初音ミクとか。 なのでJavaSciptの勉強がてら、ニコニコ動画関連のブックマークを見えなくするユーザースクリプトを作った。DOMがよくわからないので変なところが...
フィルター方式にしたら良い感じかな。 petternに弾きたいものを正規表現で指定したら、同じドメインでも選別できる。 // ==UserScript==// @name hatebufilter// @namespace hatebufilter// @includ...
http://anond.hatelabo.jp/20080102122736 汎用性を上げてみた。 2chコピペブログ 「ネタ」タグ 増田 をはてブのhotentryから削除するgreasemonkey。 Sleipnir2のseahorseでも使える。 // ==UserScript==// @name ...
firefoxでしか確認していないけれど、URL、正規表現、XPathで指定できる様にしてみたよ。 // ==UserScript==// @name filter for Hatena::Bookmark// @namespace http://anond.hatelabo.jp/// @include http://b...
http://anond.hatelabo.jp/20080308200619 > firefoxでしか確認していないけれど、URL、正規表現、XPathで指定できる様にしてみたよ。 sugeeeeeeeeeeeee XPathってそういう風に使えるのか・・・ JavaScriptでX...
それグリとか思いつつ、前になんか作ったよな、とおもって探した。 [greasemonkey] [anond:20080302214727:title]を勝手に改造をちょっといじれば出来そうなのでメモ。 後でやるかはわからない。
ご紹介いいただいたgreasemonkeyをインストールすると、特定IDの「このエントリーを含む日記」を非表示にすることができるのですか? 週末に試してみます。
ご紹介いいただいたgreasemonkeyをインストールすると、特定IDの「このエントリーを含む日記」を非表示にすることができるのですか? 舌足らずでした。 現状のままでは出来ません。し...
ご説明ありがとうございました。 元エントリーのはてなブックマークコメントを見たらid:rikio氏がGreasemonkeyスクリプトをご紹介くださいました。 http://b.hatena.ne.jp/rikuo/20080627#bookmark-9086810 ...
ご説明ありがとうございました。 元エントリーのはてなブックマークコメントを見たらid:rikuo氏がGreasemonkeyスクリプトをご紹介くださいました。 http://b.hatena.ne.jp/rikuo/20080627#bookmark-9086810 ...
ご説明ありがとうございました。 元エントリーのはてなブックマークコメントを見たらid:rikuo氏がGreasemonkeyスクリプトをご紹介くださいました。 http://b.hatena.ne.jp/rikuo/20080627#bookmark-9086810 ...
前になんかあったよな、とおもって探した。 すっかり忘れていた。 http://anond.hatelabo.jp/20080626182343 ご参考までに。
こんなときのXPathじゃまいか。といってみる。 この機会に使ってみるといいよ。正規表現みたいにチョー便利だから。
http://anond.hatelabo.jp/20080302214727 「ネタ」がうまくいかない件は、"\u30cd\u30bf"にしたらうまく行った あと2chコピペサイトを2つ追加 とりあえず、Sleipnir2のSeahorseで確認。 // ==UserScript==// @name ...
ニコニコ関連のブクマを随時チェックしてる自分としては「ムッ」とする記事だが、 確かに興味ない人間からしたらウザイんだろうな。 確かに俺も「スイーツ(笑)」系のエントリー...