ブックマークの整理が終わった
溜まりに溜まったブックマークの整理が一段落した。
Firefox の場合、以下の場所に過去のブックマークが自動でバックアップされているようなので、どれくらい減ったのか調べてみた。
%AppData%\Mozilla\Firefox\Profiles\xxxxxxxx.default\bookmarkbackups
バックアップのファイル形式は JSON で、中身はフォルダの情報とブックマークの情報がごっちゃになっているが、基本的にはこんな感じ。さすがに適当すぎるか?
とりあえず object.type の種類だけ調べてカウントするコードを Python で書いた。
# Python 3.2.2 import sys import json import collections def count(obj, table): table[obj['type']] += 1 if 'children' in obj: for subobj in obj['children']: count(subobj, table) def main(): tree = json.load(open(sys.argv[1], encoding='utf-8')) table = collections.Counter() count(tree, table) for key in table: print(table[key], key) if __name__ == '__main__': main()
結果こう↓だったのが、
7387 text/x-moz-place 104 text/x-moz-place-container
こう↓なった
4090 text/x-moz-place 70 text/x-moz-place-container
思ったより減ってないか。
そもそも何でブックマークを整理しようと思ったかというと、Firefox が重過ぎるからだ。Firefox はブックマークを溜めすぎるとブックマークの移動や削除にすごい時間がかかるようになる。その間 CPU はずっと 100% なので他の作業もできない。さすがにこれはまずいので整理することにした。少し前に Firefox は大量のタブを開いても重くならないように改修されたようだが、こっちの方も何とかしてくれないかな。
追記(2012-02-06)
よく考えたら CheckPlaces でも同じ情報が取れるので、わざわざコードを書く必要はなかったなな。
追記(2012-02-11)
よく考えたらアドオンいれなくても places.sqlite を叩けば取れるな。
SELECT CASE type WHEN 1 THEN "ブックマーク" WHEN 2 THEN "フォルダー" ELSE "その他" END AS type, count(*) AS count FROM moz_bookmarks GROUP BY type;
追記(2013-08-23)
Firefox 21 から about:healthreport で見れるようになったみたい。