aboutsummaryrefslogtreecommitdiffstats
path: root/phpBB/install/database_update.php
diff options
context:
space:
mode:
authorOleg Pudeyev <oleg@bsdpower.com>2012-11-09 09:20:43 -0500
committerOleg Pudeyev <oleg@bsdpower.com>2012-11-09 09:20:43 -0500
commit100acddf55817b400d1d0ef1a34eebcab290ebc8 (patch)
treef7ea2c297a8014816ec34874ae94b5c1194e79bb /phpBB/install/database_update.php
parent02df59f1fe7232789c61a7880c11f00f57f2550a (diff)
parent60ea1c10ef0038fdb00fd38253d4b7407215e699 (diff)
downloadforums-100acddf55817b400d1d0ef1a34eebcab290ebc8.tar
forums-100acddf55817b400d1d0ef1a34eebcab290ebc8.tar.gz
forums-100acddf55817b400d1d0ef1a34eebcab290ebc8.tar.bz2
forums-100acddf55817b400d1d0ef1a34eebcab290ebc8.tar.xz
forums-100acddf55817b400d1d0ef1a34eebcab290ebc8.zip
Merge PR #1042 branch 'bantu/ticket/10897' into develop-olympus
* bantu/ticket/10897: [ticket/10897] Combine bot updates and bot delete. [ticket/10897] Use same code/query for deleting. [ticket/10897] Make sure the user we're fetching is a bot. [ticket/10897] Do not handle IP address. There is no need. [ticket/10897] Update by user_id instead of bot_name. [ticket/10897] Move bot delete data to the relevant foreach loop. [ticket/10897] Add comment about what's going on. [ticket/10897] Remove unnecessary string casting. [ticket/10897] Add space after foreach. [ticket/10897] Update bots during phpBB update [ticket/10897] Bot list updated
Diffstat (limited to 'phpBB/install/database_update.php')
-rw-r--r--phpBB/install/database_update.php55
1 files changed, 55 insertions, 0 deletions
diff --git a/phpBB/install/database_update.php b/phpBB/install/database_update.php
index 099ab6aeb5..f7980ab1be 100644
--- a/phpBB/install/database_update.php
+++ b/phpBB/install/database_update.php
@@ -2119,6 +2119,61 @@ function change_database_data(&$no_updates, $version)
AND module_basename = \'profile\'
AND module_mode = \'signature\'';
_sql($sql, $errored, $error_ary);
+
+ // Update bots
+ if (!function_exists('user_delete'))
+ {
+ include($phpbb_root_path . 'includes/functions_user.' . $phpEx);
+ }
+
+ $bots_updates = array(
+ // Bot Deletions
+ 'NG-Search [Bot]' => false,
+ 'Nutch/CVS [Bot]' => false,
+ 'OmniExplorer [Bot]' => false,
+ 'Seekport [Bot]' => false,
+ 'Synoo [Bot]' => false,
+ 'WiseNut [Bot]' => false,
+
+ // Bot Updates
+ // Bot name to bot user agent map
+ 'Baidu [Spider]' => 'Baiduspider',
+ 'Exabot [Bot]' => 'Exabot',
+ 'Voyager [Bot]' => 'voyager/',
+ 'W3C [Validator]' => 'W3C_Validator',
+ );
+
+ foreach ($bots_updates as $bot_name => $bot_agent)
+ {
+ $sql = 'SELECT user_id
+ FROM ' . USERS_TABLE . '
+ WHERE user_type = ' . USER_IGNORE . "
+ AND username_clean = '" . $db->sql_escape(utf8_clean_string($bot_name)) . "'";
+ $result = $db->sql_query($sql);
+ $bot_user_id = (int) $db->sql_fetchfield('user_id');
+ $db->sql_freeresult($result);
+
+ if ($bot_user_id)
+ {
+ if ($bot_agent === false)
+ {
+ $sql = 'DELETE FROM ' . BOTS_TABLE . "
+ WHERE user_id = $bot_user_id";
+ _sql($sql, $errored, $error_ary);
+
+ user_delete('remove', $bot_user_id);
+ }
+ else
+ {
+ $sql = 'UPDATE ' . BOTS_TABLE . "
+ SET bot_agent = '" . $db->sql_escape($bot_agent) . "'
+ WHERE user_id = $bot_user_id";
+ _sql($sql, $errored, $error_ary);
+ }
+ }
+ }
+
+ $no_updates = false;
break;
}
}