PDA

Просмотр полной версии : Steals ICQ bot v. 0.7.1


S7iL3t
02.07.2007, 21:52
######################################
#
# Steals ICQ bot v. 0.8
#
# Coded by N3x^0r [ICQ# 321742]
#
# [http://s-teals.org]
# Оффициальный сайт проекта - http://icqbot.s-teals.org
#
#
######################################

[1] Описание и требования.
[2] Установка и запуск бота.
[3] Команды администрирования.
[4] Команды стандартного плагина.
[5] Замечания.

[1] Описание и требования ----------------------------------------------------------

Steals ICQ bot - ICQ бот, написанный на php, имеет модульную структуру, расширяется плагинами,
cовместим с различными реализациями протокола ICQ.

Данная версия использует реализацию протокола WebIcqPro.
Для работы бота требуется:

1) php 5.0 или более поздняя версия
2) возможность устанавливать бесконечное время работы скрипта

[2] Установка и запуск -------------------------------------------------------------

Для запуска бота нужно скопировать файлы из архива в нужную директорию,
прописать в конфигурационный файл все настройки и запустить файл bot.php

Настройки бота:

'bot_uin' - ICQ UIN, на котором будет висеть бот

'bot_password' - пароль от ICQ уина

'admin_pass' - пароль для управления ботом через протокол ICQ

'cmdsym' - символ, с которого начинаются обычные пользовательские команды (по умолчанию "!")

'admsym' - символ, с которого начинаются команды для администрирования бота (по умолчанию ".")

'plugin_dir' - директория относительно файла bot.php, в которой лежат файлы плагинов (по умолчанию "plugins")

'autosave' - если параметр установлен в 1, то при выходе бот будет сохранять банлист и список пользователей

'delaylisten' - время в секундах, через которое бот проверяет пришедшие сообщения. Рекомендуемое значение 1

'connect_attempts' - максимальное количество попыток переподключения в случае ошибки

[3] Команды для администрирования бота(управление через ICQ) -----------------------

!login <admin_pass> - залогиниться с правами админа.

.disable <command> - установить доступ к команде только администраторам.

.enable <command> - включить команду. Команде ставится уровень доступа 1.

.save - сохранить банлист и список пользователей.

.reconnnect - переподключить бота к ICQ.

.exit - завершить работу скрипта.

.logout - закончить сеанс администартора.

.alist <access lvl> - вывести список всех пользователей, у которых уровень доступа
равен access lvl или больше.

.stat - вывести настройки бота. Эта команда не выводит пароль от уина,
он заменяется на ********.

.set <option> <value> - установить переменную настройки option в значение value.

.setaccess <uin> <level> - установить уину uin уровень доступа level

.install <filename> - запустить плагин с именем файла filename. Команда позволяет
подгружать плагины без рестарта бота.

.ban <uin> - забанить уин uin.

.unban <uin> - разбанить уин uin.

.banlist - показать банлист.

[4] Команды стандартного плагина ---------------------------------------------------
Пользовательские команды в стандартном плагине 'default.php':

!md5 <string> - посчитать md5 хеш строки

!b64e <string> - закодировать строку в base64

!b64d <string> - раскодировать строку из base64

!ip2host <ip> - узнать имя хоста по ip-адресу

!host2ip <host>- узнать ip-адрес по имени хоста

!dec2bin <num> - перевести num из десятичной системы в двоичную

!bin2dec <num> - перевести num из двоичной системы в десятичную

!num_conv <num> <base1> <base2> - перевести num из системы с основанием base1 в base2

!urle <url> - закодировать URL

!urld <encoded url>- раскодировать URL


Минимальный уровень доступа 0, максимальный 100.
По умолчанию команды имеют уровень доступа 1.
Незарегистрированные пользователи имеют уровень доступа 1, то есть выставление
уину права доступа 0 равносильно его бану, но работает медленнее.

Контакты: ICQ #321742
Mail: n3xorus[собака]gmail.com
IRC: irc.wondernet.nu/#steals

Скачать последнюю версию Steals ICQ bot с оф. сайта (http://icqbot.s-teals.org/download.php?category=bot&version=latest)

ICQ Pro
02.07.2007, 22:00
Пасиба - )

mad_xakep
03.07.2007, 12:03
подскажите пожалуйста платный хостинг под этот бот,, чтоб он нормально работал тама!

S7iL3t
03.07.2007, 17:32
03.07.2007 вышла версия 0.8
[+] Добавлено самотестирование бота, которое выводит дополнительную
информацию при возникновении проблем с запуском бота.
[+] Добавлена администраторская команда plugins, которая выводит
список установленных плагинов.
Исправлены мелкие баги.
-Самотестирование проверяет следущие возможности системы:
-- версия php (должна быть больше или равна 5)
-- наличие библиотеки сокетов
-- права на запись файлов банлиста и юзерлиста
-- возможность устанавливать бесконечное время работы скрипта

Последнее требование обязательно, без него бот не будет работать. Также
проверяются некоторые конфигурационные переменные на корректность.

Также в архиве добавлено Руководство по написанию плагинов к боту, с помощью которого можно самому дописывать плагины и расширять функционал бота.

