Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   YourICQ BOT (https://forum.antichat.xyz/showthread.php?t=72320)

NOmeR1 01.06.2008 23:38

YourICQ BOT
 
[ YourICQ BOT ]

Описание:
YourICQ BOT - это ICQ бот, написанный на PHP, с админкой для управления функциями, изменения настроек и просмотра логов.
Возможности админки:
Добавление, изменение и удаление функций (команд бота)
Изменение настроек бота: номер, пароль, метод сохранения логов, шаблон для доступа к командам и т.п.
Просмотр и очистка логов (удачные команды обозначены синим цветом, неудачные - красным)
Функции для админа, которые вызываются по ICQ:
Чтобы отключить бота, надо ему послать команду "stop", по-умолчанию - это сообщение "!stop", но если вы меняли шаблон команды, то сообщение будет другое :)
Команда "restart" нужна для перезапуска бота
Команда "admin_add" добавляет функцию к боту. Можно добавить как статичную (например "help"), то есть ту, которая не имеет параметров, так и динамичную функцию (например "translate")
Команда "admin_delete" с параметром, в котором указывается название команды, удаляет функцию.
Команда "admin_status" имеет 1 параметр - статус бота, который вы хотите поставить.
Комада "admin_xstatus" так же имеет 1 параметр - устанавливает статус-картинку.
INFO:
Все функции имеют PHP синтаксис
Есть возможность управления статусами, функциями по ICQ
Так же есть стандартные функции для примера: определение тИЦ и PR сайта, перевод текста рус->eng->рус, закодировать текст по заданному алгоритму, раскодировать текст
После любого изменения в админке, бота необходимо перезагрузить
Функции admin_add, admin_delete, admin_status и admin_xstatus а так же сохранение логов могут не работать, либо работать небольшое время после запуска бота, потому что может стоять ограничение времени коннекта с базой
Бот работает на классе WebIcqPro, но всё перечисленное выше сделал я :)
Чтобы бот заработал, нужно всего-лишь поставить на файл bot_config.php права на запись (0777), пройти установку по файлу install.php и удалить его

Тестировал бота на 2-х бесплатных хостингах:
000webhost.com, ueuo.com
Работает везде, но там стоят ограничения времени соединения с базой. (Но это не так страшно :))


Уф.. ну, думаю, описал как можно более подробно

Скачать:
[ WEBFILE ]
[ DUMP ]
[ SLIL ]
[ IFOLDER ]

Dimi4 01.06.2008 23:41

NOmeR1, молодец мен, обошол изоса ;)

Isis 01.06.2008 23:59

Конкуренция давит на время блин, придется делать обновления :(
Молодец))

NOmeR1 02.06.2008 00:03

Хы)) Я вне конкуренции!! :D
А вообще, сделал бы ты туда добавку функций (динамичных, статичных), я бы не стал писать его =)

Isis 02.06.2008 00:11

Цитата:

А вообще, сделал бы ты туда добавку функций (динамичных, статичных), я бы не стал писать его =)
Эм....такое есть =)

NOmeR1 02.06.2008 00:50

Ну у тебя приходится лезть в сорс и там менять, добавлять. У меня всё через админку делается =)

Stingers 02.06.2008 10:41

