Janeのお気に入りからChalice用栞に変換

Janeのお気に入りファイル(favorites.dat)からChalice用栞ファイルに変換するPythonスクリプト
スクリプトと同じフォルダにJaneのお気に入りファイル(favorites.dat)を置いて実行。
生成されるchalice_new.bmkというファイルが、Chalice用栞ファイル。

import sys
import xml.dom.minidom
plat_cod = sys.getfilesystemencoding()
jane_fav = 'favorites.dat'
cha_fav = 'chalice_new.bmk'
if __name__=='__main__' :
 favdata = '<?xml version="1.0" encoding="UTF-8" ?>\n' +\
   unicode(open(jane_fav).read(), plat_cod).encode('utf-8')
 favxml = xml.dom.minidom.parseString(favdata)
 item = favxml.getElementsByTagName('item')
 fav_c = open(cha_fav, 'w')
 board_n = ''
 for item_e in item:
  name = item_e.getAttribute('name')
  board = item_e.getAttribute('board')
  host = item_e.getAttribute('host')
  bbs = item_e.getAttribute('bbs')
  datname = item_e.getAttribute('datname')
  if board != board_n:
   board_n = board
   line = '■' + unicode(board).encode(plat_cod) + '\n'
   line += ' [板] ' + unicode(board).encode(plat_cod) + '\t' * 7 +\
     unicode('http://%s/%s/' % (host, bbs)).encode(plat_cod)
   fav_c.write(line + '\n')
  name = ' ' + name
  url = 'http://%s/test/read.cgi/%s/%s/' % (host, bbs, datname)
  line = unicode(name + '\t' * 4 + url).encode(plat_cod)
  fav_c.write(line + '\n')
 fav_c.close()

favorites.dat例

(略)
    <folder name="PC等[Linux]" expanded="false">
      <item name="[Wireless] Linuxで無線LAN [IEEE802.11] -r3" category="PC等" board="Linux" host="pc8.2ch.net" bbs="linux" datname="1132504137"/>
      <item name="MozillaとGeckoファミリー Part6" category="PC等" board="Linux" host="pc8.2ch.net" bbs="linux" datname="1134648442"/>
      <item name="Vine Linux Thread 其の37" category="PC等" board="Linux" host="pc8.2ch.net" bbs="linux" datname="1135250731"/>
      <item name="KNOPPIX 12" category="PC等" board="Linux" host="pc8.2ch.net" bbs="linux" datname="1135377715"/>
    </folder>
    <folder name="PC等[プログラム]" expanded="false">
      <item name="推薦図書/必読書のためのスレッド PART28" category="PC等" board="プログラム" host="pc8.2ch.net" bbs="tech" datname="1133629787"/>
      <item name="Rubyについて Part 18" category="PC等" board="プログラム" host="pc8.2ch.net" bbs="tech" datname="1133988248"/>
      <item name="Perlについての質問箱 21箱目" category="PC等" board="プログラム" host="pc8.2ch.net" bbs="tech" datname="1134327348"/>
      <item name="「コンパイラ・スクリプトエンジン」相談室9" category="PC等" board="プログラム" host="pc8.2ch.net" bbs="tech" datname="1135082582"/>
(略)

chalice_new.bmk

(略)
■Linux
 [板] Linux							http://pc8.2ch.net/linux/
 [Wireless] Linuxで無線LAN [IEEE802.11] -r3				http://pc8.2ch.net/test/read.cgi/linux/1132504137/
 MozillaとGeckoファミリー Part6				http://pc8.2ch.net/test/read.cgi/linux/1134648442/
 Vine Linux Thread 其の37				http://pc8.2ch.net/test/read.cgi/linux/1135250731/
 KNOPPIX 12				http://pc8.2ch.net/test/read.cgi/linux/1135377715/
■プログラム
 [板] プログラム							http://pc8.2ch.net/tech/
 推薦図書/必読書のためのスレッド PART28				http://pc8.2ch.net/test/read.cgi/tech/1133629787/
 Rubyについて Part 18				http://pc8.2ch.net/test/read.cgi/tech/1133988248/
 Perlについての質問箱 21箱目				http://pc8.2ch.net/test/read.cgi/tech/1134327348/
 「コンパイラ・スクリプトエンジン」相談室9				http://pc8.2ch.net/test/read.cgi/tech/1135082582/
(略)

板別にカテゴリィを作成。カテゴリィ毎の一番上の栞は、板のリンク。
ログ移行はややこしそうだなあ。