Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
function loop() {
$this->debug("started message loop.");
$ts = $this->longpollsettings['ts']; //при запуске вызывается метод, получающий адрес сервера
while ($data = json_decode(file_get_contents("http://{$this->longpollsettings['server']}?act=a_check&key={$this->longpollsettings['key']}&ts=$ts&wait=20&mode=2"), true)) {//если есть обновления
if (rand(41, 49) == 42)
$this->lazyChecks(); //иногда выполняются проверки, например - вывод песни в статус, если она закончила играть, или ответ на комментарии в паблике (да, бот еще умеет отвечать на комментарии)
$ts = $data['ts'];
$up = $data['updates'];
if (count($up)) {
foreach ($up as $u) {
switch ($u[0]) {
case 4:// 4 - код события - "новое сообщение"
$this->receiveMessage($u[1], $u[2], $u[3], $u[4], $u[5], $u[6], $u[7]); // сама обработка сообщения
break;
default:
break;
}
}
}
if ($data['failed']) // если подключение не удалось, получаем новый адрес сервера
$this->loadLPServerSettings();
}
}
Разговорный бот на php+prolog