есть нужная мне функция перевода текста )) ГЫ. пасиб. =) ноо одна трабла нажимаю запустить открывается новая белая страница index.php =) хз почему.. и бот не выходит в онлайн :((

NOmeR1 02.06.2008 10:50

Добавь вначале файла index.php текст:
Код:

error_reporting(E_ALL);
Выводятся ошибки? Если да, то какие?

=faraon= 02.06.2008 11:35

Молодецццц. +1

Stingers 02.06.2008 16:05

Цитата:

Выводятся ошибки? Если да, то какие?
Ошибок нет =\ чистая страничка твой код вставил

mad_xakep 02.06.2008 17:02

все работает на отлично круглые сутки висит в сети без всякого крона

NOmeR1 03.06.2008 02:02

Обновил бота и соответственно первый пост. Исправил глюк, из-за которого он не работал на некоторых серваках. Удалил ненужные стандартные функции, добавил новых.. Настоятельно рекомендую обновить.

Isis 03.06.2008 02:57

Настоятельно рекомендую тебе спрятать свой Icq номер т.к. огого сколько тебе будут стучать =)

НTL 03.06.2008 03:57

На каких хостах еще работает?

Isis 03.06.2008 04:07

Там где есть сокеты, set_time_limit & ignore_user_abort

mad_xakep 03.06.2008 13:13

Цитата:

Сообщение от NOmeR1
Обновил бота и соответственно первый пост. Исправил глюк, из-за которого он не работал на некоторых серваках. Удалил ненужные стандартные функции, добавил новых.. Настоятельно рекомендую обновить.

не работает команда пр си он пишет что по нулям!

NOmeR1 03.06.2008 13:24

Цитата:

Сообщение от mad_xakep
не работает команда пр си он пишет что по нулям!

Не знаю, что у тебя глючит
Код:

NOmeR1 (13:21:01 3/06/2008)
!cy_pr "www.antichat.ru"

NOmeR1 Bot (13:21:05 3/06/2008)
тИЦ: 550
PR: 4


mad_xakep 03.06.2008 13:58

Цитата:

Сообщение от NOmeR1
Не знаю, что у тебя глючит
Код:

NOmeR1 (13:21:01 3/06/2008)
!cy_pr "www.antichat.ru"

NOmeR1 Bot (13:21:05 3/06/2008)
тИЦ: 550
PR: 4


Я(14:56:25 3/06/2008)
!cy_pr "www.antichat.ru"

bot (14:56:30 3/06/2008)
тИЦ: 0nPR: 0

Abramovich 03.06.2008 16:49

у меня для любого сайта пишет
тИЦ: 550
Pr: 4

.::BARS::. 03.06.2008 17:15

А есть бот как у калеостры? что бы анекдоты выдавал... рангом!? если есть, то стукните в личку...

Buffalon 03.06.2008 17:40

И кстати можно сказать что если пришол 'submit' то всё рульно...

Stern 03.06.2008 18:05

Хм...вопрос...как добавить ПРАВИЛЬНО команду.... имеем

Цитата:

//!инвиз
if(preg_match('~^!инвиз~', $msg_text))
{
preg_match('~\s+([0-9-]+)~', $msg_text, $icq);
foreach($icq as $i => $xek)
{
$xek = str_replace('-', NULL, $xek);
if($i)
{
$fp = fsockopen("kanicq.ru", 80, $errno, $errstr, 30);
$query = 'human=1&uin='.$xek.'&uin4login=&password4login=';
$out = "POST /invisible/?method=2 HTTP/1.1\r\n";
$out .= "Host: kanicq.ru\r\n";
$out .= "Referer: http://kanicq.ru/invisible/?method=2\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Content-length: ".strlen($query)."\r\n\r\n";
$out .= $query;
fwrite($fp, $out);
$result = '';
while (!feof($fp))
{
$result .= fgets($fp, 128);
}
if ( preg_match ("/Free for chat/i" , "$result")) { $status = "ГОТОВ К ОБЩЕНИЮ"; }
elseif ( preg_match ("/Online/i" ,"$result")) { $status = "ОНЛАЙН"; }
elseif ( preg_match ("/Away/i" , "$result")) { $status = "ОТОШЕЛ"; }
elseif ( preg_match ("/N\/A/i" , "$result")) { $status = "НЕДОСТУПЕН"; }
elseif ( preg_match ("/Occupied/i" , "$result")) { $status = "ЗАНЯТ"; }
elseif ( preg_match ("/DND/i" , "$result")) { $status = "ПРОСИТ НЕ БЕСПОКОИТЬ"; }
elseif ( preg_match ("/offline/i" , "$result")) { $status = "ОФФЛАЙН"; }
elseif ( preg_match ("/status\/invisible/i" , "$result")) { $status = "НЕВИДИМЫЙ"; }
else { $status = "НЕИЗВЕСТНО"; }

$send .= 'Номер '.$xek.' сейчас '.$status.'!'."\n";

}
else
{
continue;
}
}
}
Это из бота ISIS....надо переделать под этого :)
Пробывал так..не пашет..(


Цитата:

//!инвиз

preg_match('~\s+([0-9-]+)~', $msg_text, $icq);
foreach($icq as $i => $xek)
{
$xek = str_replace('-', NULL, $xek);
if($i)
{
$fp = fsockopen("kanicq.ru", 80, $errno, $errstr, 30);
$query = 'human=1&uin='.$xek.'&uin4login=&password4login=';
$out = "POST /invisible/?method=2 HTTP/1.1\r\n";
$out .= "Host: kanicq.ru\r\n";
$out .= "Referer: http://kanicq.ru/invisible/?method=2\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Content-length: ".strlen($query)."\r\n\r\n";
$out .= $query;
fwrite($fp, $out);
$result = '';
while (!feof($fp))
{
$result .= fgets($fp, 128);
}
if ( preg_match ("/Free for chat/i" , "$result")) { $status = "ГОТОВ К ОБЩЕНИЮ"; }
elseif ( preg_match ("/Online/i" ,"$result")) { $status = "ОНЛАЙН"; }
elseif ( preg_match ("/Away/i" , "$result")) { $status = "ОТОШЕЛ"; }
elseif ( preg_match ("/N\/A/i" , "$result")) { $status = "НЕДОСТУПЕН"; }
elseif ( preg_match ("/Occupied/i" , "$result")) { $status = "ЗАНЯТ"; }
elseif ( preg_match ("/DND/i" , "$result")) { $status = "ПРОСИТ НЕ БЕСПОКОИТЬ"; }
elseif ( preg_match ("/offline/i" , "$result")) { $status = "ОФФЛАЙН"; }
elseif ( preg_match ("/status\/invisible/i" , "$result")) { $status = "НЕВИДИМЫЙ"; }
else { $status = "НЕИЗВЕСТНО"; }

return 'Номер '.$xek.' сейчас '.$status.'!'."\n";

}
else
{
continue;
}
}

mad_xakep 03.06.2008 18:23

Цитата:

Сообщение от Abramovich
у меня для любого сайта пишет
тИЦ: 550
Pr: 4

он тебе античата выдает показатели они там и стоят

NOmeR1
выложи плиз норм работающую функцию пр и си

Stern 03.06.2008 18:25

И еще вопрос, как "ВЫКЛЮЧИТЬ" обработку оффлайн сообщений....??

Buffalon 03.06.2008 18:41

НА www.ueuo.com всё работает... ..Автору ПЛЮСЕГ))

