//edit user : No.1
#contents

*フィルタースクリプトに関する注意事項 [#n2606b31]
&color(red,#ffffff){フィルタースクリプト機能は、上級者向けの機能であり、スクリプトによっては大変危険な処理も実行できてしまいます。&br;ActionScriptが理解できる方のみ使用してください。&br;ネット上等で得た信頼できないスクリプトを、動作内容を理解出来ないままコピー&ペーストして実行することは絶対にしないでください。&br;スクリプトの使用によってユーザーに対して損害が生じた場合でも、作者はいかなる責任も負いません。};

*フィルタースクリプトとは [#ma941cd2]

スクリプトを記述することでより柔軟にコメントのNG化が行えたり、コマンドやコメントの内容を書き換えることも可能になります。~
''出来ることの例''~
-コマンドを消去して通常のコメント化
-コメントやコマンド、ユーザーID以外の条件(投稿日時やコメント秒数など)でのNG化

*使用方法 [#a6b31859]
「SET」→「スクリプト」タブを開き、「フィルタースクリプトを利用する」にチェックを入れます。~
スクリプトを上のテキストエリアに入力します。変更はリアルタイムに反映されます。~
出力エリアはスクリプトでエラーがあった場合や「printf()」関数の出力がされるデバッグ用エリアです。~

*スクリプト構文 [#n41b2be8]
スクリプトエンジンは[[The D.eval API>http://www.riaone.com/products/deval/]]を使わせていただいています。~

スクリプトは書くコメントが表示される直前に呼び出されます。~
コメントの各パラメーターが下記の変数に代入されています。~
それぞれの変数を用いて変更を加えた後、スクリプトの最後に一回だけ「return item;」を記述して結果を戻します。~

**使用可能な変数 [#t3da533d]
***item["vpos"] [#need1d7b]
int~
コメント表示タイミング
※ただしこれを変更しても表示タイミングは変更されません。
***item["date"] [#sff88ea0]
int~
コメント投稿日時
***item["no"] [#gcd220f8]
int~
コマンドNo.
***item["user_id"] [#w7af4c16]
string~
ユーザーID
***item["ng_cnt"] [#ofed5c23]
int~
共有NGカウント
***item["group_id"] [#g5e7ddd8]
int~
グループID
***item["mail"] [#m686d042]
string~
コマンド
***item["mes"] [#h55f3af6]
string~
コメント
***item["isNG"] [#r4699bdd]
int~
0:表示コメント
1:NGコメント(コメント非表示)

*サンプルスクリプト [#u64a597f]
**コマンド効果除去 [#gfd4f74d]
 item["mail"] = "";
 return item;

**20秒までのコメントを非表示に [#n2376f20]
 if(item["vpos"]<20){
 	item["isNG"] = 1;
 }
 return item;

**コメントの元サイト別に色分け [#n108b6ce]
 var pattern:RegExp = new RegExp("red|pink|orange|yellow|green|cyan|blue|purple|black|#[0-9a-f]{6}", "i");	//すでに設定されている色を消去するための正規表現
 var patternPara:RegExp = new RegExp("^[a-z0-9]{8}-", "i");	//ぱらすて用の正規表現
 if(item["user_id"].toString().length == 27){	//user_idの文字数が27文字ならニコニコ動画のIDとみなす
 	//ニコニコ:黄緑
 	item["mail"] = item["mail"].replace(pattern,"") + "#32cd32";	//すでに設定されている色コマンドを消した上で色をつける
 }else if(item["user_id"].toString().length == 24){
 	//SayMove:水色
 	item["mail"] = item["mail"].replace(pattern,"") + "#87cefa";
 }else if(item["user_id"].toString().length == 10){
 	//ひまわり:オレンジ
 	item["mail"] = item["mail"].replace(pattern,"") + "#ffa500";
 }else if(patternPara.test(item["user_id"].toString())){
 	//ぱらすて:赤茶
 	item["mail"] = item["mail"].replace(pattern,"") + "#a52a2a";
 }
 return item;

**時間の経過とともにコメントの色を変える [#ge6b9075]
 var pattern:RegExp = new RegExp("red|pink|orange|yellow|green|cyan|blue|purple|black|#[0-9a-f]{6}", "i");	//すでに設定されている色を消去するための正規表現
 var _h = item["vpos"] * 0.25;	//0-360までの色相
 if(_h > 360){
 	_h = 360;
 }
 var _s = 0.8;	//彩度
 var _v = 0.9;	//明度
 
 var _RGB_MAX:Number = 255;
 var _r:Number = 255;
 var _g:Number = 255;
 var _b:Number = 255;
 
 //HSV→RGB変換
 var hi:Number = Math.floor(_h / 60) % 6;
 var f:Number = _h / 60 - hi;
 var p:Number = _v  * ( 1 - _s );
 var q:Number = _v  * ( 1 - _s * f);
 var t:Number = _v  * ( 1 - _s * ( 1 - f));
 
 switch (hi) { 
 case 0 : 
 	_r = _v; _g = t; _b = p;
 	break; 
 case 1 : 
 	_r = q; _g = _v; _b = p;
 	break; ;
 case 2 : 
 	_r = p; _g = _v; _b = t;
 	break; 
 case 3 : 
 	_r = p; _g = q; _b = _v;
 	break; 
 case 4 : 
 	_r = t; _g = p; _b = _v;
 	break; 
 case 5 : 
 	_r = _v; _g = p; _b = q;
 	break; 
 }
 _r *= _RGB_MAX;
 _g *= _RGB_MAX;
 _b *= _RGB_MAX;
 
 var fillString:String = "000000";		//0埋め用文字列
 var colorStringR:String = _r.toString(16);	//R
 var colorStringG:String = _g.toString(16);	//G
 var colorStringB:String = _b.toString(16);	//B
 colorString = "#" + fillString.substring(0,2 - colorStringR.length) + colorStringR + 
 	fillString.substring(0,2 - colorStringG.length) + colorStringG + 
 	fillString.substring(0,2 - colorStringB.length) + colorStringB;
 item["mail"] = item["mail"].replace(pattern,"") + colorString;
 return item;



トップ   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS