Add several columns to spamfilter IP & word tables for feature consistency and extensibility #1882

This commit is contained in:
Kijin Sung 2022-12-19 01:45:10 +09:00
parent e1f98e573c
commit 020b85168c
11 changed files with 94 additions and 30 deletions

View file

@ -77,8 +77,13 @@ class spamfilter extends ModuleObject
$oDB = DB::getInstance();
if(!$oDB->isColumnExists('spamfilter_denied_word', 'hit')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_word', 'latest_hit')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_word', 'except_member')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_word', 'filter_html')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_word', 'is_regexp')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_word', 'description')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_ip', 'hit')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_ip', 'latest_hit')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_ip', 'except_member')) return true;
if(!$oDB->isColumnExists('spamfilter_denied_ip', 'description')) return true;
$config = ModuleModel::getModuleConfig('spamfilter') ?: new stdClass;
@ -104,27 +109,48 @@ class spamfilter extends ModuleObject
$oDB = DB::getInstance();
if(!$oDB->isColumnExists('spamfilter_denied_word', 'hit'))
{
$oDB->addColumn('spamfilter_denied_word','hit','number',12,0,true);
$oDB->addColumn('spamfilter_denied_word', 'hit', 'number', null, 0, true, 'word');
$oDB->addIndex('spamfilter_denied_word','idx_hit', 'hit');
}
if(!$oDB->isColumnExists('spamfilter_denied_word', 'latest_hit'))
{
$oDB->addColumn('spamfilter_denied_word','latest_hit','date');
$oDB->addColumn('spamfilter_denied_word', 'latest_hit', 'date', null, null, false, 'hit');
$oDB->addIndex('spamfilter_denied_word','idx_latest_hit', 'latest_hit');
}
if(!$oDB->isColumnExists('spamfilter_denied_word', 'except_member'))
{
$oDB->addColumn('spamfilter_denied_word', 'except_member', 'char', 1, 'N', true, 'latest_hit');
}
if(!$oDB->isColumnExists('spamfilter_denied_word', 'filter_html'))
{
$oDB->addColumn('spamfilter_denied_word', 'filter_html', 'char', 1, 'N', true, 'except_member');
}
if(!$oDB->isColumnExists('spamfilter_denied_word', 'is_regexp'))
{
$oDB->addColumn('spamfilter_denied_word', 'is_regexp', 'char', 1, 'N', true, 'filter_html');
$oDB->query('UPDATE spamfilter_denied_word SET is_regexp = ? WHERE word LIKE ?', ['Y', '/%/']);
}
if(!$oDB->isColumnExists('spamfilter_denied_word', 'description'))
{
$oDB->addColumn('spamfilter_denied_word', 'description', 'varchar', 191, null, false, 'is_regexp');
}
if(!$oDB->isColumnExists('spamfilter_denied_ip', 'hit'))
{
$oDB->addColumn('spamfilter_denied_ip','hit','number',12,0,true);
$oDB->addColumn('spamfilter_denied_ip', 'hit', 'number', null, 0, true, 'ipaddress');
$oDB->addIndex('spamfilter_denied_ip','idx_hit', 'hit');
}
if(!$oDB->isColumnExists('spamfilter_denied_ip', 'latest_hit'))
{
$oDB->addColumn('spamfilter_denied_ip','latest_hit','date');
$oDB->addColumn('spamfilter_denied_ip', 'latest_hit', 'date', null, null, false, 'hit');
$oDB->addIndex('spamfilter_denied_ip','idx_latest_hit', 'latest_hit');
}
if(!$oDB->isColumnExists('spamfilter_denied_ip', 'except_member'))
{
$oDB->addColumn('spamfilter_denied_ip', 'except_member', 'char', 1, 'N', true, 'latest_hit');
}
if(!$oDB->isColumnExists('spamfilter_denied_ip', 'description'))
{
$oDB->addColumn('spamfilter_denied_ip','description','varchar', 250);
$oDB->addColumn('spamfilter_denied_ip', 'description', 'varchar', 191, null, false, 'except_member');
}
$config = ModuleModel::getModuleConfig('spamfilter') ?: new stdClass;