はてブでI'm Feeling LuckyしちゃうProxomitronフィルタ

このフィルタははてブの仕様変更により完全終了しました。
idea:21611周辺が実装されることがあれば復活ということで…

概要

はてなブックマークのブックマーク内検索(キーワード検索)*1を行った際に、

  • 検索結果が「1件」だった場合 → そのエントリーへ直接ジャンプ
  • 検索結果が「0件」だった場合 → Googleでの検索結果へジャンプ

することにより、はてブの「ブックマーク」としての機能性を向上させるProxomitronフィルタ『hatena B! | I'm Feeling Lucky』です。

言葉で説明してもわかりづらいと思うので、とりあえずちょっとお試しを。まずはフィルタを導入せずに、次のリンクを踏んでみてください。

  1. 検索結果が複数件ある場合
  2. 検索結果が1件の場合
  3. 検索結果が0件の場合

それでは、フィルタを導入してみましょう。

[Patterns]
Name = "hatena B! | I'm Feeling Lucky 20080805"
Active = TRUE
URL = "b.hatena.ne.jp/[^/]+/\?word=([^&]+)(^\&of=)"
Limit = 100
Match = "(<ul class="bookmarkinfo"> <li class=("
        "$AV(rss)[^>]+> $SET(2=http://www.google.co.jp/search?q=) $URL(*\?word=([^&]+)\1)|"
        "$AV(count)>\( ([#1]|(^[#1])$STOP()))"
        ")\0|"
        "$NEST( <li>,<a\s[^>]++class="tag[^"]+">*,</li> )|"
        "<a href=$AV(\1) class="bookmark">"
Replace = "\0$TST(\1=?*)$STOP()"
          "<script type="text/javascript">document.location="\2\1";</script>"

導入が終わったら、もう一度、先ほどと同じリンクを踏んでみてください。

  1. 検索結果が複数件ある場合 … 普通に検索結果のページが開きます。
  2. 検索結果が1件の場合 … ヒットしたエントリー(Proxomitron等に関するWiki)へ直接ジャンプします。
  3. 検索結果が0件の場合Googleでの検索結果へジャンプします。

…と、いうわけです。どうでしょうか?
あまりウケがよくなさそうな気がしますが…どうぞご利用ください。

過去のバージョン

初版 2008/08/03
[Patterns]
Name = "hatena B! | I'm Feeling Lucky 20080803"
Active = TRUE
URL = "b.hatena.ne.jp/[^/]+/\?word=([^&]+)(^\&of=)"
Limit = 200
Match = "(<ul class="bookmarkinfo"> <li class=("
        "$AV(rss)[^>]+> $SET(2=http://www.google.co.jp/search?q=) $URL(*\?word=([^&]+)\1)|"
        "$AV(count)>\( ([#1]|(^[#1])$STOP()))"
        ")\0|"
        "<a href=$AV(\1) class="bookmark">"
Replace = "\0$TST(\1=?*)"
          "<script type="text/javascript">document.location="\2\1";</script>"
          "$STOP()"
更新 2008/08/05
  • ヒット時(検索結果が0〜1件の時)にタグ一覧を消すようにした。タグ一覧を表示させている人はジャンプまでのレスポンスが若干早くなったかも知れません。
    • 環境によってはむしろ遅くなっているかも?
  • limitを見直した。
[Patterns]
Name = "hatena B! | I'm Feeling Lucky 20080805"
Active = TRUE
URL = "b.hatena.ne.jp/[^/]+/\?word=([^&]+)(^\&of=)"
Limit = 100
Match = "(<ul class="bookmarkinfo"> <li class=("
        "$AV(rss)[^>]+> $SET(2=http://www.google.co.jp/search?q=) $URL(*\?word=([^&]+)\1)|"
        "$AV(count)>\( ([#1]|(^[#1])$STOP()))"
        ")\0|"
        "$NEST( <li>,<a\s[^>]++class="tag[^"]+">*,</li> )|"
        "<a href=$AV(\1) class="bookmark">"
Replace = "\0$TST(\1=?*)$STOP()"
          "<script type="text/javascript">document.location="\2\1";</script>"

自画自賛で申し訳ないんですけど、ほんと便利ですこのフィルタ。やばいっすやばいっす

*1:意外と知らない人が多いとか多くないとかいう噂ですが、http://b.hatena.ne.jp/はてなid/?word=ほげほげ で、対象IDのブックマーク内をキーワード検索できます。