Как написать своего личного бота под icq/или как научиться большему
Доброго времени суток ! Дорогие форумчане, в данной статье я расскажу Вам о написании своего личного бота под ICQ, писать мы будем его на PHP.
Итак, что нам для начала понадобится
1. Хостинг с поддержкой PHP (список хостингов которых можно выбрать под данный скрипт)
2. Прямые руки и небольшое знание языка PHP
3. ICQ номерок отведенный под бота
----- Старт -----
1. Первым этапом, вам понадобится класс для создания бота, ведь он поможет с исправлением проблем протокола ICQ, а значит позволить нам подключиться к ICQ за пару секунд !
Автор данной идеи выбрал - "mlCQ library v0.4"
Назвать класс можно произвольно, например class.php, можно временно забыть о нем.
- Перейдем к созданию самого главного - конфига бота, в нем будут храниться настройки самого скрипта и нашего чудо-бота
Конфиг мы назовем conf.php
PHP код:
<?php
DEFINE('UIN_ADMIN','ваша ася'); // Номер ICQ админа
// Уин бота
DEFINE('UIN_BOT','тут аська бота'); // Номер ICQ бота
DEFINE('PASS_BOT','тут пароль'); // Пароль от уина ICQ бота
Сохраняем мы класс и конфиг (class.php & config.php) в одной папке.
2. Перейдем ко второму шагу, а это оболочка самого бота и скрипта, которые и будут управлять всем нашим функционалом, в нем будет храниться скриптус входа в режим online, и скрипт обработки.
Настроим параметр дня рождения (icq birthday), логов и перейдем к самому запуску бота
Код:
//Birthday
if(BOT_BIRTHDAY=='1') { $BD='BIRTHDAY'; } // Разбираемся с параметром Днюхи бота
//Прочее
set_time_limit(0); // На же не надо чтобы бот постоянно выходил из она?
ignore_user_abort(true); // Игнор аборта
//Подключение
$mlCQ=new mlCQ(); // Создаем клас
$mlCQ->create_identity("me",UIN_BOT,PASS_BOT); //Вводим параметры входа
$mlCQ->connect(); //Создаем подключение
$mlCQ->login(); // Логинимся
// Файл логирования
if(LOG_SET=='1') { $mlCQ->start_logging(LOG_FILE); } // Если нужно, наш клас будет вести логи
//X-Traz
$mlCQ->set_status(BOT_STATUS, $BD); //Статус бота
//Удаляем не нужные офлайн сообщения
$mlCQ->request_offline_messages();
$mlCQ->delete_offline_messages();
$still_there=true; $code='';
Уделим внимание запуску команд:
Код:
$list = "Набирите команды что описаны ниже:
person admin - О админе
person you - О Вас
";
$personallist = array(
"admin" => "Админу вчера выполнилось 150 лет. Он живет в г.Черновцы и жрет пиццу",
"you" => "Вы видимо дядя что шяс сидит в асике"
);
$help='Вас приветствует ICQ Info BOT
Команды бота:
help - Вывод справки (её Вы сейчас читаете)
admin ваше_сообщение - Связь с админом
list - Список персонала
person чел - Инфа о нем *
';
Вот теперь самая сложная часть которая разместит в себе весь остаток кода!
Код:
// Отправка листа с командами
case 'list':
$mlCQ->send_message($from,$list);
break;
// Отправка ответа с данными о персоне
case 'person':
$messa = $personallist[$cmd[1]];
if (isset($messa)) {
$mlCQ->send_message($from,"$messa");
} else {
$mlCQ->send_message($from,"Такой персоны не найдено");
}
break;
// Функция остановки работы бота
case 'stop':
if($from==UIN_ADMIN) {
$mlCQ->send_message($from,'Работа бота завершена');
$mlCQ->close(); //Закрываем соединение
}
break;
//Если ни одна из команд не найдена, пишем дефолт сообщение
default:
$mlCQ->send_message($from,"Для вывода справки по командам наберите \"help\" (без кавычек)");
break;
}
}
}
?>
Сохраним файлец как bot.php
И последним шагом загрузим на свой хостинг !
На этом все, всем спасибо, с Вами был zFrost.
Исходная статья [Ссылки могут видеть только зарегистрированные пользователи. ]
Re: Как написать своего личного бота под icq/или как научиться большему
На любом хостинге ограничение на время выполнения скрипта, set_time_limit не прокатит, если используется связка nginx-fpm то вообще можно забыть(ибо настраивать еще и nginx-proxy) + утечки памяти, да и вообще как по-мне это велосипед без колес и руля.
Плюс не уловил сути вообще этого бота, это уже готовый бот, от которого просто заюзана либа или как?
Re: Как написать своего личного бота под icq/или как научиться большему
Цитата:
Сообщение от Hermein
На любом хостинге ограничение на время выполнения скрипта, set_time_limit не прокатит, если используется связка nginx-fpm то вообще можно забыть(ибо настраивать еще и nginx-proxy) + утечки памяти, да и вообще как по-мне это велосипед без колес и руля.
Плюс не уловил сути вообще этого бота, это уже готовый бот, от которого просто заюзана либа или как?
И напоследок для чего это вообще нужно?
Здравствуй, весьма благодарен тому, что очень понятно и адекватно выразился. Вынужден с тобой согласиться, бот считай готовый, просто нужно внести пару своих изменений, вряд ли он кому понадобится, данный материал скорее для фана и познания нового материала.
Re: Как написать своего личного бота под icq/или как научиться большему
Цитата:
просто нужно внести пару своих изменений
Учитывая все дыры самого php, его утечки, пожирания памяти и список можно бесконечно продолжать тема более чем не актуальна, раздел называется Web-программирование и технологии, многие, наверное до сих пор не знают что Web-программирование != php.
Если взять компетентные источники, то бОльшая часть серьезных проектов на данный момент написаны на Java, .NET и node.js
Взять к примеру тот же vk.com, в котором используется собственная технология kphp, от настоящего php с интерпретацией в нем нет ничего, по-сути это php-код, который компилится в нативный бинарник в С++, опять таки если взять отдельный функционал, например im(система диалогов), то она построена на базе Node.Js
ИМХО давно пора выкинуть php на свалку за ненадобностью, можно разводить много холиваров, но все-же технология устарела просто нереально, хоть и очень простая и любой школьник новичок может начать "кодить" без особых проблем, но все-же надо следовать прогрессу, а не топтаться на месте.
Re: Как написать своего личного бота под icq/или как научиться большему
В дополнение вышесказанному:
Ruby (Rails) - про этот язык наверное не слышал только ленивый, чаще всего упоминается именно Ruby on Rails, рельса - это фреймворк для веб разработки, есть множество готовых "гемов" ускоряющих разработку, писать на руби нынче меинстрим.
Python (Django) - не менее популярный чем руби, очень краткий и лаконичный <3
Node.js - данный язык покупает нас своей асинхронностью, очень шустрое исполнение и довольно прост в реализации, правда за асинхронность приходится платить вереницами коллбеков по этому ждем утверждение спецификации ES6 которая принесет промисы и таски.
В принципе существует еще множество языков для веб разработки, те же Go, Dart, или компилируемый в JavaScript CoffeeScript .
Re: Как написать своего личного бота под icq/или как научиться большему
Цитата:
Сообщение от Hermein
Учитывая все дыры самого php, его утечки, пожирания памяти и список можно бесконечно продолжать тема более чем не актуальна, раздел называется Web-программирование и технологии, многие, наверное до сих пор не знают что Web-программирование != php.
Если взять компетентные источники, то бОльшая часть серьезных проектов на данный момент написаны на Java, .NET и node.js
Взять к примеру тот же vk.com, в котором используется собственная технология kphp, от настоящего php с интерпретацией в нем нет ничего, по-сути это php-код, который компилится в нативный бинарник в С++, опять таки если взять отдельный функционал, например im(система диалогов), то она построена на базе Node.Js
ИМХО давно пора выкинуть php на свалку за ненадобностью, можно разводить много холиваров, но все-же технология устарела просто нереально, хоть и очень простая и любой школьник новичок может начать "кодить" без особых проблем, но все-же надо следовать прогрессу, а не топтаться на месте.
Мое мнение совпадает с твоим, и ты прав, это 100 %
Холивар не нужен, php реально постарел, и вышесказанное тому пруф.
Но прежде чем идти к самому высокому, надо познать самое низкое, php, js, css, html.