OpenKEEPS はデスクトップアクセサリ「伺か」とその互換アプリケーションに対応した準AIモジュール"華和梨"のミドルウェアです。
---------------------------------------------------------------
【 データ名 】 OpenKEEPS
【 バージョン 】 Ver.3.1.3 (2004.10.16)
【データ作成者】 OpenKEEPSプロジェクト
【 圧縮形式 】 ZIP
---------------------------------------------------------------
"OpenKEEPS" はデスクトップアクセサリ『伺か』及びその互換
アプリケーションに対応したプログラマブル準AIモジュール
『華和梨8』用のミドルウェア(スクリプトセット)です。
華和梨の本体イベント等挙動に関する煩多な処理を担当しています。
ゴーストベンダーはシェルを用意し、スクリプト辞書を書き換える
ことで用意にゴーストを作成できるようになります。
ご意見ご感想などは下記URLまでお願いします。
OpenKEEPSプロジェクト
URL: http://keeps.sourceforge.jp/
---------------------------------------------------------------
2004/10/16 Ver.3.1.3
* MATERIA起動後の起動イベント(SSP)に対応。トークはTalkMateriaExistエントリに
書く。このエントリにトークを書かなかった場合、OnBootイベントのトークを使う。
(dict-keeps-winlocal.kis、ghost-keeps-winlocal.kis)
* 「猫どりふ」起動後の起動イベント(SSP)に対応。トークはTalkNekodrifExist
エントリに書く。このエントリにトークを書かなかった場合、OnBootイベントの
トークを使う。(dict-keeps-winlocal.kis、ghost-keeps-winlocal.kis)
* 「最後にインストールしたゴースト/シェルに切り替え」タグに対応
(dict-keeps.kis)
* 汎用イベントトークを導入。イベントを「単発イベント」「開始イベント」
「完了イベント」「失敗イベント」に分類、各イベントのトークが設定されて
いない場合、汎用イベントトークを上記分類に従い使う。幾つかのイベントは、
これらの分類がされていないことに注意。イベント分類は次の通り。
- 単発イベント
起動時間通知(OnMinuteChange), 初回起動(OnFirstBoot), 起動(OnBoot),
ゴースト切り替え(OnGhostChanged), 終了(OnClose),
ゴースト切り替え(OnGostChanging), 最小化から復帰(OnWindowStateRestore),
バルーン切り替え(OnBalloonChange), SSTP中断(OnSSTPBreak),
おすすめサイト選択(OnRecommendsiteChoice),
選択肢タイムアウト(OnChoiceTimeout),
ネットワーク更新準備完了(OnUpdateReady),
ネットワーク更新が重い(OnNetworkheavt),
SSTPサイトをブラックリストに入れた(OnSSTPBlacklisting)
- 開始イベント
シェル切り替え開始(OnShellChanging), インストール開始(OnInstallBegin),
updates2.dau作成開始(OnUpdatedateCreating), NAR作成開始(OnNarCreating),
メールチェック開始(OnBIFFBegin),
ヘッドラインセンス開始(OnHeadlinesenseBgein),
時計合わせ開始(OnSNTPBegin), ネットワーク更新開始(OnUpdateBegin),
更新内容ダウンロード開始(OnUpdate.DownloadBegin),
MD5照合開始(OnUpdate.OnMD5CompareBegin)
URL渡しによるダウンロード開始(OnURLDropping)
- 完了イベント
シェル切り替え完了(OnShellChanged), インストール完了(OnInstallComplete)
updates2.dau作成完了(OnUpdatedateCreated), NAR作成完了(OnNarCreated),
メールチェック完了(OnBIFFComplete,OnBIFF2Complete),
ネットワーク更新完了(OnUpdateComplete),
MD5照合完了(OnUpdate.OnMD5CompareComplete)
- 失敗イベント
インストール失敗(OnInstallFailure), インストール拒絶(OnInstallRefuse),
メールチェック失敗(OnBIFFFailure),
ヘッドラインセンス完了(OnHeadlinesenseComplete),
ヘッドラインセンス失敗(OnHeadlinesenseFailure),
時計あわせ失敗(OnSNTPFailure), ネットワーク更新失敗(OnUpdateFaliure),
MD5照合失敗(OnUpdate.OnMD5CompareFailure),
ファイルダウンロード失敗(OnURLDropFailure)
汎用イベントトークエントリは、次の通りになる。
- 単発イベント … TalkGeneral
- 開始イベント … TalkGeneralBegin
- 完了イベント … TalkGeneralComplete
- 失敗イベント … TalkGeneralfail
(dict-keeps.kis、ghost-keeps.kis)
* 汎用イベントトーク用に、イベント情報エントリ「EventInfo」を追加。この
エントリにイベントの内容を簡単に説明した文章が入っている。汎用イベント中で
\1\s[10]\0\s[0]${EventInfo}です。\e
などと使える。EventInfo中の説明文は、次のような形になっている。
- 単発イベント … トークで「○○です」と続けられる内容
- 開始イベント … トークで「○○開始です」と続けられる内容
- 完了イベント … トークで「○○完了です」と続けられる内容
- 失敗イベント … トークで「○○失敗です」と続けられる内容
(dict-keeps-system.kis、dict-keeps-default.kis)
* イベント情報エントリの言語選択が内部的に可能。デフォルトでは日本語。
openkeeps.kisで設定可能。次のようなエントリ群にイベント情報を設定すると、
任意の言語によるイベント説明が設定できる。
kp.eventinfo.<言語の識別名>.<イベント名>
言語の識別名だが、「ja_JP」など、ロケールをエントリ名として使用可能なものに
変えた名前を推奨する。
(openkeeps.kis、dict-keeps-default.kis)
2004/09/26 Ver.3.1.2
* ユーザ定義の正規化を導入。正規化の際、同一視したい文字や削除したい文字を
openkeeps.kisで指定出来る。正規化変換テーブルは、完全にユーザが書くほかに、
既にある正規化、強い正規化を元に簡単に書くことが出来る。
ゴースト切り替え時の前のゴーストのメッセージの正規化、WinAmp反応の曲名、
アーティスト名の正規化をユーザ定義の正規化へ変更してある。
ユーザ定義の正規化コマンドはStringUserNormalizeで、使い方はStringNormalize
コマンドと同じ。ユーザ定義の正規化を行ってReferenceを参照するコマンドの、
UserNormReferenceコマンドも新設。使い方はReferenceコマンドと同じ。
(openkeeps.kis、dict-keeps-system.kis、dict-keeps-baseevent.kis、
dict-keeps-winlocal.kis、dict-keeps-default.kis)
* シングル右クリック時、当り判定領域を問わず反応することが可能なように変更。
このためのエントリ名は「C<0/1>SingleclickRight」を当てる。
(dict-keeps-baseevent.kis)
* SSPのバルーン切り替えイベントに対応。対応エントリは以下の通り。
- TalkBalloonChange.<正規化したバルーン名>
- TalkBalloonChange
スクリプトを提供してくれたmaron.kis氏(OpenKEEPS会議室3 >>2)に感謝。
(dict-keeps-baseevent.kis)
* 上記に合わせ、現在のバルーン名、バルーンのパスをSystem.Balloonエントリ、
System.BalloonPathエントリで取得できるように機能追加
(dict-keeps-baseevent.kis)
* テンプレートの誤記、説明書きの混乱しやすい点(キーワードを${}で括っている等)
を修正(ghost-keeps.kis、ghost-keeps-winlocal.kis)
2004/09/19 Ver.3.1.1
* WinAmp反応用に、「強い正規化」の考え方を導入。正規化の際に消している半角記号
と対応する全角記号も、正規化の対象とするのが「強い正規化」である。WinAmp反応
用エントリで、アーティスト名と曲名部分は、強い正規化した名前とする。
具体例を挙げる。アーティスト名「T−SQUARE」、曲名「TRUTH@」
だった場合、「TalkWinampplay.tsquare.truth」エントリが該当エントリとなる。
強い正規化を行うコマンドは$(StringStrongNormalize)で、使い方はStringNormalize
コマンドと同じ。NormReferenceコマンドに対応するものとして、StrongNormReference
コマンドを用意した。
(dict-keeps-system.kis、dict-keeps-winlocal.kis)
* マウスの右ボタンによるシングルクリックに対応。openkeeps.kisのオプション設定で
従来通りの左右ボタン区別なし、左右ボタン区別ありを選択出来る。
エントリ名として、左ボタン反応(従来のもの)のうち「Single」を「SingleRight」
を置き換えたエントリ名が右クリック用エントリとなる。「Singleclick」の場合は
「SingleclickRight」と、例外的な変化をする。
具体例を挙げる、\0側の当り判定領域名Headの右クリックに対応するには、
「C0SingleRight.Head」エントリにトークを書く。
(dict-keeps-baseevent.kis、ghost-keeps.kis)
* シェル切替反応を拡張。切替前後ともに、以下の形式のエントリを理解する。
- TalkShellChang<ing 又は ed>.<切替前のシェル名>.<切替後のシェル名>
- TalkShellChang<ing 又は ed>.<切替後のシェル名>
- TalkShellChang<ing 又は ed>
切替前後のシェル名は、いずれも正規化したものを使う。
(dict-keeps-baseevent.kis、ghost-keeps.kis)
* お勧めサイト選択時反応に、デフォルトのトークエントリを追加。
「TalkURL.<サイト名>」エントリが見つからなかった場合、「TalkURL」エントリ
を探し、その内容を話す。
(dict-keeps-baseevent.kis、ghost-keeps.kis)
* テンプレートのサンプルの誤記、解説の不明点を修正。
(ghost-keeps.kis、ghost-keeps-winlocal.kis)
2004/09/11 Ver.3.1.0
* 開発版体制に移行。次の安定番リリースはVer.3.2.0となる。
* 起動ごと、ゴーストごとに生成する偽造しにくいIDである、Ghost IDをロード時に
生成する。kp.gidに保存されている32桁の16進数がそれである。本体発行の
Unique IDと目的は一緒だが、Unique IDを発行しない本体 (非Win系互換本体等)で
ゴーストにユニークなIDが必要な時に使う。(loader.kis)
* SSP以外で長い自発トークを行う時、後続の自発トークと衝突したり、他の優先度の
低いトークと衝突するのを防ぐため、明示的な「長話モード」機能を追加。
トーク内で$(LongtalkMode)と書くと、そのトークは長話と見なす。長話モード中、
自発発話タイマを止め、ランダムトークフラグもOFFにする。この機能はトークを
話し終わると、自動的にOFFになる。
(dict-keeps-system.kis、dict-keeps-baseevent.kis)
* メニュー構築支援の一貫として、メニューフォーム機能追加。通常、\qタグから
選択肢を選ぶと、「Select.*」といった選択肢IDに1対1対応したエントリを呼び出す。
一方、メニューフォームの場合、ある選択肢グループ全体に対し、呼び出すエントリ
を決めることが出来る。インストール済みゴーストのメニューなど、機械的に選択肢
IDを割り振る場合に分かりやすい記述が出来る。通常のメニューと使い分ける。
以下、使い方の説明。
- トーク中に$(MenuForm <フォーム名>)と記述すると、選択後に
「MenuForm.<フォーム名>」というエントリに飛ぶ。あとは使用者に任される。
- $(Menu.q <選択肢の表示文字>)とすると、$(MenuForm)記述後から数えてIDを
0から連番で振った\q[]タグを生成する。メニューフォームの記述支援用である。
- $(Menu.q.id <選択肢の表示文字列> <ID>)とすると、希望のIDの\q[]タグを
生成する。\q[]タグで直書きする場合との違いは、$(Menu.q)が生成するIDの
連番が、$(Menu.q.id)でもインクリメントする点。
サンプルはghost-keeps.kis中、トーク頻度の記述のコメントアウト部分にある。
(dict-keeps-baseevent.kis、ghost-keeps.kis)
* WinAmp反応トークに、ゴースト切替反応等と類似のシステムを機能追加。
ゴースト名がアーティスト名、コメントが曲名に相当する。
「TalkWinampplay.<正規化したアーティスト名>.<正規化した曲名>」形式の
エントリ群を理解する。アーティスト名を問わず特定の曲名で反応したい時、
正規化アーティスト名として「__other__」を使用する。アーティスト名が送られて
ない場合に反応したい時、正規化アーティスト名として「__noartist__」を使用
する。TalkWinampplayエントリだけを使えば、従来互換となる。
(dict-keeps-system.kis、dict-keeps-winlocal.kis、ghost-keeps-winlocal.kis)
* WinAmp反応で、アーティスト名を認識しないバグを修正(dict-keeps-winloca.kis)
2004/09/05 Ver.3.0.10
* タスクの優先順位が機能していなかった問題を修正(ktm-kernel.kis)
* プラグイン「MicCom」による音声コミュニケートに対応。通常の対ユーザ用
コミュニケートの反応を使う。MessageWordsエントリに、音声入力された文章を
単語分解したもの(Reference2)が入っている。
2004/08/08 Ver.3.0.9
* 自発トーク間隔を600秒など長く取った時、自発トークを実質的にしなくなる問題を
修正(dict-keeps-system.kis、dict-keeps-baseevent.kis)
* 多数のさくらスクリプトタグを含む文章を返した場合、動作が遅くなる問題を修正
(dict-keeps-baseevent.kis)
* デフォルトの自発トーク間隔の設定項目を追加
(openkeeps.kis、dict-keeps-default.kis)
* KTMをVer.1.0.3にバージョンアップ(ktm-kernel.kis)
2004/07/25 Ver.3.0.8
* システム側通知の起動時間イベントが、再起動後初回のOnMinuteChangeイベントで必ず
発生していた問題を修正(dict-keeps-baseevent.kis)
* SSP上で使用時、システム側通知の起動時間が初回で分単位になっていた問題を修正
(dict-keeps-baseevent.kis)
* プラグイン辞書フォルダに置いたファイルのうち、拡張子が「.kis」のファイルのみ
読み込むように変更(loader.kis)
* Historicalコマンドを空エントリに設定した場合、無限ループになる問題を修正
(dict-keeps-survicefunc.kis)
* EntryOption.<コマンド>エントリにエントリ名を記述すると、辞書読み込みこみ
完了後、そのエントリに「<コマンド> <エントリ名>」を実行するよう変更
(dict-keeps-survicefunc.kis)
* KTMをVer.1.0.2にバージョンアップ(ktm-kernel.kis)
2004/07/18 Ver.3.0.7
* インストール完了イベント処理を、現在の各ベースウェアの実装の合わせた形に
修正(dict-keeps-baseevent.kis)
* 上に合わせ、インストールイベントのテンプレートに追記(ghost-keeps.kis)
* CROWでの0/1オリジン修正に失敗していた問題を修正(dict-keeps-system.kis)
* サービス関数に、Sequentialと逆順で呼ぶコマンドRSequential、履歴を使って重複
回避するコマンドHistorical、イベント呼び出しに同期して履歴をリセットする
重複回避コマンドNonoverlap.Syncを追加(dict-keeps-survicefunc.kis)
2004/07/10 Ver.3.0.6
* OnSSTBBreakイベントトークを呼んでいなかった問題を修正
(dict-keeps-baseevent.kis)
* インストールイベントで複数アイテム同時インストールのトークを呼んでいなかった
問題を修正(dict-keeps-baseevent.kis)
* OnKeyPressイベント処理が、Overrideモードで仕様と違う動きをする問題を修正
(dict-keeps-keypress.kis)
* OnCommunicateイベント処理が、Overrideモードで仕様と違う動きをする問題を修正
(dict-keeps-comm.kis)
* SSP上でクラッシュ後起動を検出すると、ゴーストキャッシュに入っている間、正常
終了後も必ずクラッシュ後起動扱いになる問題を修正(dict-keeps-baseevent.kis)
* OS稼働時間を、paraworkの設定に関わらず常時取得するよう変更。worktime.OS
エントリでOS稼働時間を取得できる。(dict-keeps-baseevent.kis)
* 上に伴い、ゴースト稼働時間も常時提示に変更。worktime.ghostエントリでゴースト
稼働時間を取得できる。(dict-keeps-system.kis)
* OS稼働時間の常時取得に伴い、OnNotifyOSInfoに対応(dict-keeps-baseevent.kis、
ghost-keeps-notify.kis)
* 既に対応していたOnNotifySelfInfoのテンプレート追加(ghost-keeps-notify.kis)
* OnMusicPlayイベント処理のコード整理(dict-keeps-winlocal.kis)
* OnMinuteChangeイベント処理のコード整理(dict-keeps-baseevent.kis)
2004/07/04 Ver.3.0.5a
* Nonoverlapコマンドのバグ修正(dict-keeps-survicefunc.kis)
2004/07/03 Ver.3.0.5
* 文字列正規化時、仕様と異なり1バイト記号を消さず、「_」に変換したバグを修正
(dict-keeps-system.kis)
* obsolateイベントであるOnFileDroppingへの対応廃止(dict-keeps-baseevent.kis)
* ベースウェアがninix系の場合、OnFileDroppedイベントをOnFileDrop2イベントへ
振り替えるよう修正(dict-keeps-baseevent.kis)
* テンプレート辞書でファイルドロップイベントが「廃止」扱いになっていたので、
現在の仕様に合せて加筆・修正(ghost-keeps.kis)
* 壁紙切り替えイベントトークを読まないバグを修正(dict-keeps-baseevent.kis)
* 幸水やSSTPボックスから「\![raise]」等、外部SSTPでは危険なタグを入力した時、
デバッグモードの場合はタグを無害化しないよう修正(dict-keeps-translate.kis)
* テンプレート辞書フォルダ、SAORIモジュール自動読み込みフォルダを、それぞれ
複数設定可能なように変更(loader.kis)
* テンプレート辞書の共通先頭名を設定可能なように変更。openkeeps.kis内で、
TemplatePrefixエントリに書くことで設定する。共通先頭名は複数設定することが
可能。(openkeeps.kis、loader.kis)
* ランダムトークするコマンド「Randomtalk」を追加
(dict-keeps-system.kis、ghost-keeps.kis、ghost-keeps-another.kis)
2004/06/27 Ver.3.0.4
* OnFileDrop2イベントトークが出ないバグを修正(dict-keeps-baseevent.kis)
* 文字列正規化で空白文字が消えてなかったバグを修正(dict-keeps-system.kis)
* 自発トーク・見切れ・重なりトークの排他制御を調整(dict-keeps-baseevent.kis)
* 現在とは異なる記述があったテンプレート冒頭部分を削除(ghost-keeps.kis)
* URLリストサンプルを更新(ghost-keeps-url.kis)
2004/06/20 Ver.3.0.3
* テンプレート辞書フォルダ名の変更が出来なくなっていたバグを修正(loader.kis)
* openkeeps.kis内のオプション設定で、OFF設定はエントリをコメントアウトする
他に、エントリを評価して0を返せばOFF設定になるように変更
(loader.kis、dict-keeps-baseevent.kis、dict-keeps-comm.kis)
* お勧めリスト、ポータルサイトリストをOFFにするオプションが効いていない問題を
修正(dict-keeps-baseevent.kis)
2004/06/19 Ver.3.0.2
* SSPの開発パレット内栞リロード機能、\![reload,shiori]タグへの対応が不完全な
問題を修正(dict-keeps-baseevent.kis)
* テンプレート辞書のサブフォルダ内自動検索を選択式に変更(openkeeps.kis)
* 消滅指示ボタンが常に無効になるバグを修正(dict-keeps-baseevent.kis)
2004/06/10 Ver.3.0.1
* ユーザ設定のセーブ項目の一部が、セーブされない場合があるバグを修正
(dict-keeps-system.kis)
* 一部の重要エントリのスペルミスを修正(dict-keeps-baseevent.kis)
2004/06/05 Ver.3.0.0
* 内部構造を大幅刷新
- openkeepsフォルダにシステムファイルを集約
- templateフォルダにテンプレート辞書を集約、自動読み込み化
- セーブファイル(デフォルトではdict-keeps-savedata.txt)を自動読み込み化
- KTMを導入
- 旧shiori-essential.kisをdict-system.kisに改名、整理・高速化とKTM対応実施
- 旧dict-keeps-setting.kisをopenkeeps.kisに改名、これはghost\masterに置く
- openkeeps.kisのデフォルト値を保持するファイルdict-keeps-default.kisを新設
- 旧dict-keeps.kisをdict-keeps-system.kisとdict-keeps-baseevent.kisに分割。
前者は共用のフレームワークコマンド群、後者は基本イベント・リソース等。
- openkeeps\loader.kisを読み込むと、システムファイル、テンプレート辞書、
さおりを自動検出・ロードする。
- システムファイルフォルダ、テンプレート辞書フォルダ、さおりフォルダは、
openkeeps.kis内で名前を変更可能
- テンプレート辞書フォルダ以下にサブフォルダがあれば、その中の辞書も再帰
検索して読み込む。読む辞書は「ghost-keeps*.kis」にマッチする辞書。
- openkeeps.kis内の設定で、さおりとテンプレート辞書の自動検出・ロードは、
それぞれ個別に停止することが可能
従来通りに手動で読み込んでも、不具合は起きない。
- 起動後60秒以上起動イベントを経ずにFreezeフラグが設定され続けたら、異常と
見なしFreeze解除。\![reload,shiori]タグ対策。(KTM使用)
- OnKeyPress用キーバッファの更新を、KTM使用ルーチンに切り替え
- 自発トークと時報トーク衝突回避ルーチンを、KTM使用ルーチンに切り替え
* OnFirstBoot、OnBoot等、必ず何らかのサーフィス表示がないとMATERIAで問題が
起きるイベント用に、「\1\s[10]\0\s[0]\e」を保険として返すTalkSafeSearch
コマンドを新設。
* sslex_char_atコマンドを改修。最新のタグに対応し、内部コマンドに分割実施。
* SSPのはOnVanishedイベントが起動時以外にも来る仕様に対応
* Statusヘッダが「talking」の時、自発トークタイミングを遅らせるよう変更