wedata に AppSnap 用のデータベース作ってみた
昨日から Windows 7 RC を試してるんですが、今回は各種ツールのインストールに GetIt を使ってます。
- MOONGIFT: » Windowsアプリケーションを手軽にインストール&管理「GetIt」:オープンソースを毎日紹介
- GetIt - Installing Windows Applications just got Simpler!
これが結構便利なんですが、英語圏のツールしか登録されていないのが難点。ということで国産ツールのデータをちまちま作っていこうと思います。今構築中の PC にはよほどのことがない限り GetIt/AppSnap 経由でツールを入れる縛りにしようかと。
データの作成については以下のページが参考になりました。
データの共有
で、どうせならデータを共有して誰でも編集できるようにしちゃいたい、ということで wedata にデータベース作っちゃいました。
wedata には .ini として公開するインターフェイスは無いようなので、このままの形では GetIt/AppSnap からは利用できません。Yahoo!Pipes か何かをかまして .ini に変換しようと考えていますけど、何かいい方法があれば教えてください。(実装していただけると楽です・・・。というか wedata 側で対応できれば楽なので質問中。)→変換サービス作りました
wedata へのデータ登録
wedata へのデータ登録ですが、JSON 形式で「アイテムの一括追加」というのができるようになっていますので、.ini を JSON に変換してこれを登録するのが楽です。.ini から JSON に変換するのは、たぶんこんな感じでいけると思います。
import sys import ConfigParser if sys.version_info[:2] >= (2, 6): # If using Python 2.6 or later import json else: # % easy_install simplejson import simplejson as json parser = ConfigParser.SafeConfigParser() try: parser.readfp(sys.stdin) except ConfigParser.MissingSectionHeaderError, ConfigParser.ParsingError: sys.stderr.write('parse error') exit() out = [] for section in parser.sections(): data = parser.items(section, True) # raw = True out.append({'name': section, 'data': dict(data)}) print json.dumps(out)
これを ini2json.py とかいう名前で保存して、
python ini2json.py < userdb.ini
みたいに実行すると json が出力されると思うので、これをどんどん登録していただけると。
ちなみに JSON まわりの import 処理は以下の URL を参考にしました。(というかまんまパクってます。)