Latest topics 近況報告
たまに18歳未満の人や心臓の弱い人にはお勧めできない情報が含まれることもあるかもしれない、甘くなくて酸っぱくてしょっぱいチラシの裏。RSSによる簡単な更新情報を利用したりすると、ハッピーになるかも知れませんしそうでないかも知れません。
の動向はもえじら組ブログで。
宣伝。日経LinuxにてLinuxの基礎?を紹介する漫画「シス管系女子」を連載させていただいています。 以下の特設サイトにて、単行本まんがでわかるLinux シス管系女子の試し読みが可能!
Page 1/1: 1
pab.na2をThunderbirdにインポートできない件 - Sep 24, 2008
Netscape Communicator 4.xのメールデータとか設定はインポートできるのにアドレス帳だけインポートできないってどないやねん。
調べてみたら、鍵になるのはnsIAbUpgraderインターフェースを実装したコントラクトIDが@mozilla.org/addressbook/services/4xUpgrader;1
のコンポーネントらしいんだけど、これ、Mozillaのソースには含まれてないんだ……オープンソースになってなかったいくつかのNetscape製コンポーネントの一つらしい。これがないせいでThunderbirdはNC4.xのアドレス帳を直接読めないんだって。なんてこった。
どうしてもやりたい場合、考えられるやり方は以下のような感じ。
- NC4.xのエクスポート機能を使う
- Netscape 7のインポート機能を使う
- Netscape 7をインポートツールとして使う
- Netscape 7の当該コンポーネントだけをどうにかして呼び出して使う
- 他のインポートツールを使う
- *.na2を直接読むプログラムを書く
というわけで調べてみてた。
まずNC4.xのエクスポート機能を使う方法。多分これが一番手っ取り早い。LDIFかCSV等に書き出して、Thunderbirdのインポートツールでそれを読み込めばいい。ただ、手動でやらなきゃいけないってのがネックで、自動化できないから今回の仕事じゃちょっと使えない。
次に、Netscape 7を使う方法。NS7には上記のコンポーネントが含まれてるから、プロファイルのインポートで普通に*.na2を*.mabに変換できる。ということで拡張機能なりパッチなりを使ってNS7をアドレス帳変換専用ツールに仕立て上げてしまえば諸々の処理を自動化できるんだけど……インストール先のchromeフォルダを見たら、昔半泣きになりながらexUnregisterer.jsなんて自作ライブラリを作ってどうにかこうにか凌いでいたあのRDF地獄があって一気にやる気消失してしまった。最近Firefoxのアドオンを作り始めた人は知らんでしょうけど、昔はオーバーレイいっこあてるのにも物凄い苦労があったんですよ……
じゃあ例のコンポーネントが含まれてるDLLを直接呼んだらどうなんだ?ってことでcompreg.datを手作業で書き換えてあれこれやってみたけど、これもうまくいかなかった。例のコンポーネントが含まれてるっぽいabupgrade.dll以外にもそれが依存してる物があるのか何なのか、コンポーネントを無理矢理登録してみてもちっとも動いてくれなかった。というわけでこれもダメ。
他のツールはないのか!と思って検索してみたらDawnとかいう色んなメーラのアドレス帳の読み書きに対応したツールがあったんだけど、試してみたら日本語の名前や住所が見事に文字化けして全然使えなかった。ていうかそもそも自動処理できないっぽいし。
そんな感じでにっちもさっちもいかなくなったので、ヤケクソでpab.na2(NC4.xのデフォルトの個人用アドレス帳。Personal Address Bookの略でpabらしい……というのはどうでもいい話ですね)のバイナリとにらめっこしながらデータ構造の解析を試みてみた。試行錯誤した結果、全部のフィールドに違う値が入ってる時に関してはなんとか個々のカードの内容を吸い出せるようにはなった(!)んだけど、複数フィールドに同じ内容が入ってたり複数カードのフィールドに同じ内容が入ってたりすると、そこだけ圧縮かかるみたいで全然うまくいかない。どういう順番でどこを読みに行けばいいのかさっぱり分からん……
ちなみに、ここまでの時点でFirefoxのコードを参考にしてnsreg.dat(NC4.xのプロファイル名とプロファイルのありかが保存されているバイナリ)の解析には成功してるので、後はホントに*.na2の中身をどうにかして取り出せさえすればインポートを自動化できるのに!という非常に悔しい状態なのです。ああもうっ。
Page 1/1: 1
カテゴリ一覧
- 全てのエントリ (2478)
- blosxom (9)
- チェックリスト (9)
- dream (1)
- イベント (71)
- 生活 (154)
- その他 (9)
- モテ・非モテ・恋愛・自己承認 (160)
- Mozilla (791)
- 拡張機能 (305)
- backtoowner (2)
- bfthumbnail (3)
- bookmarks2pane (3)
- ctxextensions (2)
- foxsplitter (4)
- greasemonkey (1)
- gsuggest (4)
- historycounter (1)
- informationaltab (2)
- multipletab (6)
- mystickies (1)
- observelipboard (1)
- openbookmarkintab (1)
- rewindforward (4)
- rubysupport (2)
- searchcache (4)
- secondsearch (5)
- splitbrowser (7)
- tabcatalog (2)
- tabextensions (2)
- tabkiller (1)
- textlink (11)
- textshadow (7)
- treestyletab (57)
- undotab (1)
- uxu (8)
- viewsourceintab (1)
- xulmigemo (50)
- extensions (1)
- treestyletab (1)
- fennec (3)
- Firefox (77)
- jetpack (2)
- その他 (135)
- Thunderbird (10)
- work (1)
- XUL (257)
- extensions (1)
- textlink (1)
- treestyletab (1)
- 拡張機能 (305)
- 絵 (63)
- moezilla (7)
- 立体物 (24)
- レビュー・感想 (205)
- 風景 (9)
- ソフトウェア (36)
- chrome (1)
- gimp (1)
- illustrator (1)
- inkscape (1)
- nsis (3)
- OpenOffice.org (1)
- safari (1)
- sai (2)
- システム再構築 (73)
- 出来事・雑感 (766)
- トリビア・ムダ知識 (22)
- 服装とか (6)
- Web技術 (69)
- CSS (3)
- JavaScript (31)
- jsdeferred (1)
- prototype.js (3)
- ruby (2)
- XML (1)
最近のコメント
- Windows 10で「デスクトップの解像度」と「アクティブな信号解像度」が一致しない現象が発生したときの解決方法
- 11/22 16:44 by えいぎょー
- 06/15 21:20 by えあ
- 06/17 21:22 by no name
- 言葉が通じない同士で対話するのが面白い「ヘテロゲニア リンギスティコ」、言葉は通じるのに対話ができないのが辛い「魚頭さんと袋さん」
- 03/21 17:50 by マチカ
- 表現の自由と表現規制に関する自分のスタンスの再確認
- 05/02 11:37 by れっか
- 05/02 20:20 by Piro
- 11/29 09:39 by p
- 激しくDISられた時は「この人は視野狭窄に陥っているオタクなんだ」と思うと辛くなくなる、というライフハック
- 08/18 10:21 by みら
- 08/18 21:28 by lovepotion
- 11/29 09:09 by p
- WSLでフォルダーを作るとWindowsでNTFSなパーティションでも大文字小文字が区別される落とし穴がある
- 12/30 21:25 by no name
- JPOP王道進行とウンコ曲と「違いが分かる人」
- 10/20 20:08 from yamj diary
- Gmail宛にメールを片っ端から転送すると元のアドレスのドメインが受信拒否されるようになることがある、という問題
- 05/18 18:43 from ひがきの日記
- 自信ありそうげな人が妬ましいし羨ましい
- 12/10 12:45 from 自分、無粋ですから
- 「元のソフトウェアがGPLだから公開できない」という誤解について
- 02/04 08:40 from 練炭ブログ
- Ubuntu 9.10からUbuntu 10.04にアップグレードした
- 08/10 12:39 from 日々想うこと