Ardeck-studioを便利に利用するためのプラグインを開発するための、ツールとサンプルです。
pluginを開発するあなたが編集するファイルはすべてpluginディレクトリ下に配置されており、その構造は以下のようになっています。
plugin/
├── src/
│ └── main.rs
├── actions.json
├── manifest.json
├── build.bat
└── Cargo.toml
manifest.json
は、プラグインの情報をardeck-studioに提供するものであり、以下のような内容です
{
"name": "PLUGIN_NAME", // プラグインの表示名
"version": "0.1.0", // プラグインのバージョン
"id": "6ddf86cb-013b-4545-9ff0-854ca396ee6e", // プラグインのID
"description": "Examples of ardeck-studio plugins.", // プラグインの説明
"author": "Project Ardeck", // プラグインの著者
"main": "main.exe" // 実行ファイルの名称
}
version
: 現在は特に指定はありませんが、セマンティックバージョニングに従うことを推奨します。id
: 現在は特に指定はありませんが、UUIDv4
を用いることを推奨します。description
,author
: 記述しなくても良いですが、ユーザビリティの向上のために記述することを推奨します。main
: 基本的に、main.exe
としておくほうが良いです。(現在のバージョンでは、build.bat
内でmain.exe
という名前でdist
ディレクトリにコピーするように実装されています。)
action.json
は、プラグインで実装するactionの名称とIDを指定するもので、以下のような内容です。
[
{
"id": "hello",
"name": "Hello",
"description": "Print 'Hello Ardeck!'"
},
...
]
description
: 記述しなくても良いですが、ユーザビリティの向上のために記述することを推奨します。
プラグインの開発者はmain.rs
の2行目のCopyrightの部分に必要な情報を記入する必要があります。
/*
Copyright (C) <year> <name of author>
...
例:
/*
Copyright (C) 1999 Jon Doe
...
コードは以下のように記述します。
use lib_plugin::ardeck_plugin::ArdeckPlugin;
#[tokio::main]
async fn main() {
// 初期化
let mut plugin = ArdeckPlugin::new().await;
// ここにアクションが起こった時に実行する処理を記述
// ...
// アクションの受信を開始
plugin.start_listening().await;
}
add_action_handler
を用いてアクションが起こった時に実行する処理を記述します。
先ほどの例では、action.json
にhello
というアクションを記述しました。この場合、以下のように記述します。
plugin.add_action_handler("hello", |switch_info| {
println!("Hello Ardeck!");
});
すべてのハンドラーを登録し、プラグインの動作に必要な処理のあと、一番最後にstart_listening()
を呼び出して、Ardeck Studioからのデータの受信を待機します。
plugin ディレクトリ内にあるbuild.bat
を実行します。
.\build.bat
当プロジェクトは GPL-3.0 ライセンスに基づいて付与されています。