コメントとトラバの上限が設定されるらしい。 ― 2008年04月23日 03時14分43秒
昨今増えているスパム(迷惑)コメント、スパムトラックバック対策のため、近日中に1記事あたりのコメントとトラックバック受付数上限を設けることにいたしました。ありがたい。めっさありがたい。1日あたり30も40もクスリのトラバがやってくる現状からすると、ほんとうにありがたい。
が、「上限50」とかだったら俺的に実質意味ないし。それはそれで笑えてよいかも。
古いspamコメント/トラバの削除を支援するGMスクリプト ― 2008年04月23日 03時51分27秒
しつこくアサブロ管理画面向けのGMスクリプトを載せてみたり。
コメント一覧/トラックバック一覧で状態が「spam」の項目に自動的にチェックをつけます。以下のスクリプトを「http://www.asablo.jp/app*」で動作するようにしてください。
※:なんかうまく動かなくなったので、修正入れました。詳しくはこちら。(09.09.04)
// 指定要素を含むtrを取得する
function findRow(el) {
if( el == document.body ) return null;
var row = el.parentNode;
if( /^tr$/i.test( row.tagName ) ) {
// 「状態」を取得するメソッドを追加
row.getStatus = function() {
var sel = this.getElementsByTagName("select")[0];
if( sel ) {
return sel.options[ sel.selectedIndex ].innerHTML;
}
return null;
};
// 日付を取得するメソッドを追加
row.getDate = function() {
var cells = this.getElementsByTagName("td"), i = 0;
while( i < cells.length ) {
var cell = cells[i++];
if( /\d{4}((\-\d{2}){2})\s\d{2}((:\d{2}){2})/.test( cell.innerHTML ) ) {
return new Date(
cell.innerHTML.replace(/\-/g, "/").replace( /\s\d{2}(:\d{2}){2}/, "" )
);
}
}
return null;
};
return row;
}
// elの親がtrじゃないのでさらに上位に遡る
return arguments.callee( row );
}
// [状態の変更/~の削除]ボタンを検出する
function getSubmit() {
var list = window.document.getElementsByTagName("input")
for(var i = 0, l = list.length; i < l; i++) {
if( list[i].type == "submit" && /状態の変更/.test( list[i].value ) ) {
return list[i];
}
}
return null;
}
// チェックボックスのリスト → リストの取得方法変更(09.09.04)
//var list = document.getElementsByTagName("input");
var list = document.getElementsByName("delmsg");
// チェックボックスをチェックした数
var checked = 0;
// 現在日よりこの日数以上古いデータは削除対象にする
var days = 5;
// 削除対象のコメント/トラバをチェック
for(var i = 0, l = list.length; i < l; i++) {
var input = list[i++];
if( input.type != "checkbox" || input.name != "delmsg" ) continue;
new function() {
var row = findRow(input);
var d = row.getDate();
var limit = new Date( new Date() - ( 86400000 * days ) );
if( row.getStatus() == "spam" && d <= limit ) {
input.checked = true;
checked++;
}
}();
}
// ボタンをハイライト
var btn = getSubmit();
if( checked && btn ) {
btn.style.color = "red";
btn.style.fontWeight = "bold";
btn.focus();
document.documentElement.scrollTop = document.documentElement.scrollHeight;
}
ノードの抽出だとかDOM操作はちょっとグダグダしてるが勘弁。
コード中の下線部の「var days = 5」の数字は、削除対象にする日数で、例えば本日(2008年4月23日)だと、4月19日よりも前のspamトラバ/コメントにチェックがつきます。「5日も待てねぇ。さっさと削除してぇ。」とかいった場合はここを変更すると。
また、チェックをつけた項目があったページでは[状態の変更/~の削除]ボタンを強調表示し、そこまで画面をスクロールさせてます。
あくまでチェックをつけるだけなので、実際の削除は[状態の変更/~の削除]を自分でクリックしてください。
うーん、またあんまり需要がないスクリプトを書いてしまった。

最近のコメント