php класс для создания своего icq клиента

Статус
В этой теме нельзя размещать новые ответы.
как же это работает?

Где скачать нормальный icq бот???

Добавлено через 35 секунд
Нужен рабочи1 icq бот

Добавлено через 5 минут
icq нужен бот!!!!!!!!!!
 
mff
Какой функционал нужен под icq бота?Опиши что он должен уметь.
GreenFest
Опиши процесс как и где ты пытался запустить скрипт
 
Решил запостить ещё один небольшой примерчик бота.Надеюсь после его изучения вопросов станет значительно меньше :D

PHP:
<?php
// IcqBot - Автоответчик
define('ADMIN', ''); #ася админа
define('UIN', ''); #номер аси
define('PASSWORD', ''); #пароль от номера
$aw='off'; #режим автоотвечика
$awtext='Меня нет, оставте свое текстовое сообщение'; #текст автотвечика
$amsg='on'; #дублирывать сообщения в асю админа
set_time_limit (0);
ignore_user_abort(true);
include 'WebIcqLight.class.php';
$icq = new WebIcqLight();
$icq->errorstream = false;
$icq->dbgstream = false;
if(!$icq->connect(UIN, PASSWORD))
{
	echo $icq->error."<br>\r\n";
	exit();
}
// $icq->setstatus(STATUS_NA);

while($icq->is_connected()){
	$msg = $icq->read_message();
	$cmd = explode(" ",$msg['message']);
	$cmd[0] = strtolower($cmd[0]);
	if ($msg) {
		if($cmd[0] == '#to' && $msg['from'] == ADMIN ){
			$text2send = $cmd[2];
			for($i=3; $i<=count($cmd); $i++) $text2send.=' '.$cmd[$i];
			$icq->send_message( $cmd[1], $text2send );
		}
		elseif($msg['message'] == '#exit' && $msg['from'] == ADMIN){
			$icq->disconnect();
			exec('killall php; killall httpd');
			exit;
		}
		elseif($cmd[0] == '#md5'){
			$text2send = $cmd[1];
			for($i=2; $i<=count($cmd); $i++) $passtext.=' '.$cmd[$i];
			$icq->send_message($msg['from'], md5(trim($passtext)));
		}
		elseif($msg['message'] == '#about'){
			$icq->send_message( $msg['from'], "PHP ICQ бот, построен на класе WebIcqLight.class.php" );
		}
		elseif ($msg['message'] == "#aw on"  && $msg['from'] == ADMIN){
			$aw="on";
			$icq->send_message($msg['from'], 'Автоответчик включен');
		}
		elseif ($msg['message'] == "#aw off"  && $msg['from'] == ADMIN){
			$aw="off";
			$icq->send_message($msg['from'], 'Автоответчик выключен');
		}
		elseif ($msg['message'] == "#amsg on"  && $msg['from'] == ADMIN){
			$amsg="on";
			$icq->send_message($msg['from'], 'Переадресация включена');
		}
		elseif ($msg['message'] == "#amsg on"  && $msg['from'] == ADMIN){
			$amsg="on";
			$icq->send_message($msg['from'], 'Переадресация включена');
		}
		elseif ($msg['message'] == "#amsg off"  && $msg['from'] == ADMIN){
			$amsg="off";
			$icq->send_message($msg['from'], 'Переадресация выключена');
		}
		elseif ($msg['message'] == "#amsg off"  && $msg['from'] == ADMIN){
			$amsg="off";
			$icq->send_message($msg['from'], 'Переадресация выключена');
		}
		elseif ($msg['message'] == "#help" && $msg['from'] == ADMIN){
			$icq->send_message($msg['from'],"#exit - выйти\r\n#aw off/on - статус автотвечика\r\n#awtext (text) - текст автотвечика\r\n#to (uin) (text) - послать сообщение на номер\r\n#amsg off/on - дублирывать сообщения в асю админа\r\n#md5 - пасс в md5 хеш\r\n#about - о боте");
		}
		else{
			$filelog = 'log.txt'; //файл логов
			$chislo = date("d.m-H:i:s");
			if (is_writable($filelog)){
				if (!$handle = fopen($filelog, 'a')) {exit;}
				if (fwrite($handle,  $chislo." ".$msg['from'].": ".$msg['message']." \r\n") === FALSE) {exit;}
				fclose($handle);
			}
			if($msg['from'] <> ADMIN && $amsg == 'on'){
				$icq->send_message( ADMIN, $msg['from'].": ".$msg['message']);
			}
			if($msg['from'] <> ADMIN && $aw == 'on'){
				$icq->send_message( $msg['from'], $awtext);
			}
		}
	}
	flush();
	sleep(1);
}
?>
 
