Googleリアルタイム検索の代わりにYahoo!リアルタイム検索を使えるようにするUserScript

Googleリアルタイム検索がなくなった。404。原因はTwitterとの契約切れとのこと。

でも使えないのはGoogleだけで、Yahoo!リアルタイム検索は使える。あとbing Socialも使えるけど使いにくい。

というわけで、Googleの検索結果からYahoo!のリアルタイム検索に飛べるようにするUserScriptを書いた。GoogleChromeMac版12.0.742.112で動作確認。他は知らない。

※注意 : バージョン0.1が入ってる人は入れ直してください。アドレスバーに chrome://extensions/ と入れると現在入ってるバージョンを確認できます。

使い方

上記リンクからインストールすると準備完了。

あとは従来のGoogleリアルタイム検索とほぼ同じ感じなのでわかると思うけど、適当にググってみて、検索結果の左側「もっと見る」を押すと、

下記のように「リアルタイム(Y!)」というのが出てくるので、これを押す。

そうすると下のようにYahoo!リアルタイム検索が開く。

終わり。

注意

Googleのリアルタイム検索が復活したら不要になると思う。まあ引き続きYahoo!の方でも検索したいというならいいけど。

イカソース

// ==UserScript==
// @name Google YahooRealtimerize
// @namespace http://nacookan.com/
// @match http://www.google.com/*
// @match http://www.google.co.jp/*
// @version 0.2
// ==/UserScript==
//
// author: nacookan
// http://nacookan.com/
// http://twitter.com/nacookan
//
(function(){
  setInterval((function(w){
    return function(){
      var q = w.document.getElementsByName('q')[0].value;
      var ul = w.document.getElementById('hidden_modes');
      if(!ul) return;

      var li = w.document.createElement('li');
      li.className = 'mitem';
      li.innerHTML = [
        '<a id="realtimerize" href="http://realtime.search.yahoo.co.jp/search?ei=utf-8&p=',
        encodeURIComponent(q),
        '" class="kl">',
        '<span class="micon" style="background-position:-40px -172px"></span>',
        'リアルタイム(Y!)</a>'
      ].join('');

      var link = w.document.getElementById('realtimerize');
      if(!link || link.href != li.getElementsByTagName('a')[0].href){
        if(link) link.parentNode.parentNode.removeChild(link.parentNode);
        ul.appendChild(li);
      }
    };
  })(window), 500);
})();

ポイントは以下。

  • 500ミリ秒ごとに、最新の検索欄の文字列をもとにリンクを作ってリストに追加してる。
  • matchのURLがかなり贅沢な感じ。
  • リアルタイム検索のアイコンは残ってたのでそのまま使えた。

最近、Googleの検索がAjax化した。初回だけじゃなく500ミリ秒ごとに処理させてるのも、matchのURLがこんなに大胆なのもそのため。