1 /*!
  2  * @include "_Namespace.js"
  3  * @include "CategoryList.js"
  4  * @include "CosSim.js"
  5  * @include "Edit.js"
  6  * @include "MenuItem.js"
  7  * @include "NamedVariant.js"
  8  * @include "ViewItem.js"
  9  * @include "ViewList.js"
 10  */
 11 
 12 /**
 13  * @static
 14  * @class JaneScript
 15  */
 16 var JaneScript = {
 17 	/**
 18 	 * 現在アクティブなスレビューのアイテムを取得する
 19 	 * Action:○ LateCall:○ Command:○
 20 	 * 
 21 	 * @return {_JVS.ViewItem} アクティブなViewItemのオブジェクト(オブジェクトリファレンス参照)
 22 	 */
 23 	ActiveView: function(){return new _JVS.ViewItem();},
 24 	
 25 	/**
 26 	 * NGに新しいアイテムを登録する。
 27 	 * 
 28 	 * ※アクティブなスレビューの再読込によるNGの反映は自動では行われない。
 29 	 * そのような動作をさせたい場合は、これらの関数を実行した後でNGを反映させたいスレに対して
 30 	 * スクリプトでthread.LocalReloadを実行する。
 31 	 * 
 32 	 * Action:○ LateCall:○ Command:○
 33 	 * 
 34 	 * @param {String} Item
 35 	 * @param {int} AboneType 登録するNGのあぼーんの種別
 36 	 * 0: 通常あぼーん
 37 	 * 2: 透明あぼーん
 38 	 * 4: 重要キーワード
 39 	 * @param {int} LiffeSpan アイテムの寿命
 40 	 * -1: アイテムの種類ごとの設定値に従う
 41 	 * 0: 寿命を管理されず、自動では削除されない
 42 	 * その他: その日数だけ新たなレスがなければ自動消去
 43 	 * @return {bool} 正常に登録された場合はtrue
 44 	 * すでに登録されていたり、空白文字列を登録しようとした場合はfalse
 45 	 */
 46 	AddNgName: function(Item, AboneType, LiffeSpan){return true;},
 47 	
 48 	/**
 49 	 * NGに新しいアイテムを登録する。
 50 	 * 
 51 	 * ※アクティブなスレビューの再読込によるNGの反映は自動では行われない。
 52 	 * そのような動作をさせたい場合は、これらの関数を実行した後でNGを反映させたいスレに対して
 53 	 * スクリプトでthread.LocalReloadを実行する。
 54 	 * 
 55 	 * Action:○ LateCall:○ Command:○
 56 	 * 
 57 	 * @param {String} Item
 58 	 * @param {int} AboneType 登録するNGのあぼーんの種別
 59 	 * 0: 通常あぼーん
 60 	 * 2: 透明あぼーん
 61 	 * 4: 重要キーワード
 62 	 * @param {int} LiffeSpan アイテムの寿命
 63 	 * -1: アイテムの種類ごとの設定値に従う
 64 	 * 0: 寿命を管理されず、自動では削除されない
 65 	 * その他: その日数だけ新たなレスがなければ自動消去
 66 	 * @return {bool} 正常に登録された場合はtrue
 67 	 * すでに登録されていたり、空白文字列を登録しようとした場合はfalse
 68 	 */
 69 	AddNgMail: function(Item, AboneType, LiffeSpan){return true;},
 70 	
 71 	/**
 72 	 * NGに新しいアイテムを登録する。
 73 	 * 
 74 	 * ※アクティブなスレビューの再読込によるNGの反映は自動では行われない。
 75 	 * そのような動作をさせたい場合は、これらの関数を実行した後でNGを反映させたいスレに対して
 76 	 * スクリプトでthread.LocalReloadを実行する。
 77 	 * 
 78 	 * Action:○ LateCall:○ Command:○
 79 	 * 
 80 	 * @param {String} Item
 81 	 * @param {int} AboneType 登録するNGのあぼーんの種別
 82 	 * 0: 通常あぼーん
 83 	 * 2: 透明あぼーん
 84 	 * 4: 重要キーワード
 85 	 * @param {int} LiffeSpan アイテムの寿命
 86 	 * -1: アイテムの種類ごとの設定値に従う
 87 	 * 0: 寿命を管理されず、自動では削除されない
 88 	 * その他: その日数だけ新たなレスがなければ自動消去
 89 	 * @return {bool} 正常に登録された場合はtrue
 90 	 * すでに登録されていたり、空白文字列を登録しようとした場合はfalse
 91 	 */
 92 	AddNgId: function(Item, AboneType, LiffeSpan){return true;},
 93 	
 94 	/**
 95 	 * NGに新しいアイテムを登録する。
 96 	 * 
 97 	 * ※アクティブなスレビューの再読込によるNGの反映は自動では行われない。
 98 	 * そのような動作をさせたい場合は、これらの関数を実行した後でNGを反映させたいスレに対して
 99 	 * スクリプトでthread.LocalReloadを実行する。
100 	 * 
101 	 * Action:○ LateCall:○ Command:○
102 	 * 
103 	 * @param {String} Item
104 	 * @param {int} AboneType 登録するNGのあぼーんの種別
105 	 * 0: 通常あぼーん
106 	 * 2: 透明あぼーん
107 	 * 4: 重要キーワード
108 	 * @param {int} LiffeSpan アイテムの寿命
109 	 * -1: アイテムの種類ごとの設定値に従う
110 	 * 0: 寿命を管理されず、自動では削除されない
111 	 * その他: その日数だけ新たなレスがなければ自動消去
112 	 * @return {bool} 正常に登録された場合はtrue
113 	 * すでに登録されていたり、空白文字列を登録しようとした場合はfalse
114 	 */
115 	AddNgWord: function(Item, AboneType, LiffeSpan){return true;},
116 	
117 	/**
118 	 * アドレスバーを参照するEditオブジェクト
119 	 * Action:○ LateCall:○ Command:○
120 	 * @type _JVS.Edit
121 	 */
122 	AddressBar: new _JVS.Edit(),
123 	
124 	/**
125 	 * 板一覧検索バーを参照するEditオブジェクト
126 	 * Action:○ LateCall:○ Command:○
127 	 * @type _JVS.Edit
128 	 */
129 	BoardSearchBar: new _JVS.Edit(),
130 	
131 	/**
132 	 * Janeの板一覧を格納したオブジェクトを取得する。取得したCategoryListにより、
133 	 * すべての板の列挙やURLからの板、スレの検索が可能。
134 	 * Action:○ LateCall:○ Command:○
135 	 * ;
136 	 */
137 	CategoryList: new _JVS.CategoryList(),
138 	
139 	/**
140 	 * 板またはスレを閉じる
141 	 * Action:× LateCall:○ Command:○
142 	 * @param {Object} Item 閉じる対象の板(Boardオブジェクト)またはスレ(ThreadItemオブジェクトまたはViewItemオブジェクト)
143 	 */
144 	Close: function(Item){},
145 	
146 	/**
147 	 * 文字列のCosine Similarityに基づく比較を行うためのCosSimオブジェクトを作成する
148 	 * 
149 	 * Action:○ LateCall:○ Command:○
150 	 * 
151 	 * @return {_JVS.CosSim} 作成されたCosSimオブジェクト
152 	 */
153 	CreateCosSimObject: function(){return new _JVS.CosSim();},
154 	
155 	/**
156 	 * グローバル座標系でのマウスカーソルの位置を取得する
157 	 * Action:○ LateCall:○ Command:○
158 	 * @return {_JVS.NamedVariant} カーソル位置情報を格納したNamedVariant
159 	 * NamedVariant.X カーソルのX座標
160 	 * NamedVariant.Y カーソルのY座標
161 	 */
162 	CursorPos: function(){return new _JVS.NamedVariant();},
163 	
164 	/**
165 	 * JaneViewの実行ファイルパスを取得する
166 	 * Action:○ LateCall:○ Command:○
167 	 * @return {String} Jane2ch.exeのフルパス名
168 	 */
169 	ExeName: function(){return "C:\\JaneDoeView\\Jane2ch.exe";},
170 	
171 	/**
172 	 * モーダルの入力ダイアログを表示し、ユーザーが入力した文字列を返す
173 	 * Action:× LateCall:○ Command:○
174 	 * @param {String} Caption 入力ボックスのタイトルバーに表示する文字列
175 	 * @param {String} InitialText テキストボックスの文字列の初期値
176 	 * @return {_JVS.NamedVariant} ユーザーの入力結果を保持したNamedVariant
177 	 * ・NamedVariant.Canceled
178 	 * ユーザーがOKをクリックした場合はFalse, OKしないでダイアログを閉じた場合はtrue
179 	 * ・NamedVariant.Text: String
180 	 * ユーザーが入力した文字列
181 	 */
182 	InputBox: function(Caption, InitialText){return new _JVS.NamedVariant();},
183 	
184 	/**
185 	 * 既存のメニュー項目にスクリプト用メニューを追加する
186 	 * 追加できる場所はメニューのルートまたはコンテナ(一つ以上のサブメニューを持つ)の項目
187 	 * Action:○ LateCall:○ Command:○
188 	 * @param {String} MenuName スクリプト用のメニューを追加したいメニューの名前
189 	 * (menuconf.iniのセクション名) 例: "MainWnd.MainMenu"
190 	 * @param {String} ItenMane スクリプト用のメニューを追加したいメニューの親アイテム名
191 	 * (menuconf.iniのメニュー名) 例: "MainWnd.MainMenu"
192 	 * ヌルストリングの場合はMenuNameのルートが親アイテムになる
193 	 * @param {int} Index 親アイテムの中での順番。Index=0が最上位、親アイテムの項目数よりも
194 	 * 大きな数字を設定した場合は最下位に追加される
195 	 * @return {_JVS.MenuItem} 追加されたMenuItemオブジェクト
196 	 */
197 	InsertMenu: function(MenuName, ItenMane, Index){return new _JVS.MenuItem();},
198 	
199 	/**
200 	 * URLがビューアが対応する形式の拡張子を持っているかを確認する
201 	 * (swfは対象外)
202 	 * Action:○ LateCall:○ Command:○
203 	 * @param {String} URL 画像かどうかを調べたいURL
204 	 * @return {Boolean} URLがビューアで対応した画像の拡張子を持っていればtrue、そうでなければfalse
205 	 */
206 	IsImageURL: function(URL){return true;},
207 	
208 	/**
209 	 * アクションの中から呼び出せない処理(メッセージボックスの表示など)をアクションのコンテキストの外で
210 	 * 安全に呼び出すために使用する
211 	 * Action:○ LateCall:○ Command:○
212 	 * @param {Function} Func 呼び出したい関数
213 	 * Funcとして設定できるのは、一つのVariantを引数として受け取る関数。
214 	 * 例: function CalleeFunction (funcObject) {};
215 	 * Funcの呼び出しはアイドルループなどJaneのシステムがメッセージ処理をするタイミングで行われる
216 	 * @param {Object} funcParam Funcに渡す引数
217 	 */
218 	LateCall: function(Func, funcParam){},
219 	
220 	/**
221 	 * トレースに文字列を出力する
222 	 * Action:○ LateCall:○ Command:○
223 	 * @param {} Text
224 	 */
225 	Log: function(Text){},
226 	
227 	/**
228 	 * 既存のメニュー項目の親アイテム上での位置を調べる。
229 	 * 特定の位置にメニューを挿入する場合、この関数の結果を元にInsertMenuのIndexを決める
230 	 * Action:○ LateCall:○ Command:○
231 	 * @param {String} MenuName 親アイテム上での位置を調べたいメニュー項目が属するメニューの名前
232 	 * (menuconf.iniのセクション名) 例: "MainWnd.MainMenu"
233 	 * @param {String} ItemName 親アイテム上での位置を調べたいメニュー項目の名前
234 	 * (menuconf.iniのメニュー名) 例: "MainWnd.MainMenu"
235 	 * @return {Number} 指定したメニュー項目の、親アイテム上での順番(0が最上位)
236 	 */
237 	MenuIndex: function(MenuName, ItemName){return 0;},
238 	
239 	/**
240 	 * URLまたはスレ、板を開く。
241 	 * ※対象がビューアで開かれるURLだった場合、Number以降のパラメータは無視される
242 	 * Action:× LateCall:○ Command:○
243 	 * @param {Object} target URL/Thread/Board
244 	 * 開きたい対象のURL(文字列)またはスレ(ThreadItemオブジェクト)または板(Boardオブジェクト)の
245 	 * いずれかを指定する
246 	 * @param {int} Number 対象がスレの場合、開いてからNumberが示すレス番にジャンプする。それ以外では無視される
247 	 * @param {int} Operation 開くときにサーバからのデータ取得を行うか、ローカルだけで取得を行わないかを設定する
248 	 * 0: なにもしない ※まったく無意味だが、内部処理上必要なために存在
249 	 * 1: ローカル
250 	 * 2: 適宜取得
251 	 * 3:更新チェック
252 	 * 4: 時間に応じて
253 	 * @param {bool} NewTab trueならば新しいタブで開くことを強制する
254 	 * falseならば、現在アクティブなスレタブがスレ表示用のビューならばアクティブタブで、
255 	 * そうでなければ新しいタブで開く
256 	 * @param {bool} Relative 新規タブで開く場合、Relativeがtrueならば現在のアクティブタブの隣に開かれる
257 	 * @param {bool} BackGround 開いたタブを選択状態にしない
258 	 */
259 	Open: function(target, Number, Operation, NewTab, Relative, BackGround){},
260 	
261 	/**
262 	 * Windows APIのPeekMessage関数を呼び出し、バッファのWindows Messageを処理する。
263 	 * 長い時間がかかる処理の途中に挟むことでUIがフリーズするのを防ぐことができるが、
264 	 * その中で受け付けたユーザー操作により使用中のオブジェクトの状態が変化したり
265 	 * 破棄される可能性があり、使用には細心の注意と適切な処理を要する
266 	 */
267 	ProcessMessage: function(){},
268 	
269 	/**
270 	 * メッセージダイアログを表示する。WSHのWScript.Echoに対応する。
271 	 * Action:× LateCall:○ Command:○
272 	 * @param {String} Text メッセージボックスに表示する文字列
273 	 */
274 	ShowMessage: function(Text){},
275 	
276 	/**
277 	 * Windows APIのSleep関数を呼び出し、一定時間だけ動作を停止する
278 	 * Action:○ LateCall:○ Command:○
279 	 * @param {int} millisec 停止する時間、単位はミリ秒
280 	 */
281 	Sleep: function(millisec){},
282 	
283 	/**
284 	 * スレビュー検索バーを参照するEditオブジェクト
285 	 * Action:○ LateCall:○ Command:○
286 	 * @type _JVS.Edit
287 	 */
288 	ThreadSearchBar: new _JVS.Edit(),
289 	
290 	/**
291 	 * Windows APIのtimeGetTimeの値を取得する。
292 	 * Action:○ LateCall:○ Command:○
293 	 * @return {int} timeGetTime API関数によるシステム時刻
294 	 */
295 	TimeGetTime: function(){return 0;},
296 	
297 	/**
298 	 * スレビューの一覧を保持するViewListオブジェクトを取得する
299 	 * ViewListから、各スレビューへのアクセスやユーザー定義の新規スレビュー作成が可能
300 	 * 
301 	 * Action:○ LateCall:○ Command:○
302 	 * 
303 	 * @return {_JVS.ViewList} スレビュー一覧を参照するViewListオブジェクト
304 	 */
305 	ViewList: function(){return new _JVS.ViewList();}
306 };
307 
308