Register
phpBB.com Wiki · Home Projects Help

root / trunk / phpBB / develop / repair_bots.php

1 8220 kellanved
<?php
2 8220 kellanved
/**
3 8220 kellanved
* Rebuild BOTS
4 8220 kellanved
*
5 9233 acydburn
* You should make a backup from your whole database. Things can and will go wrong.
6 8220 kellanved
* This will only work if no BOTs were added.
7 8220 kellanved
*
8 8220 kellanved
*/
9 8220 kellanved
die("Please read the first lines of this script for instructions on how to enable it");
10 8220 kellanved
11 8220 kellanved
set_time_limit(0);
12 8220 kellanved
13 8220 kellanved
define('IN_PHPBB', true);
14 8572 acydburn
define('PHPBB_ROOT_PATH', './../');
15 8572 acydburn
define('PHP_EXT', substr(strrchr(__FILE__, '.'), 1));
16 8572 acydburn
include(PHPBB_ROOT_PATH . 'common.' . PHP_EXT);
17 8572 acydburn
include(PHPBB_ROOT_PATH . 'includes/functions_user.' . PHP_EXT);
18 8220 kellanved
19 8220 kellanved
20 8220 kellanved
// Start session management
21 8220 kellanved
$user->session_begin();
22 8220 kellanved
$auth->acl($user->data);
23 8220 kellanved
$user->setup();
24 8220 kellanved
25 8220 kellanved
$bots = array(
26 8222 kellanved
	'AdsBot [Google]'			=> array('AdsBot-Google', ''),
27 8222 kellanved
	'Alexa [Bot]'				=> array('ia_archiver', ''),
28 8222 kellanved
	'Alta Vista [Bot]'			=> array('Scooter/', ''),
29 8222 kellanved
	'Ask Jeeves [Bot]'			=> array('Ask Jeeves', ''),
30 8222 kellanved
	'Baidu [Spider]'			=> array('Baiduspider+(', ''),
31 8222 kellanved
	'Exabot [Bot]'				=> array('Exabot/', ''),
32 8222 kellanved
	'FAST Enterprise [Crawler]'	=> array('FAST Enterprise Crawler', ''),
33 8222 kellanved
	'FAST WebCrawler [Crawler]'	=> array('FAST-WebCrawler/', ''),
34 8222 kellanved
	'Francis [Bot]'				=> array('http://www.neomo.de/', ''),
35 8222 kellanved
	'Gigabot [Bot]'				=> array('Gigabot/', ''),
36 8222 kellanved
	'Google Adsense [Bot]'		=> array('Mediapartners-Google', ''),
37 8222 kellanved
	'Google Desktop'			=> array('Google Desktop', ''),
38 8222 kellanved
	'Google Feedfetcher'		=> array('Feedfetcher-Google', ''),
39 8222 kellanved
	'Google [Bot]'				=> array('Googlebot', ''),
40 8222 kellanved
	'Heise IT-Markt [Crawler]'	=> array('heise-IT-Markt-Crawler', ''),
41 8222 kellanved
	'Heritrix [Crawler]'		=> array('heritrix/1.', ''),
42 8222 kellanved
	'IBM Research [Bot]'		=> array('ibm.com/cs/crawler', ''),
43 8222 kellanved
	'ICCrawler - ICjobs'		=> array('ICCrawler - ICjobs', ''),
44 8222 kellanved
	'ichiro [Crawler]'			=> array('ichiro/2', ''),
45 8222 kellanved
	'Majestic-12 [Bot]'			=> array('MJ12bot/', ''),
46 8222 kellanved
	'Metager [Bot]'				=> array('MetagerBot/', ''),
47 8222 kellanved
	'MSN NewsBlogs'				=> array('msnbot-NewsBlogs/', ''),
48 8222 kellanved
	'MSN [Bot]'					=> array('msnbot/', ''),
49 8222 kellanved
	'MSNbot Media'				=> array('msnbot-media/', ''),
50 8222 kellanved
	'NG-Search [Bot]'			=> array('NG-Search/', ''),
51 8222 kellanved
	'Nutch [Bot]'				=> array('http://lucene.apache.org/nutch/', ''),
52 8222 kellanved
	'Nutch/CVS [Bot]'			=> array('NutchCVS/', ''),
53 8222 kellanved
	'OmniExplorer [Bot]'		=> array('OmniExplorer_Bot/', ''),
54 8222 kellanved
	'Online link [Validator]'	=> array('online link validator', ''),
55 8222 kellanved
	'psbot [Picsearch]'			=> array('psbot/0', ''),
56 8222 kellanved
	'Seekport [Bot]'			=> array('Seekbot/', ''),
57 8222 kellanved
	'Sensis [Crawler]'			=> array('Sensis Web Crawler', ''),
58 8222 kellanved
	'SEO Crawler'				=> array('SEO search Crawler/', ''),
59 8222 kellanved
	'Seoma [Crawler]'			=> array('Seoma [SEO Crawler]', ''),
60 8222 kellanved
	'SEOSearch [Crawler]'		=> array('SEOsearch/', ''),
61 8222 kellanved
	'Snappy [Bot]'				=> array('Snappy/1.1 ( http://www.urltrends.com/ )', ''),
62 8222 kellanved
	'Steeler [Crawler]'			=> array('http://www.tkl.iis.u-tokyo.ac.jp/~crawler/', ''),
63 8222 kellanved
	'Synoo [Bot]'				=> array('SynooBot/', ''),
64 8222 kellanved
	'Telekom [Bot]'				=> array('crawleradmin.t-info@telekom.de', ''),
65 8222 kellanved
	'TurnitinBot [Bot]'			=> array('TurnitinBot/', ''),
66 8222 kellanved
	'Voyager [Bot]'				=> array('voyager/1.0', ''),
67 8222 kellanved
	'W3 [Sitesearch]'			=> array('W3 SiteSearch Crawler', ''),
68 8222 kellanved
	'W3C [Linkcheck]'			=> array('W3C-checklink/', ''),
69 8222 kellanved
	'W3C [Validator]'			=> array('W3C_*Validator', ''),
70 8222 kellanved
	'WiseNut [Bot]'				=> array('http://www.WISEnutbot.com', ''),
71 8222 kellanved
	'YaCy [Bot]'				=> array('yacybot', ''),
72 8222 kellanved
	'Yahoo MMCrawler [Bot]'		=> array('Yahoo-MMCrawler/', ''),
73 8222 kellanved
	'Yahoo Slurp [Bot]'			=> array('Yahoo! DE Slurp', ''),
74 8222 kellanved
	'Yahoo [Bot]'				=> array('Yahoo! Slurp', ''),
75 8222 kellanved
	'YahooSeeker [Bot]'			=> array('YahooSeeker/', ''),
76 8220 kellanved
);
77 9233 acydburn
78 8220 kellanved
$bot_ids = array();
79 9233 acydburn
user_get_id_name($bot_ids, array_keys($bots), phpbb::USER_IGNORE);
80 8220 kellanved
foreach($bot_ids as $bot)
81 8220 kellanved
{
82 8220 kellanved
	user_delete('remove', $bot);
83 8220 kellanved
}
84 8220 kellanved
// Done
85 8222 kellanved
add_bots($bots);
86 8220 kellanved
echo 'done';
87 8220 kellanved
88 8220 kellanved
89 8220 kellanved
/**
90 8220 kellanved
* Add the search bots into the database
91 8220 kellanved
* This code should be used in execute_last if the source database did not have bots
92 8220 kellanved
* If you are converting bots this function should not be called
93 8220 kellanved
* @todo We might want to look at sharing the bot list between the install code and this code for consistency
94 8220 kellanved
*/
95 8222 kellanved
function add_bots($bots)
96 8220 kellanved
{
97 9242 acydburn
	global $db;
98 8220 kellanved
99 8220 kellanved
	$sql = 'SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name = 'BOTS'";
100 8220 kellanved
	$result = $db->sql_query($sql);
101 8372 davidmj
	$group_id = (int) $db->sql_fetchfield('group_id', $result);
102 8220 kellanved
	$db->sql_freeresult($result);
103 8220 kellanved
	$db->sql_query('TRUNCATE TABLE ' . BOTS_TABLE);
104 8220 kellanved
105 8220 kellanved
	if (!$group_id)
106 8220 kellanved
	{
107 8220 kellanved
		add_default_groups();
108 8220 kellanved
109 8220 kellanved
		$sql = 'SELECT group_id FROM ' . GROUPS_TABLE . " WHERE group_name = 'BOTS'";
110 8220 kellanved
		$result = $db->sql_query($sql);
111 8372 davidmj
		$group_id = (int) $db->sql_fetchfield('group_id', $result);
112 8220 kellanved
		$db->sql_freeresult($result);
113 8220 kellanved
114 8220 kellanved
	}
115 8220 kellanved
116 8220 kellanved
117 8220 kellanved
118 8222 kellanved
119 8220 kellanved
	foreach ($bots as $bot_name => $bot_ary)
120 8220 kellanved
	{
121 8220 kellanved
		$user_row = array(
122 9233 acydburn
			'user_type'				=> phpbb::USER_IGNORE,
123 8220 kellanved
			'group_id'				=> $group_id,
124 8220 kellanved
			'username'				=> $bot_name,
125 8220 kellanved
			'user_regdate'			=> time(),
126 8220 kellanved
			'user_password'			=> '',
127 8220 kellanved
			'user_colour'			=> '9E8DA7',
128 8220 kellanved
			'user_email'			=> '',
129 9242 acydburn
			'user_lang'				=> phpbb::$config['default_lang'],
130 8220 kellanved
			'user_style'			=> 1,
131 8220 kellanved
			'user_timezone'			=> 0,
132 8220 kellanved
			'user_allow_massemail'	=> 0,
133 8220 kellanved
		);
134 8220 kellanved
135 8220 kellanved
		$user_id = user_add($user_row);
136 8220 kellanved
137 8220 kellanved
		if ($user_id)
138 8220 kellanved
		{
139 8220 kellanved
			$sql = 'INSERT INTO ' . BOTS_TABLE . ' ' . $db->sql_build_array('INSERT', array(
140 8220 kellanved
				'bot_active'	=> 1,
141 8220 kellanved
				'bot_name'		=> $bot_name,
142 8220 kellanved
				'user_id'		=> $user_id,
143 8220 kellanved
				'bot_agent'		=> $bot_ary[0],
144 8220 kellanved
				'bot_ip'		=> $bot_ary[1])
145 8220 kellanved
			);
146 8220 kellanved
			$db->sql_query($sql);
147 8220 kellanved
		}
148 8220 kellanved
	}
149 8220 kellanved
}
150 8220 kellanved
151 8220 kellanved
?>