以下の内容を「kawarirc.kis」に保存する。必要に応じ、「コマンド定義部」以下は書き換える。
この例では、ishankakuコマンド(Argument0にishankaku)を実装している。
Argument1に文字列を与え、全て半角文字だけからなる文字列の場合は1、そうでない場合は0を返す。
Argument1なしでishankakuコマンドを読んだ場合、何も返らない。
#=============================================================================
# さおりシステム部
#
# 仕様:
# ・「saori.<Argument0>」エントリが存在する場合、Argument0をコマンドとして
# 「saori.<Argument0>」エントリをget呼ぶ
# ・戻り値があれば200、戻り値が無ければ204を返す
# ・コマンド定義が無い場合、400を返す
#=============================================================================
=kis
# Argumentを返すコマンド "Argument"
function Argument $(
# 引数がなかった場合、何も返さない
if $[ $(size @arg) <= 1 ] $(return);
# System.Request.Argument?エントリの一つ目の単語を得る
get System.Request.Argument$@arg[1][0];
);
=end
# さおりコールバック
# Argument0をコマンドとする
System.Callback.OnSaoriExecute : $(
if $(size saori.${System.Request.Argument0}) $(
# コマンドがあった
setstr System.Response.Result $(get saori.$(encode_entryname ${System.Request.Argument0}));
if $(length ${System.Response.Result}) $(
# コマンドがあって、戻り値がある
setstr System.Response 200;
) else $(
# コマンドはあったが、戻り値がない
clear System.Response.Result;
setstr System.Response 204;
);
) else $(
# 存在しないコマンドだった、もしくはコマンドがない
setstr System.Response 400;
);
)
#=============================================================================
#=============================================================================
# コマンド定義部
# 以下の行に、次の仕様に従って機能を書いてください。
#
# 仕様:
# 「saori.<コマンド> : <定義>」の形式で書く
#=============================================================================
# 例:文字列が半角のみから出来ているか判定する
saori.ishankaku : $(
if $[ $(length $(Argument 1)) == 0 ] $(return);
setstr @length $(length $(Argument 1));
loop ${@length} $(
setstr @i ${-1};
# 指定文字列の@i文字目が半角文字リストにない→全角を含んでいる
if $[ $(find hankakulist $(char_at $(Argument 1) ${@i})) < 0 ] $(
return 0;
);
);
# 指定文字列に一度も半角文字以外がなかった→半角のみの文字列
return 1;
)
# 半角文字のリスト
=kis
clear hankakulist;
setstr @i 32;
while $[ ${@i} < 127 ] $(pushstr hankakulist $(chr ${@i});inc @i);
=end
kawarirc.kisを、華和梨(shiori.dll)と同じフォルダに置く。
使用しているSHIORIに、華和梨(shiori.dll)をSAORIとして登録する。
#里々の場合の登録例
@SAORI
ishankaku,shiori.dll,ishankaku
SAORIとして呼び出す。
#里々の場合の使用例
$半角判定 (ishankaku,(判定する文字列))
なお、私設「華和梨」応援団内アーカイブ「華和梨 Phase8用サンプルスクリプト詰め合わせ」にも
「20c001.kis」と言うさおり化サンプルスクリプトが同梱されています。