Вообщем есть такой файловый менеждер, а также в нем есть чат !!!!!!
ну вот...вообщем у меня есть скрипт бота!!Но он не совсем хорошо работает!!!!
Вот его код
Этот скрипт был сделан админом этого хаба!!Т.е. бот настроен от антифлуда и т.п.!!!!
Бот конектиться, но держиться на хабе всего-лишь 5-10 секунд и выходит
Вот кто сможет его сделать, может убрать или добавить какие-то функции , то вот
Помогите
ыыы
ну вот...вообщем у меня есть скрипт бота!!Но он не совсем хорошо работает!!!!
Вот его код
Код:
#!/usr/bin/php
<?php
error_reporting(E_ALL);
/*
cd-bot
(c) 2005 f3ath
(c) lamak.ru
*/
// global settings
$verbose = 1; //0=nothing, 1=event, 2=allevents, 3=fulldump
$version = '[0.5-sql]';
$max_message_len = 512;
$codepage = 'w'; // k = koi-8, w = utf8, d = cp688
$timecorrection = 0; //60*60*4;
$helpfile = 'bothelp.txt';
$gagsfile = 'gags.txt';
$offlinemessageslifetime = 60*60*24*7; // время жизни оффлайновых сообщений = неделя
$offlinemessagesmaxlen = 10240; // макс. длина оффлайнового сообщения
$enableiplookup = false; // бот будет пробивать ипы юзеров
$enablemainlog = true;
$enablegagwatch = true;
$enablezerowarning = true; // предупреждать халявщиков
$botadmins = array();
$zero = array(); // $zero['nick'] = time // халявщики
$warnwait = 30; // сколько ждать перед предупреждением
$sql_host = 'localhost';
$sql_login = 'media';
$sql_password = 'password';
$sql_base = 'bot';
$sql_users_table = 'users';
$sql_messages_table = 'messages';
$sql_log_table = 'logs';
$sql_gags_table = 'gags';
// connection settings1
$host = '89.169.142.166';// 10.129.33.62 87.228.4.96
$port = '411';
$timeout = 5;
// my info
$mynick = 'Test';
$mypassword = '';
$myversion = $version;
$myinterest = "Ботег <$myversion,M:P,H:0/0/1,S:6,L:35>";
$myawaystatus = chr(1); //1=online, 2=away
$myspeed = 'DSL'.$myawaystatus;
$mymail = '';
$mysharesize = '546';
// runtime vars
$hubname = '';
$hub_handle = false;
$oplist = array(); // list of opers (in_array)
function is_bot($nick) {
$botlist = array();
if(in_array(strtolower($nick), $botlist)) return true;
return false;
};
function my_time() {
GLOBAL $timecorrection;
return time()+$timecorrection;
};
function ccs($str) {
// unix/win alias of convert_cyr_string
GLOBAL $codepage;
return convert_cyr_string ($str,'w',$codepage);
};
function skoka($n, $end1, $end2, $end5) {
if($n<20 and $n>10) {
return $n.' '.$end5;
} else {
if(ereg("[567890]$", (string)($n))) {
return $n.' '.$end5;
} else {
if(ereg("[1]$", (string)($n))) {
return $n.' '.$end1;
} else {
return $n.' '.$end2;
};
};
};
};
function rus_date_time($timestamp) {
$rusmonth=array(1 => 'января','февраля','марта','апреля','мая','июня','июля','августа','сентября','октября','ноября','декабря');
$rusweek=array(0 => 'воскресенье','понедельник','вторник','среда','четверг','пятница','суббота','воскресенье');
$mday = (int) strftime('%d', $timestamp);
$mon_num = (int) strftime('%m', $timestamp);
$mon = $rusmonth[$mon_num];
$year = strftime('%Y', $timestamp);
$wday_num = strftime('%w', $timestamp);
$wday = $rusweek[$wday_num];
$hours = strftime('%H', $timestamp);
$minutes = strftime('%M', $timestamp);
return "$mday $mon $year ($wday) в $hours:$minutes";
};
function read_hub() {
GLOBAL $hub_handle, $verbose;
// reads hub until '|' or eof
$buff = '';
$ch = '';
$timeout = 99999;
$timer1 = time() + $timeout;
//print($timer1."-".time()."\n");
while ($ch!='|' AND !feof($hub_handle)) {
$buff .= $ch;
$ch = '';
$ch = fread($hub_handle, 1);
if(time() > $timer1) go_out("timeout!\n");
};
if($verbose > 2) print(date("d/M/y:H:i:s", my_time())." <- [HUB] ".ccs($buff)."\n");
if (feof($hub_handle)) go_out("error reading socket [$buff]\n");
return $buff;
};
function say_raw($str) {
GLOBAL $hub_handle, $verbose;
if($verbose > 2) print(date("d/M/y:H:i:s", my_time())." -> [HUB] ".ccs($str)."\n");
if(!fwrite($hub_handle, $str.'|')) go_out("error writing socket [$str]\n");
};
function go_out($message) {
die("$message\n");
};
function hub_special_chars($str) {
$str = str_replace(chr(0), '/%DCN000%/', $str);
$str = str_replace(chr(5), '/%DCN005%/', $str);
$str = str_replace(chr(36), '/%DCN036%/', $str);
$str = str_replace(chr(96), '/%DCN096%/', $str);
$str = str_replace(chr(124), '/%DCN124%/', $str);
$str = str_replace(chr(126), '/%DCN126%/', $str);
return $str;
};
function say_to_all($msg) {
GLOBAL $mynick;
say_raw("<$mynick> $msg");
};
function say_to_nick($nick, $msg) {
GLOBAL $mynick;
if($mynick!=$nick) say_raw("<$mynick> $nick, $msg");
};
function say_private_to_nick($nick, $msg) {
GLOBAL $mynick;
if($mynick!=$nick) say_raw('$To: '.$nick.' From: '.$mynick.' $<'.$mynick.'> '.$msg);
};
function notice_user($usernick) {
GLOBAL $verbose;
//checking if user has unread messages
$unreadmsgcount = sql_msg_count($usernick);
if ($unreadmsgcount > 0) {
say_private_to_nick($usernick, "Привет, для тебя есть ".skoka($unreadmsgcount, 'сообщение', 'сообщения', 'сообщений').". :) Чтобы прочесть, напиши мне 'read' здесь в окне привата.");
if($verbose > 0) print(date("d/M/y:H:i:s", my_time()).ccs(" [OFLNMSGNOTICE] i've noticed $usernick about new messages\n"));
};
};
function sql_log_add($nick, $message) {
GLOBAL $sql_log_table;
$nick = substr(addslashes($nick), 0, 128);
$message = substr(addslashes($message), 0, 1024);
$q = "INSERT INTO `$sql_log_table` (`time`, `nick`, `text`) VALUES ('".my_time()."', '$nick', '$message')";
$r = mysql_query($q) or go_out('error insert log');
return true;
};
function sql_user_get($nick, $what) {
GLOBAL $sql_users_table;
$nick = addslashes($nick);
$query = "SELECT `$what` FROM `$sql_users_table` WHERE `nick`='$nick'";
$result = @mysql_query($query) or go_out(mysql_error());
if($row = @mysql_fetch_row($result)) {
return $row[0];
};
return false;
};
function sql_user_put($nick, $what, $value) {
GLOBAL $sql_users_table;
$nick = addslashes($nick);
$value = addslashes($value);
$query = "SELECT count(*) FROM `$sql_users_table` WHERE `nick`='$nick'";
$result = @mysql_query($query) or go_out(mysql_error());
$row = @mysql_fetch_row($result);
if($row[0]==0){ // if there is no record
$query = "INSERT INTO `$sql_users_table` (`nick`) VALUES ('$nick')";
$result = @mysql_query($query) or go_out(mysql_error());
};
$query = "UPDATE `$sql_users_table` SET `$what`='$value' WHERE `nick`='$nick'" or go_out(mysql_error());
$result = @mysql_query($query) or go_out(mysql_error());
};
function sql_msg_pop($tonick) {
// pop oldest message and delete it
GLOBAL $sql_messages_table, $offlinemessageslifetime;
$query = "SELECT `id`, `fromnick`, `ip`, `time`, `text` FROM `$sql_messages_table` WHERE (`tonick`='".addslashes($tonick)."') ORDER BY `time` ASC";
$result = @mysql_query($query) or go_out('select '.mysql_error());
if($row = @mysql_fetch_row($result)) {
$msgid = $row[0];
$fromnick = $row[1];
$ip = (strlen($row[2]) > 4 ? $row[2] : 'не определен');
$msgtime = $row[3];
$msg = $row[4];
@mysql_query("DELETE FROM `$sql_messages_table` WHERE (`id`='$msgid')") or go_out('delete '.mysql_error());
return "Сообщение:\n=======\n От кого: $fromnick\n IP: $ip\n Отправлено: ".rus_date_time($msgtime)."\n=======\n$msg";
};
return false;
};
function sql_msg_push($fromnick, $tonick, $ip, $msgtime, $msg) {
GLOBAL $sql_messages_table, $offlinemessageslifetime;
// delete expired messages
$query = "DELETE FROM `$sql_messages_table` WHERE `time`<'".(my_time()-$offlinemessageslifetime)."'";
$result = @mysql_query($query) or go_out(mysql_error());
$query = "INSERT INTO `$sql_messages_table`(`id`, `fromnick`, `tonick`, `ip`, `time`, `text`) VALUES ".
"('0', ".
"'".addslashes($fromnick)."', ".
"'".addslashes($tonick)."', ".
"'$ip', ".
"'".my_time()."', ".
"'".addslashes($msg)."')";
$result = @mysql_query($query) or go_out(mysql_error());
return true;
};
function sql_msg_count($tonick) {
GLOBAL $sql_messages_table, $offlinemessageslifetime;
// delete expired messages
$query = "DELETE FROM `$sql_messages_table` WHERE `time`<'".(my_time()-$offlinemessageslifetime)."'";
$result = @mysql_query($query) or go_out(mysql_error());
// retriving count(*)new messages for user
$query = "SELECT count(*) FROM `$sql_messages_table` WHERE (`tonick`='".addslashes($tonick)."')";
$result = @mysql_query($query) or go_out(mysql_error());
if($row = @mysql_fetch_row($result)) return $row[0];
go_out(sql_error());
};
function seen_nick($usernick, $seennick) {
GLOBAL $mynick;
$answer = '';
if(1 == sql_user_get($seennick, 'online')) {
if(($usernick == $seennick) or ($mynick == $seennick)) {
$answer = "(_(_)";
} else {
$answer = "$seennick сейчас сидит тут";
};
} else {
$seenqtime = sql_user_get($seennick, 'qtime');
$seenjtime = sql_user_get($seennick, 'jtime');
if($seenqtime!==false) {
$seenip = sql_user_get($seennick, 'ip');
if($seenqtime < $seenjtime) {
$answer = "$seennick ($seenip) был(а) тут ".rus_date_time($seenjtime);
} else {
$answer = "$seennick ($seenip) выходил(а) отсюда ".rus_date_time($seenqtime);
};
} else {
$answer = "не припомню, чтоб я видела кого-то с ником $seennick";
};
};
return $answer;
};
//********************************************************************************************************************
function on_ip_received($nick, $ip) {
GLOBAL $enablegagwatch, $sql_gags_table, $verbose, $mynick;
// событие: узнали юзерский ип
sql_user_put($nick, 'ip', $ip); // сохраняем его в базе
if($enablegagwatch) {
// проверяем, нет ли его среди загаганых
$q = "SELECT MAX(`exp`), `nick` FROM `$sql_gags_table` WHERE `ip`=INET_ATON('$ip') GROUP BY `ip`";
$r = mysql_query($q) or go_out(mysql_error()." [[$q]]");
if($row = mysql_fetch_row($r)) {
// есть такой ип
$t = $row[0] - my_time(); // насколько загагать
$infringer = $row[1]; // нарушитель
if(($t > 10) and ($mynick != $nick)) {
// если осталось больше 10 секунд
say_to_all('!gag '.$nick.' '.$t.'s');
say_private_to_nick($nick, "Пользователям с этого ip запрещено говорить в общем чате на $t сек. Виновник - $infringer");
if($verbose > 0) print(date("d/M/y:H:i:s", my_time())." [AUTOGAG-ON-JOIN] $nick ($ip) on $t sec. infringer $infringer \n");
};
};
};
};
function on_gag_user($nick, $time) {
GLOBAL $sql_users_table, $sql_gags_table, $mynick, $oplist, $verbose;
// оператор запросил гагнуть юзера. время указано в минутах
$nick = addslashes($nick);
settype($time, 'int');
$sec = $time * 60;
$ip = sql_user_get($nick, 'ip');
if(strlen($ip) > 4) {
//ищем лузеров с этим ипом и гагаем по очереди
$q = "SELECT `nick` FROM `$sql_users_table` WHERE (`ip`='$ip' AND `online`='1')";
$r = mysql_query($q) or go_out(mysql_error()."[[$q]]");
$list = ''; // список жертв вернем юзеру
while($row = mysql_fetch_row($r)) {
$loser = $row[0];
if(!in_array($loser, $oplist)) {
say_to_all('!gag '.$loser.' '.$sec.'s');
$list .= " $loser";
say_private_to_nick($loser, "Пользователям с этого ip запрещено говорить в общем чате на $sec сек. Виновник - $nick");
//say_to_all("пользователь $loser лишен возможности говорить в общем чате на $sec сек. Виновник - $nick");
if($verbose > 0) print(date("d/M/y:H:i:s", my_time())." [AUTOGAG-ON-REQUEST] $loser ($ip) on $sec sec. infringer $nick \n");
};
};
// заносим наши труды в базу
$q = "INSERT INTO `$sql_gags_table` (`ip`, `exp`, `nick`) VALUES (INET_ATON('$ip'), '".($sec+my_time())."', '$nick')";
$r = mysql_query($q) or go_out(mysql_error()."[[$q]]");
// удалим просроченные гаги
$q = "DELETE FROM `$sql_gags_table` WHERE (`exp` < '".my_time()."')";
$r = mysql_query($q) or go_out(mysql_error()."[[$q]]");
return "$nick ($ip) загаганы: $list on $sec sec.";
} else {
return "ip not found: $nick";
};
};
function zerowarn() {
GLOBAL $zero, $verbose, $oplist;
foreach($zero as $nick => $time) {
if((my_time() > $time) and !in_array($nick, $oplist)) {
// выждали положеный срок
say_private_to_nick($nick, 'Здравствуйте! Спасибо за присоединение к сети! Здесь принято не только качать файлы, но и отдавать их взамен. Чтобы выложить что-то для других, необходимо выбрать в меню файл - настройки - расшаривание, далее галочкой отметить папки со всем, что может быть интересно пользователям -- музыкой, фильмами, играми, дистрибутивами программ и прочее (кроме личной информации). Сделайте это прямо сейчас. Предупреждаю, что операторы периодически блокируют доступ "эгоистам", которые качают, ничего не отдавая взамен.');
unset($zero[$nick]);
if($verbose > 0) print(date("d/M/y:H:i:s", my_time()).ccs(" [ZEROWARN] $nick")."\n");
};
};
};
print(date("d/M/y:H:i:s", my_time())." starting...\n");
print(date("d/M/y:H:i:s", my_time())." verbose=$verbose\n");
print(date("d/M/y:H:i:s", my_time())." connecting MySQL server...\n");
@mysql_pconnect($sql_host, $sql_login, $sql_password) or go_out(mysql_error());
print(date("d/M/y:H:i:s", my_time())." selecting database...\n");
mysql_select_db($sql_base) or go_out('error selecting db');
mysql_query('set names utf8');
mysql_query('set character set utf8');
mysql_query ("set character_set_client='utf8'");
mysql_query ("set character_set_results='utf8'");
mysql_query ("set collation_connection='utf8_general_ci'");
print(date("d/M/y:H:i:s", my_time())." Reading gags...\n");
$gags = file($gagsfile);
print(date("d/M/y:H:i:s", my_time())." Connecting $host:$port with t/o $timeout sec...\n");
$hub_handle = fsockopen($host, $port, $errno, $errstr, $timeout);
if (!$hub_handle) go_out(date("d/M/y:H:i:s", my_time())."Error! $errstr ($errno)");
socket_set_timeout($hub_handle, 2);
socket_set_blocking($hub_handle, FALSE);
print(date("d/M/y:H:i:s", my_time())." Connected! Waiting for Lock...\n");
$s = read_hub();
if (!eregi('^\$Lock ([^ ]+) Pk=([^ ]+)', $s, $args)) go_out('wrong responce received');
print(date("d/M/y:H:i:s", my_time())." Lock received. Starting handshake...\n");
$lock = $args[1];
// calculating key
$key = $lock;
$lock_len = strlen($lock);
for ($i = 1; $i < $lock_len; $i++) {
$key{$i} = chr(ord($lock{$i}) ^ ord($lock{$i-1}));
};
$key{0} = chr(ord($lock{0}) ^ ord($lock{$lock_len -1 }) ^ ord($lock{$lock_len-2}) ^ 5);
for ($i = 0; $i < $lock_len; $i++) {
$v1 = chr((ord($key{$i}) << 4));
$v2 = chr((ord($key{$i}) >> 4));
$key{$i} = chr( ord($v1) | ord($v2) );
};
$key = hub_special_chars($key);
print(date("d/M/y:H:i:s", my_time())." Sending key...\n");
say_raw('$Key '.$key);
print(date("d/M/y:H:i:s", my_time())." Validating nickname...\n");
say_raw('$ValidateNick '.$mynick);
$s = read_hub();
print(date("d/M/y:H:i:s", my_time())." [HUB] $s\n");
if (eregi('\$ValidateDenide', $s)) go_out(date("d/M/y:H:i:s", my_time())."Nick $nick is not valid! Exiting.\n");
print(date("d/M/y:H:i:s", my_time())." Logging in...\n");
while (!eregi('\$Hello ([^ ]+)',$s,$hello_regs)) {
if (eregi('\$GetPass', $s)) {
print(date("d/M/y:H:i:s", my_time())." Password required. Sending...\n");
say_raw('$MyPass '.$mypassword);
};
if (eregi('\$BadPass', $s)) go_out(date("d/M/y:H:i:s", my_time())."Wrong password! Exiting.");
if (eregi('\$LogedIn ([^ ]+)',$s,$hello_regs)) print("Logged in as op!\n");
if (eregi('\$HubName ([^ ]+)',$s,$hubname_regs)) {
$hubname = $hubname_regs[1];
print(date("d/M/y:H:i:s", my_time())." Hub name is '$hubname'\n");
};
$s = read_hub();
print(date("d/M/y:H:i:s", my_time())." [HUB] $s\n");
};
$mynick = $hello_regs[1];
print(date("d/M/y:H:i:s", my_time())."Hello message received. My nick is '".ccs($mynick)."'\n");
print(date("d/M/y:H:i:s", my_time())."Sending my version...\n");
say_raw('$Version '.$myversion);
print(date("d/M/y:H:i:s", my_time())."Sending my info...\n");
say_raw('$MyINFO $ALL '.$mynick.' '.$myinterest.'$ $'.$myspeed.'$'.$mymail.'$'.$mysharesize.'$');
say_raw('$GetNickList');
print(date("d/M/y:H:i:s", my_time())."Started OK! :)\n");
// set online = 0
$query = "UPDATE `$sql_users_table` SET `online`='0' WHERE 1" or go_out(mysql_error());
$result = @mysql_query($query) or go_out(mysql_error());
$stop=false;
while(!$stop) {
$s = read_hub();
// проверяем халявщиков
if($enablezerowarning) zerowarn();
if(eregi('^<([^ ]+)> (.+)',$s, $msgargs)) {
//user saying something
$usernick = trim($msgargs[1]);
$usermessage = trim($msgargs[2]);
if($enablemainlog) sql_log_add($usernick, $usermessage);
if(($usernick == '#Hub') and (eregi('User: ([^ ]+)IP: ([^ ]+)', $usermessage, $regs))) {
if($verbose > 1) print(date("d/M/y:H:i:s", my_time())." [HUBMSG] $usermessage\n");
$thisusernick = $regs[1];
$thisuserip = $regs[2];
on_ip_received($thisusernick, $thisuserip);
};
//#################### FLOOOOOOOOOOODERSSSSSSSSS #############################
if(preg_match("/(.+)\\1{20,}/", $usermessage) and !in_array($usernick,$oplist) ) { // кнопка западает
print(on_gag_user($usernick, '20'));
$gag_message = '/me ' . trim(str_replace('[nick]', $usernick, $gags[array_rand($gags)]));
say_to_all($gag_message);
say_private_to_nick($usernick, "Вам запрещено говорить в общем чате на 20 минут. В следующий раз не надо так долго держать нажатой кнопку. Отвечать на это сообщение не надо. Я бот.");
};
};
if(eregi('^\$To: '.$mynick.' From: ([^ ]+) \$<([^ ]+)> (.+)',$s, $msgargs)) {
//private message from user
$recognized = false;
$usernick = trim($msgargs[1]);
$fakeusernick = trim($msgargs[2]);
$usermessage = trim($msgargs[3]);
if(($usermessage==='регнула') and ($usernick ==='#OpChat') and ($fakeusernick ==='Zladey')) {
say_private_to_nick($usernick, "регнула");
};
if(in_array($usernick,$oplist) and (eregi('^/say (.+)', $usermessage, $args))) {
say_to_all($args[1]);
$recognized = true;
};
if(in_array($usernick,$oplist) and (eregi('^/gag ([^ ]+) ([^ ]+)', $usermessage, $args))) {
$result = on_gag_user($args[1], $args[2]);
say_private_to_nick($usernick, $result);
$gag_message = '/me ' . trim(str_replace('[nick]', $args[1], $gags[array_rand($gags)]));
say_to_all($gag_message);
$recognized = true;
};
if(in_array($usernick,$oplist) and (eregi('^/psay ([^ ]+) (.+)', $usermessage, $args))) {
//private only if nick exists
if(isset($nicklist[$args[1]])) {
say_private_to_nick($args[1], $args[2]);
say_private_to_nick($usernick, "сказала :)");
} else {
say_private_to_nick($usernick, "не вижу ника ".$args[1]." :(");
};
$recognized = true;
};
///////////////////////////////////////// PRIVATE MESSAGE ///////////////////////////////////////////////////////
if(!is_bot($usernick)) {
if(eregi('^seen ([^ ]+)',$usermessage, $seenargs)) { //############## SEEN ##################################
//////////////// SEEN /////////////////
$recognized = true;
$seennick = $seenargs[1];
if($verbose > 0) print(date("d/M/y:H:i:s", my_time()).ccs(" [SEENMSG] $usernick is looking for $seennick\n"));
say_private_to_nick($usernick, seen_nick($usernick, $seennick));
};
if(eregi('^photo$',$usermessage)) { //###################################### PHOTO #################################
$recognized = true;
say_private_to_nick($usernick, "У меня нет фото. Потому что я бот. У ботов фоток не бывает, разве тебе не говорили? Кстати, зайди на сайт Физеры. Там правда тоже нет моих фоток, зато есть много других полезных вещей. http://10.132.64.5/");
if($verbose > 0) print(date("d/M/y:H:i:s", my_time()).ccs(" [VERMSG] $usernick asked for my naked photos\n"));
};
if(eregi('^help$',$usermessage)) {
$recognized = true;
$lines = file($helpfile);
$helpmsg = 'Я бот!!!!Хуле надо??';
foreach ($lines as $line_num => $line) $helpmsg .= $line;
say_private_to_nick($usernick, $helpmsg);
if($verbose > 0) print(date("d/M/y:H:i:s", my_time()).ccs(" [HLPMSG] $usernick asked for help\n"));
};
if(eregi('^msg ([^ ]+) (.+)',$usermessage, $omsgargs)) { //################################ MSG ###########################
// leave offline message
$recognized = true;
$ofromnick = $usernick;
$fromnick = $usernick;
$tonick = $omsgargs[1];
$omsg = $omsgargs[2];
$userip = sql_user_get($usernick, 'ip');
$isok = true;
if (strlen($omsg) > $offlinemessagesmaxlen) {
say_private_to_nick($usernick, "Извини, это слишком длинное сообщение. blush Максимальная длина $offlinemessagesmaxlen символов");
$isok = false;
};
if($tonick == $usernick) {
say_private_to_nick($usernick, "Приятно поговорить с умным человеком, да $usernick"."? :)");
$isok = false;
};
if($tonick == $mynick) {
say_private_to_nick($usernick, "Ой, это мне? Нет, правда мне?? Спасибо, $usernick, мне так редко пишут письма... blush");
$isok = false;
};
if(is_bot($tonick)) {
say_private_to_nick($usernick, "$tonick это бот. Я его боюсь. Я никогда не видела настоящих ботов :(");
$isok = false;
};
if($isok) {
say_private_to_nick($usernick, "Новое сообщение успешно добавлено. Если адресат в течение ближайших 7 суток зайдет на хаб, он получит уведомление и сможет прочесть твое сообщение. Если он(а) тут не появится или не захочет его читать, оно будет удалено.");
if(isset($nicklist[$tonick])) say_private_to_nick($tonick, "$fromnick оставил(а) для тебя сообщение. Чтобы прочесть его напиши мне 'read'. Если ты не сделаешь этого в течение ближайших 7 суток, оно будет удалено.");
sql_msg_push($fromnick, $tonick, $userip, my_time(), $omsg);
};
if($verbose > 0) print(date("d/M/y:H:i:s", my_time()).ccs(" [OFLNMSG] $usernick leaved message for $tonick\n"));
};
if(eregi('^read$',$usermessage)) { //############################################ READ #################################
$recognized = true;
$msgcount = sql_msg_count($usernick);
if ($msgcount > 0) {
say_private_to_nick($usernick, sql_msg_pop($usernick));
if((--$msgcount) > 0) {
say_private_to_nick($usernick, "Осталось еще ".skoka($msgcount, 'непрочитанное сообщение', 'непрочитанных сообщения', 'непрочитанных сообщений').".");
} else {
say_private_to_nick($usernick, "Больше сообщений нет");
};
} else {
say_private_to_nick($usernick, "Сообщений нет. Извини, $usernick. blush");
};
if($verbose > 0) print(date("d/M/y:H:i:s", my_time()).ccs(" [READMSG] $usernick asked for new messages\n"));
};
if(!$recognized) say_private_to_nick($usernick, "Непонятная команда :( попробуй написать мне 'help'");
};
if($verbose > 0) print(date("d/M/y:H:i:s", my_time()).ccs(" [PRIVMSG] $usernick (as $fakeusernick): $usermessage\n"));
};
if(eregi('^\$OpList (.+)', $s,$olargs)) {
// OpList received
$opers = explode('$$', $olargs[1]);
$oplist = array();
foreach ($opers as $opnick) if($opnick != '') {
$oplist[] = $opnick;
//if($enableiplookup) say_to_all("!getip $opnick");
//say_raw('$GetINFO '.$opnick. ' '.$mynick);
//sql_user_put($opnick, 'jtime', my_time());
};
if($verbose > 0) print(date("d/M/y:H:i:s", my_time())." [OPLIST] ".count($oplist)." ops: $olargs[1]\n");
};
if(eregi('^\$NickList (.+)', $s,$nlargs)) {
// NickList received
$nicks = explode('$$', $nlargs[1]);
unset($nicklist);
foreach ($nicks as $nick) if($nick != '') {
$nicklist[$nick] = 0;
// if($enableiplookup) say_to_all("!getip $nick");
// say_raw('$GetINFO '.$nick. ' '.$mynick);
//notice_user($nick);
// update userlist, set online = 1
sql_user_put($nick, 'jtime', my_time());
sql_user_put($nick, 'online', '1');
};// FOREACH
if($verbose > 0) print(date("d/M/y:H:i:s", my_time())." [NICKLIST] ".count($nicklist)." users now\n");
};// nicklist
if(eregi('^\$Hello ([^ ]+)', $s,$args)) {
// user logged in
$usernick = $args[1];
sql_user_put($usernick, 'online', '1');
//if($enableiplookup) say_to_all('!getip '.$usernick);
// say_raw('$GetINFO '.$usernick. ' '.$mynick);
sql_user_put($usernick, 'jtime', my_time());
if($verbose > 1) print(date("d/M/y:H:i:s", my_time())." [HELLO] $usernick\n");
notice_user($usernick);
};
if(eregi('^\$MyINFO \$ALL ([^ ]+) ([^\$]+)\$ \$([^\$]+)\$([^\$]*)\$([^\$]+)\$', $s,$args)) {
$info_nick = $args[1];
$info_descr = $args[2];
$info_speed = $args[3];
$info_mail = $args[4];
$info_sharesize = $args[5];
sql_user_put($info_nick, 'online', '1');
if($verbose > 1) print(date("d/M/y:H:i:s", my_time())." [MYINFO] $info_nick int='$info_interests' descr='$info_descr' spd='$info_speed' mail='$info_mail' ss='$info_sharesize'\n");
sql_user_put($info_nick, 'shared', $info_sharesize);
if($enablezerowarning) {
if($info_sharesize > 0) {
unset($zero[$info_nick]); // решил расшарить
} else {
if(!in_array($info_nick, $oplist)) {
$zero[$info_nick] = (my_time()+$warnwait);
if($verbose > 0) print(date("d/M/y:H:i:s", my_time()).ccs(" [ZEROWARN-ADD] $info_nick")."\n");
};
};
};
};
if(eregi('^\$Quit ([^ ]+)', $s,$args)) {
// user logged out
$quitnick = $args[1];
sql_user_put($quitnick, 'qtime', my_time());
sql_user_put($quitnick, 'online', '0');
if($verbose > 1) print(date("d/M/y:H:i:s", my_time())." [QUIT] ".ccs($quitnick)."\n");
};// if
}; //while(!$stop)
go_out('bye!');
Этот скрипт был сделан админом этого хаба!!Т.е. бот настроен от антифлуда и т.п.!!!!
Бот конектиться, но держиться на хабе всего-лишь 5-10 секунд и выходит
Вот кто сможет его сделать, может убрать или добавить какие-то функции , то вот
Помогите