Buffalon 03.06.2008 19:07

Цитата:

Сообщение от Stern
И еще вопрос, как "ВЫКЛЮЧИТЬ" обработку оффлайн сообщений....??

Хм/Эт как тя понять ,оффлайн?

А®ТеS 03.06.2008 19:39

Так и понять. Сообщения, которые были присланы в тот момент, когда бот был не в сети (offline).

Stern 03.06.2008 20:54

Тьфу...не оффлайн ток что обнаружил.....включил я хстатусы...и теперь при запросе его(статуса) мне бот шлет типа не найдено команды..(

rushter 03.06.2008 21:54

Выложите для теста плз готовые команды

NOmeR1 03.06.2008 22:02

Обновлено. Сделал 2 разные функции - pr и cy.

2rushter, там уже есть готовые команды. Набери боту "!help".

Stern, у меня всё проще)
Название команды делаешь любое (состоящее из латинских букв или цифр)
В переменных указываешь - $icq
Функция:
Код:

$fp = fsockopen("kanicq.ru", 80, $errno, $errstr, 30);
$query = 'human=1&uin='.$icq.'&uin4login=&password4login=';
$out  = "POST /invisible/?method=2 HTTP/1.1\r\n";
$out .= "Host: kanicq.ru\r\n";
$out .= "Referer: http://kanicq.ru/invisible/?method=2\r\n";
$out .= "Content-Type: application/x-www-form-urlencoded\r\n";
$out .= "Content-length: ".strlen($query)."\r\n\r\n";
$out .= $query;
fwrite($fp, $out);
$result = '';
while (!feof($fp))
{
$result .= fgets($fp, 128);
}
fclose($fp);
if ( preg_match ("/Free for chat/i" , "$result")) { $status = "ГОТОВ К ОБЩЕНИЮ"; }
elseif ( preg_match ("/Online/i" ,"$result")) { $status = "ОНЛАЙН"; }
elseif ( preg_match ("/Away/i" , "$result")) { $status = "ОТОШЕЛ"; }
elseif ( preg_match ("/N\/A/i" , "$result")) { $status = "НЕДОСТУПЕН"; }
elseif ( preg_match ("/Occupied/i" , "$result")) { $status = "ЗАНЯТ"; }
elseif ( preg_match ("/DND/i" , "$result")) { $status = "ПРОСИТ НЕ БЕСПОКОИТЬ"; }
elseif ( preg_match ("/offline/i" , "$result")) { $status = "ОФФЛАЙН"; }
elseif ( preg_match ("/status\/invisible/i" , "$result")) { $status = "НЕВИДИМЫЙ"; }
else { $status = "НЕИЗВЕСТНО"; }

