V2Cwikiは移転しました



V2C公式サイト

  • V2C Top
  • V2C 使用法
Wiki Main Menu

  1. V2Cwiki Top
  2. 導入の手引
  3. よくある質問
  4. 使い方ガイド
  5. 機能設定ガイド
  6. 設定ファイル
  7. 外部コマンド
  8. レス表示スタイル
  9. アイコン
  10. Tips
  11. 企画
  12. その他
Twitter

  1. Twitterはじめに
  2. Twitterよくある質問
  3. Twitter使い方ガイド
  4. Twitter機能設定ガイド
  5. 設定ファイル
  6. Tweet表示スタイル
  7. TwitterTips
  8. Twitter企画
リンク


リファレンス


※上記の広告は60日以上更新のないWIKIに表示されています。更新することで広告が下部へ移動します。

V2Cスクリプトリファレンス

v2cオブジェクト

V2Cとのやりとりに使用します

プロパティ 説明
contextオブジェクト context contextオブジェクトを取得します。代入はできません。systemスクリプトから開いた場合はundefinedが返ります
historyオブジェクト history historyオブジェクトを取得します。閲覧履歴を参照することができます。
お気に入りタブコレクションオブジェクト favorites お気に入りタブコレクションオブジェクトfvsにを返す。お気に入り全体に関する操作をすることができます
boardオブジェクト[] boards V2Cに登録されている全板オブジェクトのArrayを返します
java.io.File appDir ランチャーのフォルダ(JWS版またはJARファイル直接起動の場合はnull)
java.io.File saveDir V2C保存用フォルダ
レスペインオブジェクト resPane 現在選択されているレスペインオブジェクトを返す(2ペインモードでもnullではない)
String status ステータスバーの文字列を取得します(代入により設定可能)
bbsオブジェクト bbs2ch 2chのBBSオブジェクトを返す
bool online V2Cがオンライン状態の時にtrueを返す
bool interrupted 外部からの中断要求(スレ一覧用スクリプトでユーザによる停止ボタンのクリック等)があった時にtrueを返す
余談:内部的にはThread.currentThread().isInterrupted()を返しているだけです。)
レスラベルオブジェクト[] resLabels V2Cで設定されているレスラベルのArrayを返します
bool compSoundEnabled 更新完了音を再生する設定がオンの時にtrueを返します。
String clipboardText クリップボードの文字列を取得します。スクリプトにはクリップボードへのアクセス許可が必要です。(${SCRIPT:Tc})
戻り値 メソッド 説明
void beep() Beep音を鳴らす
void setStatus(String s) ステータスバーにメッセージを表示する。スクリプトの実行が終了するとメッセージはクリアされるので、実行後もメッセージを残したい場合はv2c.context.setStatusBarText(s)を使用する。
v2c.status = sと同等
void alert(String s) ダイアログでメッセージsを表示する
bool confirm(String s) 文字列sを「OK」・「Cancel」ボタン付きのダイアログに表示し、「OK」ボタンによりダイアログが閉じられた時のみtrueを返す
void print(String s) sをスクリプトコンソールに追加する。(「表示」メニューの「スクリプトコンソール…」でスクリプトからのメッセージを出力するためのウィンドウが開く。スクリプトコンソールが開いていない時のメッセージは無視される。)
void println(String s) sをスクリプトコンソールに追加した後改行する。(同上)
String prompt(String s,String v) 文字列sの下に初期値vの入力欄を表示し、「OK」ボタンによりダイアログが閉じられた時のみ入力欄の値を文字列として返す(その他の場合はnull)
void exit() V2Cを終了する。
(スクリプトにV2C終了の許可が必要です。(${SCRIPT:Rx})
void restart() V2Cを再起動する。再起動できない場合はそのまま制御を返す。
(スクリプトにV2C終了の許可が必要です。(${SCRIPT:Rx})
void exec(String s) 文字列sをコマンドラインとして実行します。
WindowsのFirefoxで2chのHPを表示させる例:
v2c.exec('"C:\\Program Files\\Mozilla Firefox\\firefox.exe" http://www.2ch.net/');
void exec(String[] l) lを引数のArrayとして実行します。lの最初の要素は実行ファイルへのパスを指定してください。
WindowsのFirefoxで2chのHPを表示させる例:
v2c.exec(['C:\\Program Files\\Mozilla Firefox\\firefox.exe','http://www.2ch.net/']);
空白を含むパスを使用する場合は空白で区切られてしまうなど意図しない動作になる場合があるのでこちらのメソッドを推奨します。
boardオブジェクト getBoard(java.net.URL u, String n) URLがuの板がV2Cに登録されている場合その板の板オブジェクトを返す。(v2c.getBoard(u)と同じ。)
uが板のURLとして登録されてない場合はURLがuで名前がnの板を新規に作成して返す。
※uが外部板のURLの以外の場合は板を新規作成してくれないようです)
threadオブジェクト getThread(java.net.URL u, String t, Integer n) V2CがuをスレッドのURLと認識できる場合に対応するスレッドオブジェクトを返す。
(t、nは省略可)
 t … thのスレタイが不明の場合スレタイとして使用される(デフォルト値null)
 n … thのレス数がn以下の場合レス数として使用される(デフォルト値0)
主に未取得スレッドのdatインポート用。
boardオブジェクト getLocalBoard(String d) フォルダ名がdのローカル板オブジェクト(該当するローカル板が存在しない場合はnull)を返します
resオブジェクト(セパレータオブジェクト) createResSeparator(String s) レスとレスの間に文字列sを表示するセパレータオブジェクトを作成します。
セパレータオブジェクトは下のboard.createLocalThread(st,rl)で使用します。
セパレータオブジェクトsepが表示する文字列はsep.text・sep.setText(s)で取得及び設定することができます。
注意:表示文字列中のタブコードと改行はスペースに置換されます。
String getSelectedText() 選択テキストを取得
String replaceSelectedText(String s) キーボードフォーカスを持つテキスト入力コンポーネントの選択テキストを置換文字列sで置換。
void reloadSettringFile(String s) ファイル名sの設定ファイルを再読み込みする。
現在再読み込みできるのは
'samba24.txt', 'msgkw.txt', 'AAList.txt',
'ImageViewURLReplace.dat', 'ReplaceStr.txt',
'ReplaceStr_Tw.txt', 'URLExec.dat', 'URLExec2.dat',
'URLExec3.dat', 'NGBE.txt'で、
'samba24.txt'は2chの'samba24.txt'を再読み込みする。
例:v2c.reloadSettingFile('ImageViewURLReplace.dat')
void reloadSystemScript(String s) ファイル名sのシステム系スクリプトを再読み込みする
例:v2c.reloadSystemScript('menu.js')
レスラベルオブジェクト getResLabel(String sn) 名前がsnのレスラベル(存在しない場合はnullを返します
オブジェクト記憶メソッド
 以下の関数はスクリプトファイルのパスに関連付けられており、
 スクリプトの内容を変更してもスクリプトのパスを変更しない限り同じオブジェクトを参照することができます。
 オブジェクトが記憶されるのはV2Cが終了するまでの間です。グローバル変数のような感じで使えます
戻り値 メソッド 説明
void setScriptObject(Object v) オブジェクトvを設定する
Object getScriptObject() setScriptObject(v)で設定されたオブジェクトvを返す
Object putProperty(String s, Object v) キーsに対してオブジェクトvを保存する。
2回目以降の呼び出し時は、保存されたオブジェクトを返して、新しいオブジェクトvを保存する動作に変わる。初回、またはremoveProperty後はnullが返る
Object getProperty(String s) キーsに対応するオブジェクトを返す
Object removeProperty(String s) キーsに対応するオブジェクトを保存する。
2回目以降の呼び出し時は、保存されたオブジェクトを返して、削除する動作に変わる。初回、またはremoveProperty後はnullが返る
ネットワーク接続に関するメソッド
 openURL以下の関数はスクリプトに外部へのネットワーク接続の許可が必要です。(${SCRIPT:S})
戻り値 メソッド 説明
java.net.URL expandShortURL(java.net.URL u, bool r) URL uが短縮URLと思われる場合は展開し、
それ以外の場合はuを返す。rの値により以下のように動作する:
 true … V2C内部にURLを展開した結果のキャッシュが存在しない場合はネットワーク接続により展開する。注意:展開が終了するまでv2c.expandShortURL(u,true)はブロックします。展開にはスクリプトに外部へのネットワーク接続の許可は不必要です。
 false … V2C内部のURLを展開した結果のキャッシュのみを参照する。
String readURL(java.net.URL u) u(URL文字列)の内容を取得する。プロトコルがHTTPでContent-Typeが"text/"で始まっている場合のみ内容が文字列として返される。例外的にパーミッション無しで利用可能。Content-Lengthが不明の場合のダウンロード上限は16MB。
HttpRequestオブジェクト createHttpRequest(java.net.URL u) URLuをGETするHttpRequestオブジェクトを作成する。
HttpRequestオブジェクト createHttpRequest(java.net.URL u,String d) URLuに対してデータdをPOSTするHttpRequestオブジェクトを作成する。(dはそのまま送信されるので適切にencodeされている必要がある。)
void openURL(java.net.URL u, bool bu, bool bnt, bool bbg) URL u が板またはスレッドのURLの時にスレ一覧またはレス表示欄で開きます。
bu: trueの時更新する
bnt: trueの時新タブで開く
bbg: trueの時裏で開く。
bu, bnt, bbgは省略可。デフォルト値はそれぞれtrue, true, false。
void browseURL(java.net.URL u) URL u をブラウザで開く。JDICがインストールされている時は内部ブラウザで開く。
void browseURLExt(java.net.URL u) URL u を外部ブラウザで開く。
void browseURLDefExt(java.net.URL u) URL u をデフォルト外部ブラウザで開く
ファイルパス取得関連メソッド
戻り値 メソッド 説明
java.io.File getScriptDataFile(String fn) スクリプトがデータを保存するためのパス(ファイル名はfn)をJavaのFileオブジェクトとして取得する。ファイルの場所はスクリプトフォルダ内の"scdata"フォルダ。
java.io.File getScriptSubFile(String n) スクリプトファイル名から拡張子を除いたフォルダ内の名前nのファイルパスをjavaのFileオブジェクトとして返します。
注意:スクリプトファイル名が'.'(ピリオド)を含まない場合やスクリプトファイル名が拡張子のみの場合はnullを返す。
例: V2C\script\test.js から実行した v2c.getScriptSubFile('state.txt') は V2C\script\test\state.txt に相当するFileオブジェクトを返す
ファイル・フォルダ操作関連メソッド (ファイル読み込みの許可が必要 ${SCRIPT:Frw})
戻り値 メソッド 説明
bool copyFileInfo(java.io.File f, java.io.File d) ファイルfをフォルダdにコピーし、成功した場合trueを返します。フォルダdが存在しない場合には作成します。)
bool copyFile(java.io.File f0, java.io.File f1) ファイルf0をファイルf1にコピーし、成功した場合にtrueを返します
ファイル読み込み関連メソッド (ファイル読み込みの許可が必要 ${SCRIPT:Fr})
戻り値 メソッド 説明
String readFile(Java.io.File f,String c) ファイルfを文字コードcのテキストファイルとして読み込んだ結果の文字列を返す。
cを省略した場合、文字コードは適当に推測
String readStringFromFile(java.io.File f,String c) readFile(f,c)と同じ
String[] readLinesFromFile(java.io.File f,String c) ファイルfを文字コードcのテキストファイルとして読み込んだ結果の文字列を改行で分割したArrayを返す(各行末の改行コードは削除される)
cを省略した場合、文字コードは適当に推測、各行末の改行コードは削除される
byte[] readBytesFromFile(java.io.File f) ファイルfの内容をバイト列として返す
ファイル書き込み関連メソッド
(ファイルが既に存在する場合は上書きされる。安全のためV2C保存用フォルダ(v2c.saveDir)直下のファイルへの書き込みはエラーになる。ファイル書き込みの許可が必要 ${SCRIPT:Fw})
戻り値 メソッド 説明
void writeStringToFile(java.io.File f,String s,String c) ファイルfに文字列sを文字コードcで書き込む。(cを省略した場合文字コードはデフォルトの文字コード。)
void writeLinesToFile(java.io.File f,String[] sl,String c) ファイルfに文字列のArrayslを文字コードcで書き込む。cを省略した場合、デフォルトの文字コードとなる。(各行末には改行コードが追加される。)
void writeBytesToFile(java.io.File f,byte[] bl) ファイルfにバイト列blを書き込む。

historyオブジェクト

注意:履歴にスレッドが存在しない場合もlengthが0のArrayを返す。

プロパティ 説明
threadオブジェクト[] threads レス表示履歴に存在するスレッドオブジェクトをJavaのArrayとして返す
threadオブジェクト[] postThreads レス表示履歴に存在する書き込んだことのあるスレッドオブジェクトをJavaのArrayとして返す

contextオブジェクト

コマンドの実行に必要な情報を取得します。
※ユーザーではなくV2C本体から呼ばれるsystemスクリプトではcontextオブジェクトは使用できません。

プロパティ 説明
String commandLabel スクリプトを起動したコマンドのラベル(ポップアップメニューに表示されている文字列)を取得できます。
String argLine 外部コマンド設定のスクリプトファイル名(とその後の空白)より後の文字列。(nullを返さずに""を返す。)
スクリプト独自の引数を用意してユーザーに指定させてスクリプトの動作を変更させたい場合に使用します。
String[] args v2c.context.argLineを分割して作成した引数のArray(引数が存在しない時はnullを返さずにargs.length==0のArrayを返す。)
resオブジェクト res ポップアップメニューを表示した、またはマウスジェスチャを開始したレスオブジェクト
スレッド全体ではなく実行した場所のレス単体に対して処理したい場合に使います。
threadオブジェクト thread スレッドに関する情報を保持するオブジェクト
linkオブジェクト link リンクコマンドの対象リンクオブジェクト
linkオブジェクト[] links 選択テキストに含まれるリンクオブジェクトのArray
String selText レス表示欄のユーザーが範囲指定した選択範囲のテキスト
Integer[] filteredResIndex スクリプトが起動された時にレス表示欄に表示されていたレスのレス番号Array
表示範囲内のレスではなくレス表示欄全体のレスが対象
Integer[] checkedResIndex スクリプトが起動された時にレス表示欄でチェックされていたレスのレス番号Array
java.awt.Point mousePos スクリプト開始時のマウスポインタ位置をJavaのPoint pとして返します。X,Y座標はp.x,p.yです。
戻り値 メソッド 説明
void setStatusBarText(String text) スクリプトの実行終了後に文字列textをステータスバーに表示
void setClipboardText(String text) スクリプトの実行終了後に文字列textをクリップボードにコピー
void setPopupText(String text) スクリプトの実行終了後に文字列textをポップアップ表示
void setPopupHTML(String text) スクリプトの実行終了後に文字列textをHTMLとしてポップアップ表示する。
注意:一部のGIFファイルを表示する時にCPU使用率が上昇したままになるという問題があります。
例:"<html><body>あああ</body></html>"
void setPopupFocusable(bool) 2c.context.setPopupFocusable(true)を実行するとsetPopupText(text)・setPopupHTML(text)で表示したポップアップでキーボード入力ができるようになる。
また、ポップアップの文字列を選択、ドラッグができるようになります。
ポップアップで文字列が選択されている場合、ポップアップメニューから選択テキスト用外部コマンドを実行できます(注:v2c.context.threadはnullになってます)
主にsetPopupHTML(s)で表示したフォームにキーボード入力する場合を想定している。
void setMaxPopupWidth(Integer size) v2c.context.setPopupText(text)・v2c.context.setPopupHTML(text)のポップアップの最大幅をsizeに設定する
void setRedirectURL(bool) スクリプト内で関数redirectURL(u)を定義しておきv2c.context.setRedirectURL(true)を実行すると、
HTMLポップアップでリンクをクリックした時にredirectURL(u)(uはjavaのURLオブジェクト)が呼ばれます。
redirectURL(u)がjavaのURLオブジェクトまたはURL文字列を返した場合に限りそのURLがWebブラウザで開かれます。
redirectURL関数内で更にsetRedirectURL(true);を指定して多段ポップアップさせたい場合。setPopupHTMLに渡すHTML文字列中のリンクタグは絶対パスで指定しないとポップアップしてくれません
× <a href="/img/sample.gif">テスト</a>
○< href="http://www.v2c.com/img/sample/gif">テスト</a>
void setTrapFormSubmission(bool) スクリプト内で関数formSubmitted(u,sm,sd)を定義しておき
v2c.context.setTrapFormSubmission(true)を実行すると、
HTMLポップアップでフォームを送信した時にformSubmitted(u,sm,sd)が呼ばれます。
フォームの送信処理は自動ではしてくれません。formSubmitted関数内でcreateHttpRequest等で自前でPOSTリクエストを送信する必要があります
void closeOriginalPopup() formSubmitted(u,sm,sd)内でv2c.context.closeOriginalPopup()を実行すると
呼び出し元のポップアップウィンドウを閉じる。
元のポップアップが既に閉じられている場合でもエラーにはならない
void setFilteredRes(resオブジェクト[] resArray) スクリプトの実行終了後resArrayで与えられたレスオブジェクトの列をレス表示欄で抽出して表示する。(レスは番号でソートした後重複を除いたものが表示されます。)
レスポップアップからも実行可能です
void setFilteredResIndex(Integer resIndex) スクリプトの実行終了後resIndexで与えられた数字列をレスのインデックスとしてレス表示欄で抽出して表示する。(同上)
void setPopupRes(resオブジェクト[] resArray) resArrayで与えられたレスオブジェクトの列をスクリプトの実行終了後ポップアップ表示する。(同上)
void setPopupResIndex(Integer resIndex) resIndexで与えられた数字列をレスのインデックスとしてスクリプトの実行終了後ポップアップ表示する。(同上)
void setPostMessage(String text) スクリプトの実行終了後書き込み欄が開いていない場合は開き、書き込み欄の内容を文字列sで置き換える(レスポップアップからも実行できます)
void insertToPostMessage(String text) スクリプトの実行終了後書き込み欄が開いていない場合は開き、書き込み欄のカーソル位置に文字列textを挿入する(レスポップアップからも実行できます)
void setResToJump(resオブジェクト res) スクリプトの実行終了後レスオブジェクトresのレスを表示する
void setResIndexToJump(Integer resIndex) スクリプトの実行終了後インデックスがresIndexのレスを表示する
void setResPaneText(String caption, String targetTabName, bool b) スクリプトの実行終了後に文字列captionをレス表示欄のタブ(タブ名targetTabName)に表示します。
bは省略可能で、true(デフォルト)の時に新しいタブで表示します。
void setResPaneHTML(String caption, String targetTabName, bool b) スクリプトの実行終了後に文字列captipnをHTMLとしてレス表示欄のタブ(タブ名targetTabName)に表示します。
bは省略可能で、true(デフォルト)の時に新しいタブで表示します。
注意:一部のGIFファイルを表示する時にCPU使用率が上昇したままになるという問題があります。
void closeOriginalPanel() redirectURL(u)・formSubmitted(u,sm,sd)内でv2c.context.closeOriginalPanel()を実行すると呼び出し元のレス表示欄タブまたはポップアップウィンドウを閉じる。
元のレス表示欄タブまたはポップアップが既に閉じられている場合でもエラーにはならない。
void setPopupID(String idName) setPopupTextやsetPopupHTMLで表示するポップアップにID文字列 idName を設定します。
ダミーオブジェクト getPopupOfID(String idName) ID idName が設定されたポップアップが表示中の場合はダミーオブジェクトを、表示していない場合はnullを返します。
注意:将来はダミーオブジェクトではなくポップアップに関する情報を保持するオブジェクトを返す可能性があります。
void setCloseOnMouseExit(bool) trueを指定するとsetPopupTextやsetPopupHTMLで表示されたポップアップからマウスを外した時にそのポップアップを閉じます。
void setDefaultCloseOnMouseExit(bool) setCloseOnMouseExit(bool)のデフォルト値を設定します。スクリプトのどこかで一度実行しておくと、以後同じ値bのsetCloseOnMouseExit(bool)を実行する必要がありません。
void setCloseOnLinkClick(bool) boolがfalseの時setPopupHTML()で表示したポップアップのリンクをクリックした時にそのポップアップを閉じません。(デフォルトはtrue。)
またboolがfalseの時redirectURL()によるポップアップはマウスポインタの位置に表示されます。

お気に入りタブコレクションオブジェクト(fvs)

v2c.favoritesが返すオブジェクトfvsによってお気に入り全体に関する操作をすることができます。

プロパティ 説明
Integer count お気に入りタブの総数
戻り値 メソッド 説明
お気に入りタブオブジェクト getFavorite(Integer i) インデックスがiのお気に入りタブオブジェクトを返す
お気に入りタブオブジェクト createFavorite(String n) 名前がnのお気に入りタブを作成する

お気に入りタブオブジェクト(fav)

fav.appendItem(f,o), fav.insertItem(f,o,i), fav.removeItem(o)のoにはお気に入りアイテム・板・スレッドオブジェクトを使用できます。
お気に入りの追加、削除に類する関数を使用するスクリプトにはお気に入り変更の許可が必要です。(${SCRIPT:Vf})

プロパティ 説明
String name お気に入りタブの名前
お気に入りアイテムオブジェクト root お気に入りタブのルートフォルダオブジェクト(お気に入りアイテムオブジェクト)を返す。
ルートフォルダ名としても扱える
戻り値 メソッド 説明
bool contains(お気に入りアイテムオブジェクト o) oがお気に入りアイテムオブジェクトまたは板またはスレッドオブジェクトでfavがoを含む場合にtrueを返す
お気に入りアイテム追加・削除の関数 (要:${SCRIPT:Vf}
 お気に入りの追加、削除に類する関数を使用するスクリプトにはお気に入り変更の許可が必要です。(${SCRIPT:Vf})
void removeAll() お気に入りタブの内容をルートフォルダのみ残して全て登録解除する
void clearFolder(String f) お気に入りフォルダfの内容を空にする
お気に入りアイテムオブジェクト appendFolder(お気に入りアイテムオブジェクト o, String s) お気に入りフォルダfに名前がsのフォルダを追加し、追加したフォルダオブジェクトを返す
お気に入りアイテムオブジェクト insertFolder(お気に入りアイテムオブジェクト f, String s, Integer i) お気に入りフォルダfのインデックスiに名前がsのフォルダを挿入し、挿入したフォルダオブジェクトを返す。
お気に入りアイテムオブジェクト appendItem(お気に入りアイテムオブジェクト f, お気に入りアイテムオブジェクト o) お気に入りフォルダfにoを追加する
お気に入りアイテムオブジェクト insertItem(お気に入りアイテムオブジェクト f, お気に入りアイテムオブジェクト o, Integer i) お気に入りフォルダfのインデックスiにoを追加する
void removeItem(お気に入りアイテムオブジェクト o oの登録を解除する

お気に入りアイテムオブジェクト(o)

プロパティ 説明
String label アイテムの名前
Integer childCount oがフォルダの場合はフォルダに含まれるアイテムの総数を、それ以外の場合は-1を返す
boardオブジェクト board oが板の場合は板オブジェクトを、それ以外の場合はnullを返す
threadオブジェクト thread oがスレッドの場合はスレッドオブジェクトを、それ以外の場合はnullを返す
戻り値 メソッド 説明
お気に入りアイテムオブジェクト getChild(Integer i) oがフォルダの場合はインデックスiの子アイテムを、それ以外の場合はnullを返す

bbsオブジェクト(bbs)

プロパティ 説明
bool is2ch BBSが2ch、bbspinkの時にtrueを返します
bool is2cheq BBSが2ch互換の時にtrueを返します
bool shitaraba BBSがしたらばの時にtrueを返します
bool machi BBSがまちBBSの時にtrueを返します
bool twitter BBSがTwitterの時にtrueを返します
戻り値 メソッド 説明
boardオブジェクト getBoard(key) bbsが2chの場合、板キーがkeyの板オブジェクトを返す。
板が存在しない時または2ch以外のBBSではnullを返す。
(例:v2c.bbs2ch.getBoard('software'))

boardオブジェクト(bd)

プロパティ 説明
bbsオブジェクト bbs 板オブジェクトboardからBBSオブジェクトを返します。
java.net.URL url 板のURL
String name 板名
String key 板キー (板キーをparseIntで数値型に変換して1000倍するとスレ立ち時間(ミリ秒)が分かります)
String anonymousName SETTING.TXTに設定されている名無し(存在しない場合は空文字列)
String allAnonymousName SETTING.TXTに設定されている名無しとユーザが設定した名無しの列(存在しない場合はサイズ0の列)
bool local 板オブジェクトがローカル板の場合trueを返す
threadオブジェクト[] threadsWithLog 板bd内のログのある全スレッドのArray(ログのあるスレッドが無い場合はlengthが0のArray)を返します。
java.util.Map settingMap 板オブジェクトbdのSETTING.TXTをMap mとして返します。
(mはnullの可能性があります。)
例:2chのソフトウェア板の場合、m.get(null)、m.get('BBS_NONAME_NAME')はそれぞれ"software@soCCCncCosWvo"、"名無しさん@お腹いっぱい。"を返します。
戻り値 メソッド 説明
threadオブジェクト getThread(key) 板オブジェクトbd内のスレッドキーがkのスレッドオブジェクト(該当するスレッドが存在しない場合はnull)を返します。
数値又は文字列を指定できますが数値を推奨。
8桁未満の場合、板のリロードが出来ない、8桁未満を文字列で渡すと初回にエラーが出る。等問題が出てきます
threadオブジェクト createLocalThread(String title, resオブジェクト resArray) 内容がresArray(レスオブジェクトまたはセパレータオブジェクトを要素とするArray)で
スレタイがtitleのスレッドをローカル板bdに作成し、対応するスレッドオブジェクトを返します。
注意:スレッドの作成にはスクリプトにファイル書き込みの許可が必要です。(${SCRIPT:Fw})
threadオブジェクト getThread(k, u, t, n) 板bdのスレッドキーkのスレッドを既に取得している場合
そのスレッドオブジェクトを返す。(bd.getThread(k)と同じ。)
それ以外の場合、uを移転前の板のURLとして新規に作成したスレッドオブジェクトを返す。
(uがnullの場合はbdの現在のURLから取得したと見倣す。)
スレタイt(デフォルト値null)とレス数n(デフォルト値0)を指定することもできます。
u、t、nは省略可
void addNGID(id, d, t, w) 文字列idを板bdのNGIDに追加する。(d、t、wは省略可)
d … idが出現した時刻(ミリ秒単位のUNIX TIME)。この時刻を含む日±αでNGIDが有効になる。dが0以下の場合はbd.addNGID(*)を実行した時刻からのオフセットと見做される。(デフォルト値は0)
bd.addNGID(id,-86400000); // 昨日のNGIDとして追加する例
t … trueの場合透明非表示(デフォルト値はfalse)
w … ウェイト(-9≦w≦9、デフォルト値は0)
既にidがNGIDに登録されている場合、その設定が
wより低い優先度の場合tとwの値が反映される。
wと同じウェイトかつwが0以下かつtがtrueの場合tの値が反映される。(透明非表示になる。)
その他の場合tとwは無視される
注意:追加したNGIDを既に表示されているレスに適用するにはv2c.resPane.checkNG(bd)を実行してください。
注意:非表示・キーワード設定ダイアログが表示されている間bd.addNGID(*)は処理をスキップします。(何もしません。)

レスペインオブジェクト(rp)

プロパティ 説明
Integer columnCount レス表示欄カラムの数を返す
カラムオブジェクト[] columns レス表示ペインに表示されているカラムオブジェクトのArrayを返す
Integer selectedColumnIndex 選択されているカラムのインデックスを返す。(代入により設定可能)
カラムオブジェクト selectedColumn 選択されているカラムオブジェクトを返す
Integer tabCount 開いているタブの数
Integer selectedIndex 選択されているタブのインデックス
threadオブジェクト selectedThread 選択されているタブのスレッドオブジェクト
threadオブジェクト[] threads レス表示ペインに表示されているスレッドオブジェクトのArray(レス表示タブが表示されていない場合はサイズ0のArrayを返す。Arrayの各要素はnullではない。)
戻り値 メソッド 説明
threadオブジェクト getThread(Integer tabIndex) インデックスtabIndex(最初のタブの0番目と見なされます)のタブに表示されているスレッドオブジェクト
void checkNG() 全てのレス表示タブの非表示を再チェックする。
void checkNG(null) rp.checkNG()と同じ。
void checkNG(threadオブジェクト th) スレッドthのレス表示タブが表示されている場合そのレス表示タブの非表示を再チェックする。
void checkNG(boardオブジェクト bd) 板bdに属するスレッドのレス表示タブの非表示を再チェックする。
res.addNGID(*)で非表示の再チェックを実行しないようになったので
非表示の再チェックが必要な場合はrp.checkNG(bd)を使用してください。

カラムオブジェクト(col)

レスペイン内のスレッドタブ群に対してやりとりするためのオブジェクト

プロパティ 説明
Integer tabCount 開いているタブの数
Integer selectedIndex 選択されているタブのインデックス
threadオブジェクト selectedThread 選択されているタブのスレッドオブジェクト
threadオブジェクト[] threads レス表示ペインに表示されているスレッドオブジェクトのArray(レス表示タブが表示されていない場合はサイズ0のArrayを返す。Arrayの各要素はnullではない。)
戻り値 メソッド 説明
threadオブジェクト getThread(Integer tabIndex) インデックスtabIndex(最初のタブの0番目と見なされます)のタブに表示されているスレッドオブジェクト
void openThread(th, bu, bnt, bbg) (カラムの選択状態に関係無く)レス表示欄カラムcolでスレッドthを開きます。
bu,bnt,bbgはth.open(bu,bnt,bbg)の引数と同じです。(省略可)
注意:スレッドの更新にはスクリプトに外部へのネットワーク接続の許可が必要です。(${SCRIPT:S})

threadオブジェクト(th)

未取得レス数は(th.resCount-th.localResCount)で、スレッド更新前のレス数は(th.localResCount-th.newResCount)で計算できます。

プロパティ 説明
boardオブジェクト bbs スレッドオブジェクトthreadからBBSオブジェクトを返します。
java.net.URL url スレッドのURL
String title スレッドタイトル
String key スレッドキー
java.io.File localFile ローカルに保存されたログファイル
Integer localResCount 既得レス数
Integer resCount localResCount、またはスレッド更新後に更新したスレ一覧にこのスレッドが含まれていた場合はそのレス数
Integer newResCount 新着レス数
Integer newMarkResCount スレッドの新着境界より後のレス数
Integer newMarkResIndex 新着境界直後のレスのインデックスを返す。新着境界が表示されていない場合は既得レス数を返す。(代入により設定可能。)
Integer speed スレッドの1日当りのレス数
java.io.File sytleDir レス表示スタイルフォルダ
boardオブジェクト board スレッドが属する板のboardオブジェクト
java.io.File styleFile 通常の掲示板ではth.styleDir\style.txtに、Twitterではth.styleDir\style_tw.txtになります
bool unread スレッドに未読レスが存在する時にtrueを返します
bool local スレッドがローカルスレッドの時にtrueを返します
bool live スレッドがdat落ちしていないと推測される場合にtrueを返します
bool lock スレッドのレス表示タブがロックされている場合にtrueを返します。(代入により設定可能)
Integer columnIndex スレッドが開かれているカラムのインデックス(開かれていない場合は-1)を返す。
Integer viewResIndex 表示されている最初のレスのインデックスを返す。(代入により設定可能。)
レスラベルオブジェクト postResLabel そのスレッドで自分の書き込みに自動で付くラベルを返す。ラベルを自動で付けない場合はnullを返す。
Integer[] postResIndex そのスレッドで自分の書き込みに自動で付くラベルが付いているレスのインデックスをJavaのArrayとして返す。注意:自分の書き込みが存在しない場合やラベルを自動で付けない場合もlengthが0のArrayを返す。
戻り値 メソッド 説明
resオブジェクト getRes(Integer i) インデックスがiのレスオブジェクト(nullの可能性がある)
bool update() スレッドを更新する(外部へのネットワーク接続の許可が必要 ${SCRIPT:S})。実行には
・th.update()の実行回数はスレ一覧の巡回数に加算され、残り巡回数が0の時は更新されない
・各スレッドに対してスクリプトでの更新の間隔は10秒以上(別スクリプトや同一スクリプトの複数回実行を含む)
という制限があり、この制限によりスレッドが更新されなかった場合update()はfalseを返す。
bool updateAndWait() スレッドを更新した後更新完了まで待つ。何らかの制限のためスレッドを更新できなかった場合はfalseを返す。
注意:EventDispatchThread(GUI処理用のスレッド)で実行された場合はスレッドを更新せずfalseを返す。
void resetUnread() スレッドの未読状態をリセットします。(th.unreadがfalseを返すようになる。)
void open(bool bu,bool bnt,bool bbg) スレッドをレス表示欄で開きます。bu: trueの時更新する、bnt: trueの時新タブで開く、bbg: trueの時裏で開く。bu, bnt, bbgは省略可でデフォルト値はそれぞれtrue, true, false。
注意:スレッドの更新にはスクリプトに外部へのネットワーク接続の許可が必要です。(${SCRIPT:S})
書き込み欄オブジェクト openWritePanel() 対応する書き込み欄を開いて書き込み欄オブジェクトを返します。(書き込み欄を開くことができなかった場合はnullを返す。)
書き込み欄オブジェクト mayOpenWritePanel() スレッドが書き込み可能な場合にのみ書き込み欄を開いて書き込み欄オブジェクトを返します。(書き込み欄を開くことができなかった場合はnullを返す。)
void close() スレッドのレス表示タブを閉じます。(レス表示タブが開いていない場合もエラーになりません。)
void clearNewMark() スレッドがレス表示タブで開いている場合、新着境界表示をクリアします。(レス表示タブが開いていない場合はresetUnread()を実行します。)
void importPropertyFrom(threadオブジェクト th0) threadオブジェクトth0からプロパティをインポートする。インポートするプロパティは最後にインポートした時の設定が使用される。
注意:スクリプトにプロパティ変更の許可が必要です。(${SCRIPT:Vp})
void movePanelTo(Integer ic,Integer it) スレッドのレス表示タブをインデックスicのカラムのインデックスitのタブに移動する。ic・itが-1の場合は最後のカラム・タブに移動する。
void importDatFile(java.io.File f,String n,bool o) ファイルfをdatとしてインポートします。n,oは省略可能。datからスレタイを取得できなかった場合にn(デフォルトはnull)がスレタイになり、o(デフォルトはtrue)がfalseの場合にはスレッドをレス表示欄で開きません。
void importDatBytes(java.lang.Byte bl,String n,bool o) Javaのバイト列blをdatとしてインポートする。n,oに関してはimportDatFileと同じ

resオブジェクト(res)

プロパティ 説明
bbsオブジェクト bbs レスオブジェクトresからBBSオブジェクトを返します。
Integer number レス番号
Integer index レスインデックス (最初のレスは0)
String name 名前欄
String mail メール欄
String date 投稿時刻
Integer time 1970/01/01から投稿時刻までの経過時間(ミリ秒単位)、計算できない場合は0
String id ID
String beID BeのID(基礎番号、存在しない場合は0
String aux 補助情報(まちBBSのIP等datフォーマットの投稿日時&時間&ID欄を半角区切りにした4個目以降(BeIDは除く)
String message 本文
bool ng レスが非表示の場合にtrue
String ngReason 非表示の理由を示す文字列を取得する。非表示でない場合はnull
resオブジェクト ngOrigin 連鎖非表示の元となったレスオブジェクトを取得する。連鎖非表示でない場合はnull
bool ngTransparent resが透明非表示の場合にtrueを返す
Integer weight 非表示のウェイトを取得する
Integer refCount 被参照数
Integer idCount 同じIDを持つレスの総数(スレッド内)
linkオブジェクト[] links 本文に含まれるリンク
Integer[] refResIndex レスを参照しているレスのレス番号のArray(参照しているレスが存在しない場合はnull)
レスラベルオブジェクト resLabel レスresに設定されているレスラベル(設定されていない場合はnull)を返します。
String source resのソース(datの行)を返す。datファイルが存在しない場合nullを返す。
呼び出す度にdatファイルを開くので、連続して呼び出すような処理の場合readStringFromFileでdatを読み込んで直接取得したほうが良い
java.net.URL url resのURLを返す。対応するURLが存在しない場合はnullを返す
bool twitter resがTwitterのTweetの場合にtrueを返す。
bool retweet resがリツイートされたTweetの場合にtrueを返す。Twitterレス以外ではnullを返す
java.lang.Long tweetID resのTweetIDをjavaのLongとして返す。Twitterレス以外ではnullを返す
ユーザオブジェクト user resのユーザオブジェクトを返す。Twitterレス以外ではnullを返す
String clientName resが投稿されたクライアント名を返す。Twitterレス以外ではnullを返す
戻り値 メソッド 説明
void setResLabel(レスラベルオブジェクト rl) レスresにレスラベルrlを設定します。rlがnullの場合はレスのラベルをクリアします。
rescheck.jsでは使用できません
void setResLabelOfName(String sn) レスresに名前がsnのレスラベルを設定します。snがnullまたは空文字列の場合はレスのラベルをクリアしますが、それ以外でsnに該当するレスラベルが存在しない場合は何もしません。
rescheck.jsでは使用できません
void addNGID(bool t, Integer w) resのIDをNGIDに追加する
t … trueの場合透明(デフォルト値はfalse)
w … ウェイト(-9≦w≦9、デフォルト値は0)
t及びwは省略可
注意:4文字以下のIDはNGIDに追加できません。
rescheck.jsでは使用できません
void setNGRes(bool t) resを非表示にする。t(デフォルト値はfalse)がtrueの場合は透明非表示。
tは省略可。
rescheck.jsでは使用できません
void setNoNGRes() resを常に表示する。rescheck.jsでは使用できません。
void resetNGRes() resの非表示設定をクリアする。

ユーザオブジェクト(usr)

res.userプロパティから受け取れるTwitterユーザー情報のオブジェクト

プロパティ 説明
java.lang.Long id ユーザーID
注意:Twitter検索とそれ以外ではユーザIDが違います。
String userName ユーザ名
String name 名前 (res.nameと同じ)

linkオブジェクト(lnk)

プロパティ 説明
java.net.URL url リンクのURL
java.io.File imageCacheFile リンクの画像キャッシュファイル(キャッシュが存在しない場合はnull)
bool type_IMAGE リンクオブジェクトlnkのURLが画像の拡張子で終わっているかまたはImageViewURLReplace.datにマッチする行がある場合にtrueを返します。
あまり当てにならない。datファイル開いて正規表現等で調べたほうが良い

レスラベルオブジェクト(rl)

res.resLabel,th.postResLabel等で取得できるレスラベルのオブジェクト。

プロパティ 説明
String name レスラベルの名前

書き込み欄オブジェクト(wp)

th.openWritePanel(),th.mayOpenWritePanel()で対応する書き込み欄オブジェクトを取得できます。

プロパティ 説明
threadオブジェクト thread スレッドオブジェクトを返します。注意:スレ立ての場合は板・BBSオブジェクト取得等の限られた用途でしか使用できません。
入力欄オブジェクト title タイトルの入力欄オブジェクトを返します。直接文字列を代入することもできます
入力欄オブジェクト name 名前の入力欄オブジェクトを返します。直接文字列を代入することもできます
入力欄オブジェクト mail メールの入力欄オブジェクトを返します。直接文字列を代入することもできます
入力欄オブジェクト message 本文の入力欄オブジェクトを返します。直接文字列を代入することもできます
bool preview 書き込みプレビューを表示している時にtrueを返します(代入により表示・非表示を操作可能)
bool sage sageチェックボックスがチェックされている時trueを返します(代入によりチェックを設定可能)
戻り値 メソッド 説明
void close() 書き込み欄を閉じます

入力欄オブジェクト(tc)

wp.title, wp.name, wp.mail, wp.message … 書き込み欄オブジェクトから、それぞれスレタイ入力欄、名前欄、メール欄、本文入力欄に対応するオブジェクトを取得できます。

プロパティ 説明
String text 入力されているテキストを返します(代入により設定可能)
String selText 選択範囲のテキストを返します(代入により設定可能)
Integer caretPos キャレットの位置を整数で返します(代入により設定可能)
Integer selStart 選択開始位置を整数で返します(代入により設定可能)
Integer selEnd 選択終了位置を整数で返します(代入により設定可能)
戻り値 メソッド 説明
void select(Integer is, Integer ie) isからieまでの範囲を選択します
void copy() コピーします
void paste() ペーストします
void cut() カットします

HttpRequestオブジェクト(hr)

HTTPのファイル取得でリクエストヘッダの設定やPOSTデータの送信ができます。
まず最初にHttpRequestオブジェクトを作成します。
※setRequestProperty(name,value)はgetContentsAs*()の前に、その他はgetContentsAs*()の後に実行する必要があります。

戻り値 コンストラクタ 説明
HttpRequestオブジェクト v2c.createHttpRequest(u) URLuをGETするHttpRequestオブジェクトを作成する。
URLuは文字列、java.net.URL、どちらでも使えます
HttpRequestオブジェクト v2c.createHttpRequest(u, d) URLuに対してPOSTメソッドで送るHttpRequestオブジェクトを作成する。
(dはそのまま送信されるので適切にencodeされている必要がある。)
dは主にmulti-partフォームデータを文字列で指定します。
文字コードが間違っているとうまく行きません。
var moji = java.lang.String("文字列");
d = moji.getBytes("MS932");
のように変換するとShiftJISで送れます。UTF-8の場合は文字のまま送っても平気ですが。ファイルをアップロードする場合等はgetBytes("UTF-8")で文字列をUTF-8のbyte列に変換してファイルのバイト列と組み合わせましょう。
multi-partフォームデータの書式は説明を省きますがグーグルですぐ見つかります。
firebugを開いてネットタブを開いた状態でファイルアップロード等をすると実際にどのような書式でデータを送信したか確認することが出来ます。
プロパティ 説明
Integer responseCode HTTPレスポンスコード。リクエストの成否の判別に使用します。
例:成功=200 NotFound=404 転送=301
String responseMessage HTTPレスポンスメッセージ
String contentType Content-Typeの値 text/html等フォーマットの判別に使います。MIME Content-Type参照
Integer date Dateの値(1970/01/01からの経過時間(ミリ秒単位))
Integer lastModified Last-Modifiedの値(1970/01/01からの経過時間(ミリ秒単位))
java.util.map allResponseHeaders 全レスポンスヘッダ
戻り値 メソッド 説明
void setRequestProperty(String name, String value) 名前nameのリクエストヘッダフィールドに値valueを設定する。
例: hr.setRequestProperty("Content-Type", "image/gif");
firefoxのfirebug等で接続崎とのヘッダのやりとりを調べられます。
クッキーを送りたい場合はnameにSet-Cookieを指定します。
String getResponseHeader(String name) 名前nameのレスポンスヘッダフィールドの値(同名のフィールドが複数存在した場合は最後の値)
firefoxのfirebug等で接続崎とのヘッダのやりとりを調べられます。
クッキーを受け取りたい場合はnameにcookieを指定します。
java.lang.byte[] getContentsAsBytes() URLuから取得した内容
java.lang.String getContentsAsString() hr.getContentsAsBytes()を文字列に変換したもの

コールバック関数(V2Cから呼び出される関数)

POPUP関連のコールバック関数

v2c.context.setTrapFormSubmission(true)
void formSubmitted(java.net.URL u, String sm, Object sd)
  • u … URL
  • sm … 'GET'または'POST'の文字列
  • sd … FORMのデータ
    setRedirectURL(b)・redirectURL(u)とよく似た方式で、
    v2c.context.setTrapFormSubmission(true)を実行しておくと
    HTMLポップアップ内のFORMを送信する時にスクリプトのformSubmitted(u,sm,sd)が呼ばれます。
    formSubmitted()の返り値によらずFORMは送信されません。
    v2c.context.setTrapFormSubmission(true)で設定された値はformSubmitted()を呼ぶ前にリセットされます。
    使用例は:
    function formSubmitted(u,sm,sd) {
      v2c.println('URL: '+u);&br();
      v2c.println('method: '+sm);
      v2c.println('data: '+sd);
    }
    
    var vcx = v2c.context;
    vcx.setPopupHTML('<html><body style="margin:10px;"><form action=""><input type="submit" value="action" name="name"></form></body></html>');
    vcx.setTrapFormSubmission(true);
    
v2c.context.setRedirectURL(true)
java.net.URL redirectURL(java.net.URL u)
  • u … URL
    setRedirectURL(true)を実行しておくとHTMLポップアップ上でリンクをクリックした場合redirectURLが呼ばれます。
    redirectURL関数内で再度setRedirectURL(true)を指定すると多段ポップアップします。
    ただし、ポップアップのHTML内のリンクは絶対参照でないとリンクと認識してくれなくてポップアップできません
    多段ポップアップできない例:
    ○ <a href="http://www.google.com/image/">テスト</a>
    × <a href="./image/">テスト</a>
    
    redirectURL(u)のイメージは:
    function redirectURL(u) {
      if (uを独自に処理したい) {
        uの処理; // setPopupHTML等
        return null;
      } else if (別のURLをWebブラウザで開きたい) {
        return 別のURL;
      } else {
        return u; // そのままWebブラウザで開く(デフォルトの動作)
      }
    }
    

systemスクリプトのコールバック関数

システムスクリプトを変更した場合はファイル→再読み込みで各システムスクリプトを再読み込みすることが出来ます。
スクリプト中で"_v2c_"で始まる名前は使用しないで下さい

imagecache.jsのコールバック関数

imagecache.js
void getDownloadNewImagesLimit(threadオブジェクト th, Object ov)
スレッドレッドを更新後、新着画像ファイルのダウンロードを開始する前に呼ばれる。返値は無視される。
  • th … スレッドオブジェクト
  • ov … 新着画像ファイルダウンロードの設定を保持するオブジェクト
    • ov.maxdays … 初期値として「リンク・画像・動画」設定「新着画像ダウンロード」枠内の「D日前まで」のDが設定されています。必要に応じてこの値を変更してください。
    • ov.maximgs … 初期値として「リンク・画像・動画」設定「新着画像ダウンロード」枠内の「N枚まで」のNが設定されています。必要に応じてこの値を変更してください。

rescheck.jsのコールバック関数

下のような自明な関数は未定義にしておく方が実行速度が上がります

function beginCheck(th,cx) {return true;}
function checkRawText(res,cx) {}
function checkAA(res,cx) {}
function checkNG(res,cx) {}
function endCheck(th,cx) {}

本文に特定の文字列を含むレスをAAレスと判定する例:

function checkAA(res,cx) {
  if (res.message.indexOf('( ・e・)')>=0) {
    res.setAA(true);
  }
}

レス読み込みの処理は以下のような順番になります。

  1. beginCheck(th,cx) (cx.checkRawText・cx.checkAA・cx.checkNGがtrue)
  2. 各レスについて以下の繰り返し
    1. "<>"によるフィールドの分離
    2. checkRawText(th,cx)
    3. ReplaceStr.txtによる置換
    4. レスの解析(時間・IDの分離や本文のリンク化等)
    5. 通常の非表示・キーワードのチェック
    6. checkAA(res,cx)
    7. checkNG(res,cx)
  3. endCheck(th,cx)

非表示の再チェックでは各レスに対してcheckNG(res,cx)だけが実行されます。

  1. beginCheck(th,cx) (cx.checkNGがtrue)
  2. 各レスについて以下の繰り返し
    1. checkNG(res,cx)
  3. endCheck(th,cx)

rescheck.js
Object beginCheck(threadオブジェクト th, Object cx)
beginCheck(th,cx)の返り値がfalseまたはbooleanとしてfalseと評価される場合は以後の処理はスキップされます。戻り値に任意のオブジェクトを渡して以下のコールバック関数に渡すことができます
  • th … スレッドオブジェクト
  • cx … チェックに関するオブジェクト
    スレッド読み込み時はcx.checkRawText・cx.checkAA・cx.checkNGは全てtrue、非表示の再チェック時はcx.checkNGのみtrue。
    • cx.checkRawText … trueの場合テキスト置換関数checkRawText(res,cx)が各レスに対して実行される。
      実行を抑止したい場合はcx.setCheckRawText(false)を実行する。
    • cx.checkAA … trueの場合AA判定関数checkAA(res,cx)が各レスに対して実行される。
      実行を抑止したい場合はcx.setCheckAA(false)を実行する。
    • cx.checkNG … trueの場合NG指定関数checkNG(res,cx)が各レスに対して実行される。
      実行を抑止したい場合はcx.setCheckNG(false)を実行する。
rescheck.js
void checkRawText(resオブジェクト res, Object cx)
主にレスのテキストを置換するための関数
(この関数のresオブジェクトでのみ使用できる拡張定義があります)
  • res … レスオブジェクト
    プロパティ 説明
    String timeid 時間とIDを解析する前の文字列を取得します。
    戻り値 メソッド 説明
    void setName(String name) 名前欄を文字列nameに設定する
    void setMail(String text) メール欄を文字列textに設定する
    void setMessage(String text) 本文を文字列textに設定する
    void setNanasi(bool) trueで名無しとして、falseで名無し以外の名前としてそれぞれ扱いが固定されます
  • cx … チェックに関する情報を保持するオブジェクト。cx.checkObjectでbeginCheck(th,cx)で返されたオブジェクトを取得することができます。
reccheck.js
void checkAA(resオブジェクト res,Object cx)
AA判定をするための関数
この関数のresオブジェクトでのみ使用できる拡張定義があります)
  • res … レスオブジェクト
    戻り値 メソッド 説明
    void setAA(bool) boolがtrueの場合このレスをAAレスと判定する
  • cx … チェックに関する情報を保持するオブジェクト。cx.checkObjectでbeginCheck(th,cx)で返されたオブジェクトを取得することができます。
rescheck.js
void checkNG(resオブジェクトres,Object cx)
非表示判定をするための関数。
この関数のresオブジェクトでのみ使用できる拡張定義があります)
  • res … レスオブジェクト
    プロパティ 説明
    Integer weight 非表示のウェイトを取得する
    戻り値 メソッド 説明
    void setNG(String labelName, bool b, Integer, wait) このレスを非表示レスと判定する。
    b及びwaitは省略可
    labelName … ラベル
    b … trueの場合透明(デフォルト値はfalse
    wait … ウェイト (-9≦wait≦9、デフォルト値は0)
    void resetNG() setNG()の非表示設定をクリアする。
  • cx … 判定に関する情報を保持するオブジェクト。cx.checkObjectでbeginCheck(th,cx)で返されたオブジェクトを取得することができます。
rescheck.js
void endCheck(threadオブジェクト th, Object cx)
  • res … レスオブジェクト
  • cx … 判定に関する情報を保持するオブジェクト

subject.jsのコールバック関数

注意:

  • checkSubject(ss,bd,cx)はsubject.txtを実際に取得した時にのみ実行されます。(例えばHTTPレスポンスコードが 304 Not Modified. の時は実行されない。)
  • 現在ローカル板・Twitter仮想板でcheckSubject(ss,bd,cx)は実行されませんが、将来実行される可能性があります。

ソフトウェア板でスレッド924を下げてスレタイの先頭に★を追加する例:

function checkSubject(ss,bd,cx) {
  if (!bd.bbs.is2ch||(bd.key!='software')) {
    return ss;
  }
  var re=new RegExp('^(\\d+)\\.dat<>(.+) \\((\\d+)\\)$','gm');
  var ls=[],ls9=[];
  var rt;
  while (rt=re.exec(ss)) {
    if (rt[1][0]=='9') {
      ls9.push(rt[1]+'.dat<>★ '+rt[2]+' ('+rt[3]+')\n');
    } else {
      ls.push(rt[0]+'\n');
    }
  }
  return ls.concat(ls9).join('');
}
subject.js
threadオブジェクト[] checkSubject(String ss, boardオブジェクト bd, Object cx)
subject.txtを取得した後解析する前に実行されます。ssそのまま、または変更した文字列を返してください。
  • ss … 取得したsubject.txt
  • bd … 板オブジェクト
  • cx … (現在はダミー)

proxy.jsのコールバック関数

例:

    function checkProxy(u,p) {
      if (RegExp('^http://[0-9A-Za-z-]+\\.2ch\\.net/software/subject.txt$').test(u)) {
        p.host = 'localhost';
        p.port = 2020;
      }
    }

注意:

  • Proxy.txt内のProxyを選択してレスを書き込む時はcheckProxy(u,p)は実行されません。
  • proxy.jsを変更した時は「ファイル」メニューの「再読み込み」→「proxy.js」で再読み込みすることができます。

小技:

  • 予めV2Cの設定で書き込みポート1111、読み込みポート2222と決めておくことで、スクリプトから読み書きの内、片方だけ変更することができます。
    function checkProxy(u, p) {
        p.host = 'localhost';
        if (p.port == 1111) { // 書き込みポートの場合
            p.port = 8080;
        }
        if (p.port == 2222) { // 読み込みポートの場合
            p.port = 8888;
        }
    }
    
proxy.js
void checkProxy(java.net.URL u, Object p)
V2Cがネットワーク接続する前に実行されます。
  • u … javaのURLオブジェクト。
  • p … Proxy情報を保持するオブジェクト。ネットワーク設定でProxyを使用する設定になっている場合はその情報が設定されている。
    • p.host … Proxyのホスト名。(代入により設定可能。)
    • p.port … Proxyのポート番号。(代入により設定可能。)
    • p.direct() … 直接接続に設定する。(p.hostをnullに、p.portを0に設定する。)

threadld.jsのコールバック関数

threadld.js
void threadUpdated(threadオブジェクト th, Object cx)
スレッドの更新完了後更新音を再生する直前に実行されます。
  • th … スレッドオブジェクト。
  • cx … スレッドの更新に関する情報を保持するオブジェクト
    • cx.numNewRes … 更新によって取得されたレス数。
    • cx.error … 更新中に何らかのエラーが発生した時にtrueを返します。
    • cx.soundName … V2Cの設定によって再生される予定のサウンドファイル名を返します。(サウンドファイルが指定されていない場合または「更新完了音を再生する」設定がオフの場合はnull。)
      cx.soundName = 'filename';
      で更新完了音を変更することができます。
      
    • cx.rounding … 巡回中にスレッドが更新された場合にtrueを返します。

getdat.jsのコールバック関数

getDat(th)はスレッドの過去ログを取得できなかった時に実行されます。(thはスレッドオブジェクト。)

getdat.js
threadオブジェクト getDat(threadオブジェクト th)
スレッドのログファイルの内容を返します。
getDat(th)はしたらばやまちBBSでも実行されますが、V2Cのログ保存形式はしたらばではrawmode.cgiそのまま、まちBBSでもしたらばと同じ形式に変換しているので注意してください。
getdat.jsにはデフォルトでネットワーク接続("S")が許可されています。
  • th … スレッドオブジェクト
  • 戻り値
    • byte[] … バイト列byte[]をログファイルの内容として保存します。
    • null … ログファイルを取得できなかったことを示します。
    • 上記以外 … 返されたオブジェクトを文字列に変換し、それをさらに掲示板の文字コードでバイト列に変換したものをログファイルの内容として保存します。

post.jsのコールバック関数

post.js
void checkBeforeCreateThread(書き込み欄オブジェクト wp)
スレ立て時、V2Cが書き込み内容をチェックする前に実行されます。true以外を返すとスレ立て処理を中断します。
  • wp … 書き込み欄オブジェクト
post.js
checkBeforePost(書き込み欄オブジェクト wp)
書き込み時、V2Cが書き込み内容をチェックする前に実行されます。true以外を返すと書き込み処理を中断します。
  • wp … 書き込み欄オブジェクト

menu.jsのコールバック関数

レス表示ポップアップメニューから「マーカーを引いたレスを抽出」を削除する例:

function popupMenuCreated(pm,sn) {
  if (sn=='ThreadPanel') {
    for (var i=pm.getComponentCount()-1; i>=0; i--) {
      var mi=pm.getComponent(i);
      if (!(mi instanceof javax.swing.JMenuItem)) { // セパレータ
        continue;
      }
      if (mi.getText().startsWith('マーカーを引いたレスを抽出')) {
        pm.remove(i);
        break;
      }
    }
  }
}

レス番号ポップアップメニューの「設定」の最初のセパレータまでの項目を展開する例:

function popupMenuCreated(pm,sn) {
  if (sn=='ResNum') {
    loop:
    for (var i=pm.getComponentCount()-1; i>=0; i--) {
      var mi=pm.getComponent(i);
      if (!(mi instanceof javax.swing.JMenuItem)) { // セパレータ
        continue;
      }
      if (mi.getText()=='設定') {
        // mi は javax.swing.JMenu
        for (var j=0; j<mi.getItemCount(); j++) {
          var mj=mi.getItem(j);
          if (!(mj instanceof javax.swing.JMenuItem)) { // セパレータ
            mi.remove(j);
            for (var k=j-1; k>=0; k--) {
              pm.insert(mi.getItem(k),i);
            }
            break loop;
          }
        }
        break;
      }
    }
  }
}

レス表示ポップアップメニューの抽出系の項目を下位メニューにまとめる例:

function popupMenuCreated(pm,sn) {
  if (sn=='ThreadPanel') {
    var ie=-1;
    for (var i=pm.getComponentCount()-1; i>=0; i--) {
      var mi=pm.getComponent(i);
      if (!(mi instanceof javax.swing.JMenuItem)) { // セパレータ
        continue;
      }
      var sl=mi.getText();
      if (ie<0) {
        if (sl.startsWith('抽出ダイアログ')) {
          ie = i;
        }
      } else {
        if (sl.startsWith('リンクを含むレスを抽出')) {
          var m=new javax.swing.JMenu('抽出');
          for (var j=ie; j>=i; j--) {
            m.insert(pm.getComponent(j),0);
          }
          pm.insert(m,i);
          break;
        }
      }
    }
  }
}
menu.js
void popupMenuCreated(javax.swing.JPopupMenu pm, String sn)
popupMenuCreated(pm,sn)はポップアップメニューが作成された時に実行されます。
  • pm … 作成されたポップアップメニュー(JPopupMenu)。
  • sn … 作成されたポップアップメニューの名前。
    snに指定できるポップアップメニュー名
    ThreadPanel レス表示欄ポップアップメニュー
    TwitterPanel Tweet表示欄ポップアップメニュー
    ResNum レス番号ポップアップメニュー
    ResCheck レスのチェックポップアップメニュー
    Name 名前欄ポップアップメニュー
    TwitterUserName Twitterユーザ名ポップアップメニュー
    Mail メール欄ポップアップメニュー
    Time 投稿時間ポップアップメニュー
    ID IDポップアップメニュー
    Aux 補助情報ポップアップメニュー
    Link リンクポップアップメニュー
    Thumbnail サムネイル画像ポップアップメニュー
    SelText 選択テキストポップアップメニュー
    SelTextLink 選択範囲のリンクポップアップメニュー
  • menu.jsで使用するJavaオブジェクトの説明
  • メニュー項目のイメージ:
    □JMenu pm (右クリックメニューの起点root)
     ├ JMenuItem メニュー項目
     ├ ──── (pm.addSeparator()で追加した区切り線)
     ├ JMenu subMenu
     │ └ JMenuItem メニュー項目
     └JMenuItem メニュー項目
    
  • 表中の省略名は以下のオブジェクトを示します
  • pm = javax.swing.JMenu
  • o = javax.swing.JMenuItem
  • cbo = javax.swing.JCheckBoxMenuItem
戻り値 メソッド 引数 説明
javax.swing.JMenuItem pm.insert(JMenu subMenu, Integer index) subMenu 子メニュー。JMenuではなくIMenuItemを渡すとメニュー項目を挿入できます。
index 子メニュー(またはメニュー項目)をJMenuItem一覧のインデックス index(最初の項目を0とする)の直上に挿入します
JMenu pmを起点とする右クリックメニューのJMenuItem一覧のインデックス index(最初の項目を0とする)の直上に子メニュー subMenuを挿入します。
子メニュー subMenuに対してsubMenu.insert(JMenu subMenu2, Integer index)を使うと孫メニューを挿入できます。
またJMenuItemを挿入することもできます。
javax.swing.MenuItem(String maenuName)…メニュー項目
javax.swing.JCheckBoxMenuItem(String menuName, bool checked)…チェックボックス付きのメニュー項目。checkedがtrueだとチェック済みのメニュー項目を作成します
戻り値 メソッド 引数 説明
javax.swing.JMenu pm.add(JMenu subMenu) subMenu JMenuItem一覧の末尾に子メニュー subMenuを追加します(同上)
void pm.remove(Integer index) index メニューのJMenuItem一覧のインデックス index(最初の項目を0とする)のJMenuItemを削除します
戻り値 メソッド 引数 説明
javax.swing.JMenuItem pm.getComponent(Integer index) index JMenuItem一覧のインデックス index(最初の項目を0とする)
javax.swing.JMenuItem pm.getItem(Integer index)
メニューのJMenuItem一覧のインデックス index(最初の項目を0とする)のJMenuItemを返します。
JMenuItemでない項目はセパレータです
if (menuItem instanceof javax.swing.JMenuItem)で判別します
戻り値 メソッド 引数 説明
String pm.getText() なし JMenuメニュー項目名を返します
String o.getText() なし JMenuItem項目名を返します
Integer pm.getComponentCount() なし メニューのJMenuItem項目数を返します
void pm.addSeparator() なし メニュー項目の末尾に区切り線を挿入します
戻り値 メソッド 引数 説明
void o.addActionListener(action) function javascriptの関数オブジェクト
JMenuItemをクリックした時に処理させたい関数を指定できます。
o.addActionListener(function(e) {
 v2c.alert('クリックされたよ');
});
o.addActionListener(new java.awt.event.ActionListener({
 actionPerformed: function(e) {
  v2c.alert('クリックされたよ');
 }
}));
戻り値 メソッド 引数 説明
void cbo.addChangeListener(action) function javascriptの関数オブジェクト
JCheckBoxMenuItemをクリックされたときに処理させたい関数を指定できます
o.addChangeListener(new java.awt.event.ChangeListener({
 stateChanged : function(e) {
  if (e.source.isSelected()) { // チェック状態を確認する
   e.source.setSelected(true); //チェックを入れる
  }
 }
}));