diff options
| author | Oleg Pudeyev <oleg@bsdpower.com> | 2012-11-09 09:20:43 -0500 |
|---|---|---|
| committer | Oleg Pudeyev <oleg@bsdpower.com> | 2012-11-09 09:20:43 -0500 |
| commit | 100acddf55817b400d1d0ef1a34eebcab290ebc8 (patch) | |
| tree | f7ea2c297a8014816ec34874ae94b5c1194e79bb /phpBB/install/database_update.php | |
| parent | 02df59f1fe7232789c61a7880c11f00f57f2550a (diff) | |
| parent | 60ea1c10ef0038fdb00fd38253d4b7407215e699 (diff) | |
| download | forums-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.php | 55 |
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; } } |
