フィルタースクリプト機能は、上級者向けの機能であり、スクリプトによっては大変危険な処理も実行できてしまいます。
ActionScriptが理解できる方のみ使用してください。
ネット上等で得た信頼できないスクリプトを、動作内容を理解出来ないままコピー&ペーストして実行することは絶対にしないでください。
スクリプトの使用によってユーザーに対して損害が生じた場合でも、作者はいかなる責任も負いません。
スクリプトを記述することでより柔軟にコメントのNG化が行えたり、コマンドやコメントの内容を書き換えることも可能になります。
出来ることの例
「SET」→「スクリプト」タブを開き、「フィルタースクリプトを利用する」にチェックを入れます。
スクリプトを上のテキストエリアに入力します。変更はリアルタイムに反映されます。
出力エリアはスクリプトでエラーがあった場合や「printf()」関数の出力がされるデバッグ用エリアです。
スクリプトエンジンはThe D.eval APIを使わせていただいています。
スクリプトは書くコメントが表示される直前に呼び出されます。
コメントの各パラメーターが下記の変数に代入されています。
それぞれの変数を用いて変更を加えた後、スクリプトの最後に一回だけ「return item;」を記述して結果を戻します。
int
コメント表示タイミング
※ただしこれを変更しても表示タイミングは変更されません。
int
コメント投稿日時
int
コマンドNo.
string
ユーザーID
int
共有NGカウント
int
グループID
string
コマンド
string
コメント
int
0:表示コメント
1:NGコメント(コメント非表示)
item["mail"] = ""; return item;
if(item["vpos"]<20){
item["isNG"] = 1;
}
return item;
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;
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;