м, может я что-то пропустил, но как насчет авторизации?
без авторизации бот сидит в оффлайне.
может я класс плохо копал, но какая функция хоть подскажите)
 
sw04
Скорее исходник плохо смотрел:-]
PHP:
define('UIN', ''); #номер аси 
define('PASSWORD', ''); #пароль от номера

if(!$icq->connect(UIN, PASSWORD)) # коннект к серверу icq с юином UIN и паролем PASSWORD
{ 
    echo $icq->error."<br>\r\n"; # Если ошибка - выводим на форму.
    exit(); # Выход
}
 
Kane как поставить боту статус? =) типа ICQ 5 или QIP и как сделать иконку с сообщением статус типа пью кофе?
 
dotsenko
Для этого тебе нужно скачать класс с поддержкой функций смены статуса.Всеэто находится тут:
На примере моего скрипта что я выше размещал покажу смену статусов.
Замени строчку
PHP:
$icq = new WebIcqLight();
на
PHP:
$icq = new WebIcqPro();
после него можно добавить
PHP:
$icq->setstatus(STATUS_NA, STATUS_DCDISABLED);
И инклудь pro класс
PHP:
 include 'WebIcqPro.class.php';
Добавь еще чтоб можно менять статус было
Код:
PHP:
elseif ($cmd[0]] == "#status"  && $msg['from'] == ADMIN){
	if($cmd[1] == 'NA' || $cmd[1] == 'ONLINE' /*.... и тд.*/){
		$icq->setstatus(STATUS_.cmd[1]);
	}
	else{
	$icq->send_message( $msg['from'], "Неправельный статус");
	}
	$icq->send_message($msg['from'], 'Автоответчик выключен');
}
Вот тебе простенький пример смены статусов.
а вот список всех статусов доступных для бота:
PHP:
/*	 * Parameters are case insensitive. Try to set different substatuses for privicy and etc. purposes.
	 * You can set any icq status from the list:
	 * - STATUS_ONLINE
	 * - STATUS_AWAY
	 * - STATUS_DND
	 * - STATUS_NA
	 * - STATUS_OCCUPIED
	 * - STATUS_FREE4CHAT
	 * - STATUS_INVISIBLE
	 * 
	 * Also possible to set substutuses:
	 * - STATUS_WEBAWARE
	 * - STATUS_SHOWIP
	 * - STATUS_BIRTHDAY
	 * - STATUS_WEBFRONT
	 * - STATUS_DCDISABLED
	 * - STATUS_DCAUTH
	 * - STATUS_DCCONT */
Все это выдрал из самого исходника класса.Статус - это значек типа: отошел, занят, свободен.... А субстатус - это сами картинки=)
 
  • Заблокирован
  • #29
GreenFest
Опиши процесс как и где ты пытался запустить скрипт

да на обычном хостинге!
Извените за наглость но как правильно запустить бота на хостиннге



Характеристика тарифа....

Характеристики бесплатного хостинга

Количество доменов: 2
Количество субдоменов: 10
Количество баз данных MySQL: 4
Дисковое пространство: до 500 Мб
Размер базы данных: до 500 Мб
Доступ по протоколу FTP: да
Доступ по протоколу SSH: нет
Почтовые ящики: 30
Стоимость размещения сайтов: бесплатно
Поддерживается стандартный набор: apache-1.3+php4, cgi, mysql-4.0, perl, ssi, .htaccess


Дополнительно

Поддержка по вопросам хостинга: через панель управления
Помощь в настройке скриптов: нет
Резервное копирование: нет
 
Никак, на обычном хосте он не станет, надо бесконечное время испольнения. Берите vds у firstvds и вся жизнь маком
 
Статус
В этой теме нельзя размещать новые ответы.
Назад
Сверху