フィルタースクリプト機能は、上級者向けの機能であり、スクリプトによっては大変危険な処理も実行できてしまいます。
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;