カレンダー

08 | 2017/09 | 10
- - - - - 1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30

最近の記事

月別アーカイブ

カテゴリー

ユーザータグ

最近のコメント

プロフィール

run800m

Author:run800m
元・陸上競技の800m選手。
好きな食べ物はねぎともやし。

専門は機械工学・ロボティクス
興味は経済・経営・生産・心理
・地理・プログラミング・性

QLOOKアクセス解析
フィードメーター - 他人の日記を見るのか? ver.BLOG

QRコード

QR

RSS

はてなRSSに追加
livedoor Readerに追加
My Yahoo!に追加
Googleに追加
goo RSSリーダーに追加
Bloglinesに追加
Technoratiに追加
newsgatorに追加
Powered by SEO対策 RSSプラス

ブログ内検索

リンク

このブログをリンクに追加する

気まぐれ広告

ブログ内容を反映するらしい。
ホントか!?

他人の日記を見るのか? ver.BLOG
デジモノ好きのたわいもない記録 デジタルライフ
スポンサーサイト
このエントリーを含むはてなブックマーク FC2ブックマーク この記事をlivedoorクリップ! Yahoo!ブックマークに登録 Buzzurlにブックマーク
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。


最近の記事を見る

(2010/02/22)

QLOOKの解析タグのカスタマイズに新機能 (2009/05/02)

CREATIVE ZEN その11(ZEN MX発売) (2009/04/30)

あらゆるコネクタの埃(ホコリ)対策 (2009/03/31)

カテゴリごとにブログのデザインを替える方法 (2009/02/28)

T-falのIH鍋を買いました (2009/01/31)

ZoneAlarmフリー版のいらない右クリックメニューを消す方法 (2008/12/15)

CREATIVE ZEN その10(右クリックメニューを消す方法) (2008/12/12)

Spybotの右クリックメニューを消す方法 (2008/12/11)

ブログのカテゴリ分けを使いこなす (2008/11/21)


カテゴリ:スポンサー広告

Firefox 3のブックマークを解析してみた
このエントリーを含むはてなブックマーク FC2ブックマーク この記事をlivedoorクリップ! Yahoo!ブックマークに登録 Buzzurlにブックマーク
今さらな話題ですが、ついにFirefoxを2.0系から3.0系に切り替えました。

以前、公開直後にいじってみた記事も書いたんですが、その時はサブPCで導入した話で、今回はやっとメインPCの方でも導入した訳です。

メインPCのブラウザが使えなくなると困るので、アドオンとかが3.0に対応し、初期の不具合なんかが対処されるまで慎重に見ていたんですが、一週間ほど前から自動更新にも3.0系への更新が表示されるようになりましたし、そろそろいいかと思って導入しました。

一応「自動更新での不具合」が発生する可能性もあると思ったので、自動更新の表示が始まってから1週間待ちました。

もちろんプロファイルのバックアップと、アドオンの一覧のメモも忘れずにやっておきましたが、ここまで慎重に行ったおかげで、何も問題なく自動更新で3.0へと切り替えが完了しました。

サブPCの時にはウィンドウが表示されなくなり、やむなく新規プロファイルからやり直しになったので警戒していたんですが、杞憂に終わって良かったです。

ちなみにWindows XPのSP3(Service Pack 3)の導入も、自動更新に表示されるようになったので、つい最近導入しました。

こちらも一応バックアップなどをとってから行いましたが、何の問題もおきなかったというか、普段の修正パッチなどの更新とそれほど変わりありませんでした。

SP2の時のような大きな変化もありませんし、パフォーマンスが向上したのかどうなのか正直よくわかりませんね。



さて、そんな訳で私も晴れてFirefox 3ユーザーとなった訳ですが。

「フォルダ管理のデータを使って、自動的に全階層のフォルダ名をタグとしてつけてくれるアドオンできないかな。」と、以前の記事で書いたのですが、どうやらまだ存在していないようです。(※コメントで存在することを教えてもらいました!)

無いなら作るしかないかと、さっそくFirefoxのブックマークについて色々と調べてみました。

