Google 検索のフィルターの拡張機能を作りたい
代替案
単純に、 #hdtbMenus
と #appbar
のトグルを阻止するだけで良い気がしてきた。
メリット
- パーサーが不要。
- 検索種類ごとの出し分け自体が不要になる。
……方針が根底から崩れるな…。
機構
hdtbMenus は2つのクラスをトグルして rule で制御してる。
.p4DDCd {
display: none;
}
.yyoM4d {
top: 58px;
padding-top: 3px;
padding-bottom: 7px;
top: 0;
top: 68px;
}
appbar の hdtb-ab-o
の有無で、その下の #slim_appbar > div
が rule を使って表示変化してる。
.hdtb-ab-o .LHJvCe {
opacity: 0;
top: 13px;
}
解法
- hdtbMenus:
display: none; position: absolute;
をキャンセルすれば良い。 - appbar:
position: absolute; opacity: 0;
をキャンセルすれば良い。
#hdtbMenus,
#appbar #slim_appbar > div {
display: unset;
position: unset;
opacity: unset;
}
モチベ
これまで便利のために拡張機能で Google検索のパラメーターを調整していたが、メンテされてないため、自分で新調したい。
元ネタ
調査
Google検索の仕様を確認する。
期間
日付順
BUG?
完全一致/Verbatim
advanced search
as_*
= advanced search
/webhp
ホームページには今回は用はない。
params:
q
hl
/search
これらが候補
params:
-
q
- = query
- or any of:
as_epq
,as_lq
,as_oq
,as_q
,as_rq
-
oq
- = original query
hq
as_q
-
as_epq
- exact phrase query
-
as_eq
- exclude query
-
as_oq
- or query
-
as_qdr
- = query date range
- values:
- `` (empty)
h|d|w|m|y
w1|m1|m3|m6|y1|y2|y3
-
lr
- = language restrict
- values:
none
lang_local
lang_en
-
The lr parameter supports Boolean Operators
-
tbs
-
qdr:
- see
as_qdr
- see
-
li:1
- 完全一致
-
sbd:1
-
sort by datetime (asc) =
true
- no more effective?
-
sort by datetime (asc) =
- これらは以前はCSVだった様だが、現在は排他な様だ。
-
-
tbm
- = tab menu
- target values:
|bks|nws|vid
cr
ツール
これらのうち、ツールで設定できるのが以下の3項目:
-
lr
: 言語 -
as_qdr
: 期間 -
tbs=li:1
: 完全一致
ref
Below the search box, click Tools.
To add filters: In the Tools bar, click the filter and select an option.
To remove filters: In the Tools bar, click Clear.
Tip: For filters you add with one click, click the filter again to remove it.
開発
Plasmo を採用してみる
UI は TSX で書く。
API
permission: activeTab
only
Chrome
tabId
is required.
Firefox
missing tabId
= the active tab
Plasmo、 Firefox 上では動かなかった……
issues
すでに あるかも?
setup
pnpm create plasmo "Google Search Switcher" --entry=contents/inline
ref.
折角 試作したし、リンクしておく