フィルタースクリプトに関する注意事項 †フィルタースクリプト機能は、上級者向けの機能であり、スクリプトによっては大変危険な処理も実行できてしまいます。 フィルタースクリプトとは †スクリプトを記述することでより柔軟にコメントのNG化が行えたり、コマンドやコメントの内容を書き換えることも可能になります。
使用方法 †「SET」→「スクリプト」タブを開き、「フィルタースクリプトを利用する」にチェックを入れます。 スクリプト構文 †スクリプトエンジンはThe D.eval APIを使わせていただいています。 スクリプトは書くコメントが表示される直前に呼び出されます。 使用可能な変数 †item["vpos"] †int item["date"] †int item["no"] †int item["user_id"] †string item["ng_cnt"] †int item["group_id"] †int item["mail"] †string item["mes"] †string item["isNG"] †int サンプルスクリプト †コマンド効果除去 †item["mail"] = ""; return item; 20秒までのコメントを非表示に †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"] != undefined){ 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; |