View file system/icq.php

File size: 9.5Kb
<?php
#----------------------------------#
#**********[WHT] ICQBot************#
#         Made by : Sklep          #
#    E-mail : [email protected]    #
#    Site : http://Wap-Hack.Ru     #
#          ICQ : 712788            #
#----------------------------------#
 include_once 'config.php';
 include_once 'functions.php';
 include_once 'class/WebIcqPro.class.php';

  set_time_limit(0);

    // проверяем чтобы запрос не шел через браузер напрямую
    if(!$_GET['uin'] || !getenv('REMOTE_ADDR')==getenv('SERVER_ADDR'))
	  exit("Access Denied\r\n<br>\r\nICQBot By Sklep");

  // открываем класс
  $icq = new WebIcqPro();
  // подгружаем настройки бота
  $res = mysql_query("select * from bots WHERE uin=$_GET[uin]");
  $bots = mysql_fetch_array($res);
  
    // загружаем все плагины из папки
    foreach (glob(dirname(__FILE__).DIRECTORY_SEPARATOR.'plugins'.DIRECTORY_SEPARATOR."*.php") as $v)
      include_once($v);
   
	// устанавливаем соединение
    if($icq->connect($bots['uin'], $bots['password']) && mysql_num_rows($res))
    {
	   // запоминаем время запуска бота
	   $uptime = time();
	   // устанавливаем статус бота
	   $icq->setStatus($bots['status']);
	   // устанавливаем x статус 
	   $icq->setXStatus($bots['xstatus']);
       $status = $bots['xstatus'];
    }
	else
	  exit("No connect!\r\n<br>\r\nICQBot By Sklep");
	
    // пускаем цикл пока есть соединение с сервером
    while($icq->isConnected())
	{
	  // проверяем есть ли новые сообщения
	  $msg = $icq->readMessage();
	  // распознаем команду
	  $msg['message'] = trim($msg['message']);
      list($cmd,$val) = explode(" ", $msg['message'], 2);
	  $params = explode(" ",$val);
	  
	    // проверяем есть ли юзер в контакт листе
	    if(mysql_num_rows(mysql_query("SELECT * FROM `users` WHERE `uin` = '".$msg['from']."'")))
		  $add_me = false;
		else
		  $add_me = true;
        
		// юзер добавлен в контакт лист
		if(trim($cmd)=='!addme' && $add_me==true)
		{
		  // спим
		  sleep(1);
          $err = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='addme_ok'"));
		  @mysql_query("INSERT INTO `users` VALUES (NULL, ".$msg['from'].", 0, ".time().")");
		  $icq->sendMessage($msg['from'],$err['title']);
		}
		// просим юзера добавить себя в контакт лист бота
		elseif($add_me==true)
		{
		  // спим
		  sleep(1);
          $err = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='addme'"));
		  $icq->sendMessage($msg['from'],$err['title']);
		}
		// юзер павторно хочет добавится в контакт лист
		if(trim($cmd)=='!addme' && $add_me==false)
		{
		  // спим
		  sleep(1);
          $err = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='addme_false'"));
		  $icq->sendMessage($msg['from'],$err['title']);
		}
	    // если юзер находится в контакт листе и если он отправил команду, то идем дальше
		if ($msg['from'] && $msg['message'] && !$cmd=='' && $add_me==false)
		{
		    // проверяем админство
			$admin = false;
		    $mysql_admins = mysql_fetch_array(mysql_query("SELECT * FROM `admin` WHERE `uin`='".$msg['from']."'"));
		    if(in_array($msg['from'], $mysql_admins))
			  $admin = true;
		 
	        $sql_cmd = str_replace('!','',trim($cmd));
		 
			// проверяем есть ли такая комманда
		    $mysql_commands = mysql_fetch_array(mysql_query("SELECT * FROM `commands` WHERE `commands`='".$sql_cmd."'"));
		    // проверяем есть ли такая комманда в масиве
	        if(in_array($sql_cmd, $mysql_commands))
		    {
              $users = mysql_fetch_array(mysql_query("select * from users WHERE uin=$msg[from]"));
		      // записываем в лог запрос
			  mysql_query("INSERT INTO `logs` VALUES (NULL, ".$msg['from'].", '".$msg['message']."', ".time().")");
		      // добавляем +1 к отправленым сообщения юзеру
			  mysql_query("UPDATE `users` SET `send`=". ($users['send']+1) ." WHERE `uin`=".$msg['from']."");
              $cmd_sql = str_replace('!','',trim($cmd));
		      $help_cmd = mysql_fetch_array(mysql_query("SELECT * FROM `help` WHERE `cmd`='".$cmd_sql."'"));
		     
			    //выполняем различные комманды
		        switch (strtolower(trim($cmd)))
		        {
				  case '!status':
				    // спим
					sleep(1);
				    if($admin == true)
				    {
                        if($icq->setStatus($val))
					    {
						  // если получилось сменить статус, то прописываем новый в базу
						  mysql_query("UPDATE `bots` SET `status`='".$val."' WHERE `uin`='".$bots['uin']."'");
						  $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='ok_status'"));
				          $icq->sendMessage($msg['from'], $help_c['title']);
				        }
					    else
					    {
					      $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='err_status'"));
				          $icq->sendMessage($msg['from'], $help_c['title']);
					    }
					}
				    else
				    {
					  $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='noadmin'"));
				      $icq->sendMessage($msg['from'], $help_c['title']);
				    }
			      break;
				 
				  case '!xstatus':
				    // спим
					sleep(1);
				    if($admin == true)
				    {
                        if($icq->setXStatus($val))
					    {
						  mysql_query("UPDATE `bots` SET `xstatus`='".$val."' WHERE `uin`='".$bots['uin']."'");
						  $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='ok_xstatus'"));
				          $icq->sendMessage($msg['from'], $help_c['title']);
				        }
					    else
					    {
					      $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='err_xstatus'"));
				          $icq->sendMessage($msg['from'], $help_c['title']);
					    }
					}
				    else
				    {
					  $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='noadmin'"));
				      $icq->sendMessage($msg['from'], $help_c['title']);
				    }
			      break;
				  
				  case '!stop':
				    if($admin == true)
					{
					  $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='wait'"));
				      $icq->sendMessage($msg['from'], $help_c['title']);
                      //спим, чтоб не нагружать сервер
					  sleep(2);
					  $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='stop'"));
				      $icq->sendMessage($msg['from'], $help_c['title']);
					  //спим, чтоб не нагружать сервер
					  sleep(3);
					  $icq->disconnect();
					  exit();
					}
					else
					{
					  $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='noadmin'"));
				      $icq->sendMessage($msg['from'], $help_c['title']);
					}
			      break;
				  
				  case '!restart':
				    if($admin == true)
					{ 
					  // отправляем сообщение об ожидании
					  $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='wait'"));
				      $icq->sendMessage($msg['from'], $help_c['title']);
                      //спим, чтоб не нагружать сервер
					  sleep(2);
					  // отправляем сообщение о том что бот будет остановлен
					  $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='restart'"));
				      $icq->sendMessage($msg['from'], $help_c['title']);
					  //спим, чтоб не нагружать сервер
					  sleep(3);
					  // останавливаем бота
					  $icq->disconnect();
					  // запускаем заново
					  $fp = fsockopen($url['home'], 80, $errno, $errstr, 5);
		              $out = "GET ".$url['dir']."system/icq.php?uin=".$bots['uin']." HTTP/1.1\r\n";
		              $out .= "Host: ".$url['home']."\r\n";
		              $out .= "Connection: Close\r\n\r\n";
		              fwrite($fp, $out);
					  exit();
					}
					else
					{
					  $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='noadmin'"));
				      $icq->sendMessage($msg['from'], $help_c['title']);
					}
			      break;
				 
		   		  case '!help':
				    // спим
					sleep(1);
					// отправляем по запросу все доступные комманды
				    $icq->sendMessage($msg['from'], $help_cmd['title']);
			      break;
				 
			      case '!uptime':
				    // спим
					sleep(1);
					// отправляем по запросу сколько бот находится в онлайне
				    $icq->sendMessage($msg['from'], uptimes($uptime));
			      break;
				 
		   		  case '!about':
				    // спим
					sleep(1);
					// отправляем по запросу информацию о создателе бота
				    $icq->sendMessage($msg['from'], $help_cmd['title']);
			      break;
				 
				  case '!bugs':
				    // спим
					sleep(1);
				    if($val!='')
				    {
				      mysql_query("INSERT INTO `bugs` VALUES (NULL, '".$msg['from']."', '".$val."')");
				      $icq->sendMessage($msg['from'], $help_cmd['title']);
			        }
				    else
				    {
					  $help_c = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='bug_err'"));
					  $icq->sendMessage($msg['from'], $help_c['title']);
					}
				  break;
				 
				  case $cmd:
					//вызываем дополнительные функции из папки plugins
				    $cmd($val);
			      break;
	            }
		    }
			// если команда не найдена отправляем соответствующее сообщение
		    else
		    {
			  // спим
			  sleep(1);
              $err = mysql_fetch_array(mysql_query("SELECT * FROM `rase` WHERE `description`='nocommands'"));
	          $icq->sendMessage($msg['from'], $err['title']);
		    }
	    }
	  //спим, чтоб не нагружать сервер
	  sleep(1);
	}
?>