フィルタースクリプトに関する注意事項

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

フィルタースクリプトとは

スクリプトを記述することでより柔軟にコメントのNG化が行えたり、コマンドやコメントの内容を書き換えることも可能になります。
出来ることの例

使用方法

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

スクリプト構文

スクリプトエンジンはThe D.eval APIを使わせていただいています。

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

使用可能な変数

item["vpos"]

int
コメント表示タイミング ※ただしこれを変更しても表示タイミングは変更されません。

item["date"]

int
コメント投稿日時

item["no"]

int
コマンドNo.

item["user_id"]

string
ユーザーID

item["ng_cnt"]

int
共有NGカウント

item["group_id"]

int
グループID

item["mail"]

string
コマンド

item["mes"]

string
コメント

item["isNG"]

int
0:表示コメント 1:NGコメント(コメント非表示)

サンプルスクリプト

コマンド効果除去

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"].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;

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