Скачать Steals ICQ bot v. 0.8 (http://www.s-teals.org/release/stealsicqbot.zip)

ENFIX
03.07.2007, 18:53
Норм бот, молодцы! (;

Ni0x
04.07.2007, 00:55
Бота смотрел, очень неплохо

n0153r
04.07.2007, 21:52
спс сам пользуюсь !
Все на норм уровне ! легко добавлять новие функции !
молодца...

гейлордфакерЪ
05.07.2007, 14:29
прекрасный бот и пост
несомненный +2

†Nood1e†
05.07.2007, 14:34
бот понравился! много команд )

S7iL3t
17.08.2007, 13:54
В связи с возросшей популярностью бота запущен официальный сайт данного проекта.
Welcome,
icqbot.s-teals.org (http://icqbot.s-teals.org)

На этом сайте будут публиковаться все новые версии бота, а также различные плагины, документация, хелпы и прочее.
Последняя версия бота всегда доступна по ссылке:
http://icqbot.s-teals.org/download.php?category=bot&version=latest (http://icqbot.s-teals.org/download.php?category=bot&version=latest)

xaker-boss
17.08.2007, 22:45
Бот классный, но у меня почемуто неработают команды
.reconnnect - переподключить бота к ICQ.

.exit - завершить работу скрипта.

ZeTiX
18.08.2007, 09:37
бот прикольный.
вот плагинов бы для него побольше ...

anakin
18.10.2007, 22:59
Перезалейте плизз. А то я смотрю сайт в бане ((
Видемо прову не понравилса бот так они его забанили (
Если у когото есть последняя версия бота перезалейте его плизз на рапиду.

ZeTiX
18.10.2007, 23:59
Steals ICQ bot v. 0.9 beta

http://rapidshare.com/files/63501822/stealsbot_090.rar

http://ifolder.ru/3789101

Mixon
21.08.2008, 14:49
Вот что он у меня пишет


Steals ICQ bot version 0.9 by N3x^0r Testing bot and system.. Warning: no php_sockets extension Done Loading plugin: X:\home\localhost\www\icq_bot\plugins\default.php. ..OK Loading data... Items in banlist: 0 Items in userlist: 1 Connecting ... Connected. Ready to work. Disconnected. Connecting ... Connection error: Rate limit exceeded (reservation). Please try to reconnect in a few minutes Disconnected. Connecting ... Connection error: Rate limit exceeded (reservation). Please try to reconnect in a few minutes Disconnected. Connecting ... Connection error: Rate limit exceeded (reservation). Please try to reconnect in a few minutes Disconnected. Connecting ... Connection error: Rate limit exceeded (reservation). Please try to reconnect in a few minutes Disconnected. Connecting ... Connection error: Rate limit exceeded (reservation). Please try to reconnect in a few minutes Disconnected. Connecting ... Connection error: Rate limit exceeded (reservation). Please try to reconnect in a few minutes Disconnected. Connecting ... Connection error: Rate limit exceeded (reservation). Please try to reconnect in a few minutes Disconnected. Connecting ... Connection error: Rate limit exceeded (reservation). Please try to reconnect in a few minutes Disconnected. Connecting ... Connection error: Rate limit exceeded (reservation). Please try to reconnect in a few minutes Disconnected. Connecting ... Connection error: Rate limit exceeded (reservation). Please try to reconnect in a few minutes Disconnected. Bot stopped.

Dr.End
21.08.2008, 17:31
Неконектится с сервером, что-то с соединением у тебя...

Frize
17.11.2008, 20:48
народ кто нить писал для него плагины? нужны плагин который будет отправлять рандомно анекдот, могу заплатить за плагин

a1ex
17.11.2008, 21:47
Люди а на tu1.ru будет работать?

Frize
18.11.2008, 02:22
офф сайт http://steelbot.net/ уже вышла версия 1.3
народ не спать=)

aRDee
18.11.2008, 22:57
Frize
есть такое,
анекдоты выдирать.
Просто добавь в default.plugin.php
function plg_anek()
{
$c=file_get_contents('http://www.anekdot.ru/scripts/rand_anekdot.php?t=&rank=4&lim=1');
preg_match('~<pre>(.+?)</pre>~is', $c, $reg);
$r=explode("</h1>",$reg[0]); $r=str_replace("</pre>","",$r[1]); $r=str_replace("<br />","\n",$r);
Proto::Msg(urldecode($r));};

и

SteelBot::RegisterCmd("anek","plg_anek", 1,"anek - анекдот");

код неказист, но рабочий)

Frize
19.11.2008, 00:23
Frize
есть такое,
анекдоты выдирать.
Просто добавь в default.plugin.php
function plg_anek()
{
$c=file_get_contents('http://www.anekdot.ru/scripts/rand_anekdot.php?t=&rank=4&lim=1');
preg_match('~<pre>(.+?)</pre>~is', $c, $reg);
$r=explode("</h1>",$reg[0]); $r=str_replace("</pre>","",$r[1]); $r=str_replace("<br />","\n",$r);
Proto::Msg(urldecode($r));};

и

SteelBot::RegisterCmd("anek","plg_anek", 1,"anek - анекдот");

код неказист, но рабочий)

неа не работает, команду принимает а текст отсылать не хочет

Frize
19.11.2008, 00:25
вот плагин который выводит рандомную фразу


function rand_plugin() {

$arr = file('https://yoursite/file.txt'); // путь к файлу
$num = mt_rand(1, count($arr));
$content = $arr[$num];

SteelBot::Msg($content);
}

SteelBot::RegisterCmd('test', 'rand_plugin', 1, "test- случайная фраза");

Frize
19.11.2008, 02:14
Frize
есть такое,
анекдоты выдирать.
Просто добавь в default.plugin.php
function plg_anek()
{
$c=file_get_contents('http://www.anekdot.ru/scripts/rand_anekdot.php?t=&rank=4&lim=1');
preg_match('~<pre>(.+?)</pre>~is', $c, $reg);
$r=explode("</h1>",$reg[0]); $r=str_replace("</pre>","",$r[1]); $r=str_replace("<br />","\n",$r);
Proto::Msg(urldecode($r));};

и

SteelBot::RegisterCmd("anek","plg_anek", 1,"anek - анекдот");

код неказист, но рабочий)

скрипт рабочий, но у меня косяк в кодировки, русский язык бот не выводит, что можно сделать?

функцию использовать:
convert_cyr_string ( string str, string from, string to )
только как?че?=))))

