ATOKダイレクトのプラグインに仕上げる

それでは、次に、これを元にして、ATOKダイレクトのプラグインを作ってみます。とは言っても、ここまでできていれば、「atok_plugin_run_process」関数を追加するだけです。

さきほどのプログラムの末尾3行を削除して、代わりに以下のプログラムを追記します。

def atok_plugin_run_process( request_data ):
  # 入力された文字列
  input_str = request_data['composition_string']
  # 変換候補として出力するハッシュの配列変数
  kouho     = [];
  # APIを実行する
  result = get_calorie( input_str )
  for i in result:
      kouho.append({"hyoki": i})
  return {'candidate' : kouho}
完全なソースコードはここから参照してください

配布用プラグインパッケージの作成

デバッガがテストしてみて、正しく動作することを確かめたなら、配布用のプラグインとして完成させてみましょう。

ATOKダイレクトのモジュールの中に、Samples というフォルダがあり、この中にそれぞれの言語で、配布用パッケージの完全なサンプルがあります。そこで、これを元にして配布用プラグインを作ってみます。

1.まず、Python 用のサンプル一式「script_python_sample」フォルダをコピーして、「calorie_plugin」という名前にします。

2.先ほど作った「calorie.py」を「calorie_plugin/DATA」フォルダにコピーします。

3.同じくDATAフォルダにあるファイル「atok_direct_script_python_sample.xml」(スクリプトの説明が書かれている)を、「calorie.xml」と名前を変更します。サンプルのPythonファイルは削除します。

ここまでの作業で、次のようなファイル一式が揃いました。

+ <calorie_plugin>
| - LICENSE.TXT
| - SETUP.EXE
| - SETUPINFO.XML
| - ATOK_PLUGIN_MESSAGE.DLL
| + <DATA>
| | - calorie.py
| | - calorie.xml

このうち、書き換えが必要なのは「SETUPINFO.XML」と「calorie.xml」の2つです。共に中身を見れば書き換えるべき内容がわかるような分かりやすいXMLとなっています。あと、「LICENSE.TXT」は、インストール時に表示される使用許諾ですので適宜書き換えます。

4.「SETUPINFO.XML」を以下のように書き換えます。(実際には、<plugin_file_name>を「calorie.py」と書き換えるだけです。)文字コードを「UTF-8」にして保存するのを忘れないようにしてください。

<?xml version="1.0" encoding="UTF-8" ?>
<setup_info_list>
    <setup_info>
        <data_folder_name>DATA</data_folder_name>
        <plugin_file_name>calorie.py</plugin_file_name>
        <plugin_enable>true</plugin_enable>
        <only_individual_run>false</only_individual_run>
        <add_position>1</add_position>
    </setup_info>
    </setup_info_list>

5.「DATA/calorie.xml」を以下のように書き換えます。文字コードを「UTF-8」にして保存するのを忘れないようにしてください。

<?xml version="1.0" encoding="UTF-8" ?>
<plugin_info>
    <name>カロリーAPI</name>
    <name_short>カロリー</name_short>
    <description>カロリーAPIを使って食べ物のカロリーを表示します</description>
    <copyright>クジラ飛行机</copyright>
    <major_version>1</major_version>
    <minor_version>0</minor_version>
</plugin_info>

6.以上で完成です。SETUP.EXE をダブルクリックすると、インストールが始まります。

プラグイン配布用のパッケージが完成しました

インストールしてみると、さまざまなもののカロリーを気軽に調べることができます。

「ミカン」で調べてみたところ

今回は、Pythonを使って、Web APIを利用したプラグインのサンプルを作ってみました。関数を1つ実装するだけでプラグインが完成してしまうこのお手軽さは、なんとも素晴らしいものです。ATOK 2009になって、ATOKダイレクトの使い勝手がぐっと向上したので、個人的にもいろいろ作ってみたくなりました。

また、今回は紹介できませんでしたが、ユーザーがどの候補を選択したのか確定情報を取得することもできるようになっていますので、Web APIからデータを引っ張ってくるだけでなく、この情報を、Web APIにフィードバックするなんて使い方もできるでしょう。

最後に「ATOKダイレクト開発者ブログ」では、ジャストシステムの開発者の方が、新機能の紹介や、さまざまなTipsを載せていますので参考になります。また、プラグインを公開できる公式サイトを提供することも検討されているとの話もありました。ATOKダイレクトは、非常に便利な仕組みなので、ぜひ、プラグインのまとめサイトがあるといいなぁと思います。

「ATOKダイレクト開発者ブログ」

以上、本稿がATOKダイレクトのプラグイン作成の参考になれば幸いです。