便利な
みんな知ってるGoogle Chrome拡張機能のOneTab
ちょー便利なのでよく使うんですが、気軽に使えすぎてOneTab
のリストがどんどん膨れ上がってきませんか?
・・・と、こんな感じでどんどん増えて行くわけですが
OneTab
に同じURLが登録されているOneTab
側にリストを整理するような個別な機能がない- UI上でマウスを使って移動や削除はできる
- 数が多くなるとこの操作も大変
- リストの登録件数が多くなると重くなる
- PCのスペックにもよるが手元だと2,000件ぐらいから重い
- 登録や削除が重くなる
というわけで、他に需要があるとは思えないCLIを作ってみました。 自分でも使ったのも1回きりというね・・・
作ったのは
使い方は簡単でOneTab
からURLの書き出しで出力されるリストをファイルに保存して
コマンドラインで保存したファイルを指定してコマンドを実行するだけ
$ ./tlc run "your_file_path"-w
-w
オプションでHTTPリクエストでURLがアクセス可能かどうかをチェックします。
やってること
すごい単純なことしかやってませんが
OneTab
から書き出したURLリストを保存したファイルを読み込む- 読み込んだファイルからURLをキーにして
URL文字列が完全一致
するものを削除 - URLで削除したリストを今度は
名称文字列が完全一致
するものを削除 -w
オプションが指定されていた場合、URLがアクセス可能か(status == 200)かどうかチェックする
だけなので、当然ですが
- URL文字列が異なり同じWebページだった場合は違うとみなされる
- 例えばSNSからのリンクがわかるようなパラメータ付きとパラメータ無しのページなど
- 名称文字列が同一でURLが異なる場合は、同一とみなさせる
- すべてのページで同じ名称がつけられているページなど
- URLのアクセスチェックでステータス200以外の場合はアクセスできないとみなされる
- ブラウザと同等の判定はしていないため、ブラウザで見れるのNGと判定される場合がある
という制限?問題点?はあります。
ダメだったこと
簡単にできそうで、できなかったことを書いておこうかと。
- URLからHTMLの内容を取得して、取得した内容をハッシュ値で比較
- セッションIDや広告IDなどのアクセスするたびに異なる値がHTMLに含まれることがある
- これによりハッシュ値が同一のページでも毎回異なる
- URLにアクセスできるかをブラウザと同等の判断で行う
- ブラザと同等となるとブラザそのものでチェックした方が早い
- 現状ではCDNでJSを使ったリダイレクトなどしていると上手く判定できない
- リダイレクト回数が多い場合に上手く判定できない
そもそもよく考えたら、どれもダメだよねーとw
まとめ
- とりあえず動くところまでは出来ている
- golangって便利ですなぁ
- リストの重複を除く仕組みをもうちょっと考える必要がある
- 今ならGoogle Chromeのヘッドレスモードを利用できるならした方が良さそう
- CLIにしたけどWebでできた方が手軽そう
- というか
OneTab
側になんか整理する機能があってもいい気がする - そもそもこんな使い方している人が他にいないかもしれないw
以上になります。