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

新・日々の暮らしに疲れてない?

一人バンド、火頭工房

Chrome拡張機能 Googleの検索結果を期間フィルターする機能のワンタッチ化

ハウドゥーユードゥー、火頭です。

 

これまで2つの拡張機能を公開し、もう作るモノもないかなぁと思っていましたが、ありました、困っていること。

 

グーグルで検索するときに、検索結果の期間指定できますよね?
あれ素晴らしい機能なんですけど場合によってはちょっと面倒なんですよね。

 

グーグルがデフォルトで提供しているのは、
1年以内とか1ヶ月みたいなキリの良い期間で、半年とか2年以内はない。そういうのは自分でカレンダーみたいなのを指定することになっていて、これが非常にめんどい。

 

もっと楽に機能のオンオフが出来ればいいなと思い、キーボードのショートカットを
割り当てて、ボタン一つでオンオフが出来るようにしようと試みました。
もちろん期間はある程度自分で選べます。

 

で、作りました。
仮名「○○までの情報を処分処分♪君」
実装はいつもの如く、かなり難航しました(といっても一日で終わりましたけど)。

 

グーグル検索の挙動って面白いんですよ。
例えば、グーグルで「dog」を検索します。検索バーにはこんな風に表示されているはず↓
https://www.google.co.jp/search?q=dog&oq=dog以下略
よく見るとキーワードが q=dog という形で出ています。

 

次に、この結果に1年以内の期間指定をしてみると...
URLの一番後ろに &tbs=qdr:y こんなのが追加されます。

最後のyが年を表しています。1ヶ月や1週間を選ぶと、ここがmやwになります。

おkおk。

 

じゃ実装としては、ショートカットキーを押した時に、
表示中ページのURLを取得して、一番後ろに期間指定の文字列を追加してページをリロードさせれば...と思うじゃないですか?

実際これはこれで動きます、しかーし。

 

次、「dog」に続けて「cat」を検索します。
https://www.google.co.jp/search?q=dog&oq=dog 中略 tbs=qdr:y&q=cat
と、なんと今までの文字列を保持したまま、後ろに q=cat が追加されます。

え、どんどん後ろに追加しちゃうの? ゴチャゴチャしてくるんですけど...

 

極めつけはデフォルト以外の期間指定をした場合、

こんな感じの書式が採用されており、見るからに面倒。↓
tbs=cdr%3A1%2Ccd_min%3A2016%2F11%2F01%2Ccd_max%3A2016%2F11%2F04&tbm=
長いです。よく見ると2016年11月01日~2016年11月04日と読めます。

 

これらの仕様、オフ機能を実装している時に気づきました。
オフする時はURLの期間指定の部分だけを消せばいいや、と思っていたのですが、検索を繰り返すうちに期間指定の文字列がURLの中にもぐってしまい、消したい文字列の取得が難しくなることに気づいたわけです。

正規表現キライだし、頑張りたくないわけです。

 

アレコレ試した後、結局は仕様を逆手にとり、あまりスマートとは言えない実装に落ち着きました。動くことは動くので良しとしましょう。

 

さて、自分で使ってみて、これは中々便利です。珍しく世のためになるものを作った気がします。情報によっては2年~3年より前のは邪魔なことありますもんね、半年もしかり。

 

かゆいところに手が届く神機能であります。公開したらお知らせします。

※公開しました。↓

chrome.google.com