aRDee
19.11.2008, 09:51
неплохой монолог)
на anekdot.ru кодировка win1251, а бот использует utf-8.

просто заменить последнюю строку в функции на
Proto::Msg(iconv("WINDOWS-1251", "UTF-8",$r);};

p.s.
яхз, что там делает urldecode...

Frize
19.11.2008, 18:29
добавил, плагин вобще не загружается

aRDee
19.11.2008, 20:19
таm было указано "заmенить", а ты скорее всего просто добавил...

вообщеm убирай все изmенения из default.plugin.php(или mеняй на исходный) и просто добавь в папку с плагинаmи этот файл
bugaga.plugin.php (http://slil.ru/26349309)
перезапускаешь бота и всё, готово.

если не верится в работоспособность, проверь на боте: icq 358710501

Frize
19.11.2008, 21:33
угу, все норм пашет, спс

Frize
19.11.2008, 23:13
плагин берет погоду с gismeteo.ru

class weather {

static $towns = array(),
$refresh_delay = 3600,
$regexp = '~<a\shref="http:\/\/www.gismeteo.ru\/towns\/(\d{5}).htm">(.*?)<\/a>~';

static function Refresh() {
$result = '';
if ($sock = fsockopen("search.gismeteo.ru", 80) ) {
fputs ($sock, "GET http://search.gismeteo.ru/?req=listbycountry&country=%D0%EE%F1%F1%E8%FF&lang=rus HTTP/1.0\n");
fputs ($sock, "Connection: Keep-Alive\n".
"User-Agent: SteelBot/1.0 (http://steelbot.net)\n".
"Host: search.gismeteo.ru\n".
"Pragma: no-cache\n".
"Cache-Control: no-cache\n".
"Connection: close\n\n" );

while ( !feof($sock) ) {
$result .= fgets($sock, 1024);
}
preg_match_all(self::$regexp, $result, $matches);

foreach($matches[2] as $k=>$town_name) {
self::$towns[$matches[1][$k]] = $town_name;
}
fclose($sock);
echo "[weather] town list refreshed (".count(self::$towns)." towns).\n";

} else {
echo "[weather] ERROR: can't establish connection to search.gismeteo.ru\n";
}
SteelBot::TimerAdd(self::$refresh_delay, array('bashorg', 'RefreshLast'));
}

static function GetWeather($town) {
if ( empty($towm) ) {
// не указали город, выводим помощь по команде
} else {
$town_id = array_search($town);
if ($town_id == false) {
SteelBot::Msg("Нет информации о погоде в городе $town");
return;
}
$result = '';
if ($sock = fsockopen("www.gismeteo.ru", 80) ) {
fputs ($sock, "GET http://www.gismeteo.ru/towns/$town_id.htm HTTP/1.0\n");
fputs ($sock, "Connection: Keep-Alive\n".
"User-Agent: SteelBot/1.0 (http://steelbot.net)\n".
"Host: search.gismeteo.ru\n".
"Pragma: no-cache\n".
"Cache-Control: no-cache\n".
"Connection: close\n\n" );

while ( !feof($sock) ) {
$result .= fgets($sock, 1024);
}

// здесь парсим информацию о конкретном городе
//preg_match_all(self::$regexp, $result, $matches);

//здесь составляем информацию о погоде
$weather = '';

SteelBot::Msg($weather);
} else {
echo "[weather] ERROR: can't establish connection to search.gismeteo.ru\n";
}
}
}

}

SteelBot::RegisterCmd('weather', array('weather', 'GetWeather'), 1, 'weather город - узнать погоду')

Для завершения в нем нужно дописать парсер информации для конкретного города, например для http://www.gismeteo.ru/towns/22471.htm
;