ただ、Firefoxのアドオンは作ったことがないので、とりあえずブックマークのインポート・エクスポートを使って、エクスポート⇒外部で変換⇒インポートで上書きという過程でいじってみようと考えました。

ちなみにブックマークのエクスポート・インポートは、
「ブックマーク(B)」→「ブックマークの管理」→「インポートとバックアップ(I)」
です。


まずはいじりやすいHTML形式でエクスポートしてみました。

適当なURLにタグをいくつかつけてから、エクスポート。

TITLE属性とかでタグが記述されてるのかなと思って、エクスポートされたファイル内を検索してみると……

どこにもない。

どうやらHTMLエクスポートではタグ情報はエクスポートされないようです。

仕方が無いので普通の「バックアップ(B)」を選択。

バックアップされたファイルはデフォルトではデスクトップに、「ブックマーク 2008-09-02.json」といったファイルが出力されます。

.jsonという拡張子なので「JavaScript Object Notation」と呼ばれる、Javascriptのオブジェクト表記でデータが格納されているようです。

こんな感じです。
{"title":"","id":1,"dateAdded":1220315793859375,"lastModified":1220316325859375,"type":"text/x-moz-place-container","root":"placesRoot","children":[{"title":"ブックマークメニュー","id":2,"parent":1,"dateAdded":1220315793859375,"lastModified":1220315837171875,"type":"text/x-moz-place-container","root":"bookmarksMenuFolder","children":[{"title":"最近ブックマークしたページ","id":7,"parent":2,"annos":[{"name":"Places/SmartBookmark","flags":0,"expires":4,"mimeType":null,"type":3,"value":"RecentlyBookmarked"}],"type":"text/x-moz-place","uri":"place:folder=BOOKMARKS_MENU&folder=UNFILED_BOOKMARKS&folder=TOOLBAR&sort=12&excludeQueries=1&excludeItemIfParentHasAnnotation=livemark%2FfeedURI&maxResults=10&queryType=1"},{"index":1,"title":"最近付けたタグ"....

ちなみに文字コードはUTF-8です。

カンマでキーや値が区切られており、中括弧でオブジェクト、角括弧で配列が表現されています。

元のデータは改行もなく、1列のかなり長いデータで見にくいので、自動でインデントをするプログラムを組みました。

簡単な文字列処理には、日本語プログラミング言語「なでしこ」が便利なんでよく使います。

以下がそのソース。
『ブックマーク 2008-09-02.json』をデータに読む
データをUTF8_SJIS変換
それの「,」を「,{改行}」に置換
それの『{』を『{』&改行に置換
それの『}』を『}』&改行に置換
それの『[』を『[』&改行に置換
それの『]』を『]』&改行に置換
データ=それ
全行数=(データの行数)

完成データ=「」
インデント数=0
データを反復
現列データ=それ
母艦=「{回数} / {全行数}」
(インデント数)回
完成データ=完成データ&「{タブ}」
完成データ=完成データ&「{現列データ}{改行}」
現列データから1文字右部分
終端文字=それ
もし(終端文字=『{』||終端文字=『[』)ならば
インデント数=(インデント数+1)
もし(終端文字=『}』||終端文字=『]』)ならば
インデント数=(インデント数-1)
完成データを言う
完成データを「output.txt」に保存
終わる


何も難しいことは考えずに、コンマ、中括弧、角括弧で改行して、括弧があったらインデントを増減するプログラムです。

で、これで出力した結果がこれ。
{
"title":"",
"id":1,
"dateAdded":1220315793859375,
"lastModified":1220316325859375,
"type":"text/x-moz-place-container",
"root":"placesRoot",
"children":[
{
"title":"ブックマークメニュー",
"id":2,
"parent":1,
"dateAdded":1220315793859375,
"lastModified":1220315837171875,
"type":"text/x-moz-place-container",
"root":"bookmarksMenuFolder",
"children":[
{
"title":"最近ブックマークしたページ",
"id":7,
"parent":2,
"annos":[
{
"name":"Places/SmartBookmark",
"flags":0,
"expires":4,
"mimeType":null,
"type":3,
"value":"RecentlyBookmarked"}
]
,
"type":"text/x-moz-place",
"uri":"place:folder=BOOKMARKS_MENU&folder=UNFILED_BOOKMARKS&folder=TOOLBAR&sort=12&excludeQueries=1&excludeItemIfParentHasAnnotation=livemark%2FfeedURI&maxResults=10&queryType=1"}
,
{
"index":1,
"title":"最近付けたタグ",
"id":8,
"parent":2,
"annos":[
{
"name":"Places/SmartBookmark",
"flags":0,
"expires":4,
"mimeType":null,
"type":3,
"value":"RecentTags"}
]
,
"type":"text/x-moz-place",
"uri":"place:sort=14&type=6&maxResults=10"}
,
{
"index":2,
"title":"",
"id":9,
"parent":2,
"dateAdded":1220315836359375,
"type":"text/x-moz-place-separator"}
,
{
"index":3,
"title":"ブックマークのアドオンを入手",
"id":10,
"parent":2,
"dateAdded":1220315836468750,
"lastModified":1220315836468750,
"type":"text/x-moz-place",
"uri":"http://ja.add-ons.mozilla.com/ja/firefox/bookmarks/"}.....

こんな感じです。

上に出ているのは先頭の部分なんで、「よく見るブックマーク」とか機能的なものばかり並んでいますが、実際にはこのあとの「"index":4」から、自分の登録したブックマークが記述されています。

「"children":[」という配列の形で入れ子にして、フォルダの階層構造が表現されています。

このようにブックマークしたURLごとにuri, title, id, parent, dateAdded, lastModified, type, charsetといったようなデータが記述されます。

uri, titleはそのままURLとタイトル。

idは個別にそれぞれに割り振られたID、parentは自身の親(フォルダの一つ上の階層)のid。

dataAdded、lastModifiedは、それぞれ追加と更新の日時でしょうかね。

この他にも見ていくと、色々なキーが設定されていますが、それぞれブックマークのコメントなど、詳細なデータに対応しているのでしょう。


そして一番重要なタグの情報ですが。

上で書いたフォルダ構成の中に、URLやタイトルと一緒に記述されてはいませんでした。

タグの情報はバックアップファイルの最後の方に、タグの情報として独立して記述されていました。

こんな感じ
			"index":2,
"title":"タグ",
"id":4,
"parent":1,
"dateAdded":1220315793859375,
"lastModified":1220316430875000,
"type":"text/x-moz-place-container",
"root":"tagsFolder",
"children":[
{
"title":"ZEN",
"id":3187,
"parent":4,
"dateAdded":1220316414828125,
"lastModified":1220316414953125,
"type":"text/x-moz-place-container",
"children":[
{
"title":"Creative ZEN Wiki*",
"id":3188,
"parent":3187,
"dateAdded":1220316414953125,
"type":"text/x-moz-place",
"uri":"http://wikiwiki.jp/zen/",
"charset":"EUC-JP"}
]
}
,
{
"index":1,
"title":"wiki",
"id":3189,
"parent":4,
"dateAdded":1220316415093750,
"lastModified":1220316415218750,
"type":"text/x-moz-place-container",
"children":[
{
"title":"Creative ZEN Wiki*",
"id":3190,
"parent":3189,
"dateAdded":1220316415218750,
"type":"text/x-moz-place",
"uri":"http://wikiwiki.jp/zen/",
"charset":"EUC-JP"}
]
}
,
{
"index":2,
"title":"FC2",
"id":3191,
"parent":4,
"dateAdded":1220316430625000,
"lastModified":1220316430750000,
"type":"text/x-moz-place-container",
"children":[
{
"title":"blog-entry-91.html",
"id":3192,
"parent":3191,
"dateAdded":1220316430750000,
"type":"text/x-moz-place",
"uri":"http://fc2blogmanual.blog60.fc2.com/blog-entry-91.html",
"charset":"EUC-JP"}
]
}
,
{
"index":3,
"title":"サイトマップ",
"id":3193,
"parent":4,
"dateAdded":1220316430875000,
"lastModified":1220316431000000,
"type":"text/x-moz-place-container",
"children":[
{
"title":"blog-entry-91.html",
"id":3194,
"parent":3193,
"dateAdded":1220316431000000,
"type":"text/x-moz-place",
"uri":"http://fc2blogmanual.blog60.fc2.com/blog-entry-91.html",
"charset":"EUC-JP"}
]
}
]
}

一つ一つのタグがフォルダのように分けられ、その中にそのタグを付けたURLを記述していくようです。

ここまでくれば、後は簡単。

ブックマークのフォルダ構造を解析して各URLごとにタグとして登録するフォルダ名を取得、タグとして書き込みその中に各URLを書き込むだけ。

と、思ったのですが……

idの付け方がわからない。

dateAddedとかlastModifiedは、別に時間がめちゃくちゃでもいいから同じようにコピペすればいいし、typeもコピペでいいんですが、idだけはコピペじゃまずい。

それぞれ個別に割り振られていて、さらにブックマーク群とタグ群で同じURLであっても、それぞれ違うidが割り振られていました。

しかも、順番に付けられているのかと思いきや、いきなり1000番ぐらい飛んだりもしてます。

重複はおそらく許されていないでしょうし、いいかげんにつけてFirefoxの動作に不具合が出ても困ります。

そんな訳で残念ながら、ここで断念。

やはりコツコツと手動でつけていくしかないようです。


願わくは、この記事を基に誰か偉い人がアドオンを作ってくれれば……

【追記】
Tagsifterというアドオンでフォルダ名をタグに変換することができるそうです。
コメントで教えていただきました。この機能がほんとに欲しかったので、かなり嬉しいです。
ありがとうございました!

今回興味を持ったもの

Firefox 3 Hacks Mozillaテクノロジ徹底活用テクニックFirefox 3 Hacks Mozillaテクノロジ徹底活用テクニック
江村 秀之

オライリージャパン 2008-08-27
売り上げランキング : 1065

Amazonで詳しく見る
by G-Tools

スポンサーサイト


関連した記事を見る(タグ検索)
解析 ブックマーク Firefox
最近の記事を見る

(2010/02/22)

QLOOKの解析タグのカスタマイズに新機能 (2009/05/02)

CREATIVE ZEN その11(ZEN MX発売) (2009/04/30)

あらゆるコネクタの埃(ホコリ)対策 (2009/03/31)

カテゴリごとにブログのデザインを替える方法 (2009/02/28)

T-falのIH鍋を買いました (2009/01/31)

ZoneAlarmフリー版のいらない右クリックメニューを消す方法 (2008/12/15)

CREATIVE ZEN その10(右クリックメニューを消す方法) (2008/12/12)

Spybotの右クリックメニューを消す方法 (2008/12/11)

ブログのカテゴリ分けを使いこなす (2008/11/21)


テーマ:Firefox - ジャンル:コンピュータ

カテゴリ:ソフトウェア

この記事に対するコメント
【】
TagsifterMigration toolを使えば、一気に変換できますよ

[ゲーム]
site A
 [RPG]
 site B
  [ドラクエ]
  site C
みたいなフォルダ構成なら、site Aは[ゲーム]、site Cは[ゲーム][RPG][ドラクエ]のタグが付く感じです。
【2008/09/04 23:14】 URL | test #VWFaYlLU [ 編集]

【ありがとうございます!!】
これです!こういう機能です、私が求めていたのは。
既にあったのにメインの機能じゃないから見つけられてなかったのか……
親切に教えていただいてありがとうございます!!

このブログやってて初めて得しました♪
【2008/09/05 19:30】 URL | run800m #2CltNEVM [ 編集]


この記事に対するコメントの投稿
質問・指摘・その他諸々、古い記事にも遠慮なくコメントして下さい!














管理者にだけ表示を許可する
宣伝・スパム・荒し行為でしかないものは削除します。


この記事に対するトラックバック
古い記事にも遠慮なくトラックバックして下さい!
トラックバックURL
→http://run800m.blog23.fc2.com/tb.php/36-62cd1725
この記事にトラックバックする(FC2ブログユーザー)

言及リンクのないもの、宣伝・スパム・荒らし行為でしかないものは削除します。
またトラックバック先の内容について当ブログ管理人は一切保障しませんし、責任も負いません。


上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。