読者です 読者をやめる 読者になる 読者になる

【Greasemonkey】Googleの検索結果をワンクリックで1年以内に切り替え

greasemonkey

Chromeにあってfirefoxにない?馬鹿な

プログラム書いてて理解できないところをググっても情報が古くて役に立たないこと多いから、だいたい1年以内を指定して検索し直してる。
でもいちいち検索ツールクリックして再検索するのってめんどくさい。
ワンクリックで切り替えできるgreasemonkeyプラグインないかなと探してみた。

Chromeの拡張しか見つかんねーよ糞が(火狐信者激怒)

で、つくった

f:id:akameco:20140214201229g:plain

一年期間のリンクを表示してクリックすれば検索結果が切り替わる。

インストール

今回はじめてjQueryプラグイン書いてみたけどすごい楽だ。

以下ソース

// ==UserScript==
// @name        Google1YearShow
// @namespace   https://twitter.com/akameco
// @description ワンクリック1年以内検索
// @include     https://www.google.co.jp/*
// @require     http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js
// @version     1.00
// @grant       none
// ==/UserScript==
(function($) {
    let google = {
      isYear: function(url) {
        return url.match(/tbs=qdr:y/) ? true : false;
      },
      link: function(url, text) {
        $('#appbar').after('<div id="gm_year"><a href=' + url + '>' + text + '</a></div>');
        $('#gm_year a').css({
            'color': '#777777',
            'display':'inline-block',
            'text-decoration': 'none',
            'margin': '10px 6px 0 135px'})
        .hover(
          function() {
            $(this).css('color','#222222');
          },
          function() {
            $(this).css('color','#777777');
          }
        )
        .click(function() {
            $(this).css('color','red');
        });
      }
    };
    $(document).ready(function() {
        let url = decodeURIComponent(document.URL);
        if (google.isYear(url)) {
          google.link(url.replace(/&tbs=qdr:y/,'&tbs=0'),'期間指定なし');
        } else {
          url = url.match(/&tbs=0/) ? url.replace(/&tbs=0/,'&tbs=qdr:y') : url + '&tbs=qdr:y';
          google.link(url,'一年以内');
        }
    });
})(jQuery);

url見てパラメータtbsの値が検索期間らしいので期間指定なしと1年期間を切り替えて表示してるだけ。

なお、プライベートモードでは動作しない。 原因はわからない。
バグ、改良点はプルリクをお願いします。

github.com/akameco/greasemonkey/Google1yearshow.user.js

ところで調子乗ってはじめてアニメーションgif上げたのだけれどはてなブログの今月のファイル利用量40%持ってかれたので悲しみを感じてます。以上です。