return 'Номер '.$icq.' сейчас '.$status;

Чтобы отключить обработку оффлайн сообщений, надо из index.php удалить строку :
Код:

$icq->activateOfflineMessages($array['icq_number']);

Stern 03.06.2008 22:08

Вопрос...в админке поле "переменная", пишу $xexe => в поле "Фукнция" пишу скрипт и могу использовать переменную $xexe которая будет равна тому что написано
Цитата:

!команда ТУТ
?????????????????????????

NOmeR1 03.06.2008 22:10

Да, только у меня там в шаблоне ещё кавычки стоят, то есть:
Код:

!команда "ТУТ"
Теперь $xexe = ТУТ

Stern 03.06.2008 22:25

ТЬфу....оказывается все правильно у мну было с инвизом..(не тот вариант что я выложил)....тока я без "111" слал.(

зы. можно вырубить '".." как нить? а то убрал в настройках там где шаблон " и вообще перестали команды с $xexe работать :D

NOmeR1 03.06.2008 22:32

Зачем кавычки убирать? Тогда у тебя делитель параметров будет - пробел, и ты не сможешь его исползовать в самих параметрах.

Stern 03.06.2008 22:40

млин.....вот тут вот "плохая" реализация разделения переменных...ибо не удобно ставить спец символы когда с телефона сидишь...=((

NOmeR1 03.06.2008 22:47

Цитата:

Сообщение от Stern
млин.....вот тут вот "плохая" реализация разделения переменных...ибо не удобно ставить спец символы когда с телефона сидишь...=((

Хех.. Как ты себе представляешь автоматическим способом? Просто там автоматически выдираются заданные параметры) Можешь поставить и через пробел, но ведь согласись, ты напишешь:
Код:

!encode url md5 base64 md5 это строка для перевода
Как определить где начало первого параметра, а где начало другого параметра? Мозгами конечно можно, но вот скриптом - затруднительно.

rushter 03.06.2008 22:52

Блин у меня на любую команду пишет "Не существует такой команды"

Stern 03.06.2008 22:54

хм...а зачем делать сразу несколько ТАКИХ параметров, их можно разбить на несколько команд....например у бота Isisа там разделение пробелом идет...и норм:)

зы. удалил кавычки из шаблона, перестали вообще все команды работать... =\

mad_xakep 03.06.2008 22:57

NOmeR1 у меня пр все ровно ноль показывает амнсто пр ... все работает и тиц поазывает и т д но пр непоказывает долго думает около 30 сек

Slavka2 04.06.2008 11:59

Установил всё как написано бот заработал но никакие команды не работают бот молчит :(


Время: 20:23