Полезная информация


----

Начать новую тему Ответить на тему
АвторСообщение

 Сообщение Бот PHP API 
#1 

Случайный аватар. Пользователю рекомендуется загрузить свой аватар в Настройках профиля

Здравствуйте!!! С уважением к вам Александр Сазанов!
Помогите создать бота, а то знакомый разработчик, начал мне помогать, и забросил, по семейным обстоятельствам. если можно то сделать три в одном так например скажем, т.у. говорун, музыка, ютуб, ну и как ниже указано анекдоты, заранее благодарю!

API внешнего бота

Реализовать внешнего бота можно на любом удобном языке программирования, необходимо только получить данные от сервера Сервиса. Данные на внешний сервер передаются методом POST через следующие переменные:

event — событие, которое произвел пользователь;
chatid — ID чата в системе August4u;
userid — ID сессии пользователя;
profile — номер профайла пользователя, если он зарегистрирован;
nick — ник пользователя;
mess — сообщение пользователя;
param — битовый набор флагов, определяющих свойства пользователя (пол, личка, невидимость и т.д.)
используется переменная param, в которой содержатся свойства пользователя.

Всего внешний бот реагирует на три события от пользователя и на одно событие для запуска заданий по расписанию, соответственно, переменная event может принимать одно из значений:

enter — пользователь вошел в чат;
quit — пользователь покинул чат;
mess — пользователь отправил сообщение;
cmd — запуск задания по расписанию.

Для событий enter и quit не передаются сообщения, а для события quit также еще не передается и ник пользователя. Для события cmd имя команды передается в переменной mess.

Т.к. событие cmd инициируется не пользователем, то переменные profile, nick и param не содержат никаких значений, а переменная userid используется особым образом — в ней передается битовый набор комнат, в которых должно отображаться сообщение бота.

Результатом работы внешнего бота должна быть строка в кодировке windows-1251, которая будет выведена в окно чата от имени бота.

Шаблон внешнего бота на PHP

<?
define ('USER_SEX', 0x03);
define ('USER_BIRTHDAY', 0x04);
define ('USER_NEWBIE', 0x08);
define ('USER_PRIVATE', 0x10);
define ('USER_INVISIBLE', 0x20);
define ('USER_ADMIN', 0x40);

$Event = $_POST ['event'];
$ChatID = intVal ($_POST ['chatid']);
$UserID = intVal ($_POST ['userid']);
$Profile = intVal ($_POST ['profile']);
$Nick = $_POST ['nick'];
$Mess = $_POST ['mess'];
$Param = intVal ($_POST ['param']);
$Sex = $Param & USER_SEX; // получить пол пользователя: 0 = не определено, 1 = мужской, 2 = женский
$Birthday = $Param & USER_BIRTHDAY; // у пользователя день рождения
$Newbie = $Param & USER_NEWBIE; // пользователь зашел в чат с регистрацией первый раз
$Private = $Param & USER_PRIVATE; // пользователь отправил сообщение в личку
$Invisible = $Param & USER_INVISIBLE; // пользователь находится в невидимках
$Admin = $Param & USER_ADMIN; // пользователь является администратором

switch ($Event) {
case 'enter':
// обработчик входа пользователя в чат
...
break;
case 'quit':
// обработчик выхода пользователя из чата
...
break;
case 'mess':
// обработчик сообщения от пользователя
...
break;
}
?>

Пример использования задания по расписанию для вывода анекдота

<?
define ('USER_SEX', 0x03);
define ('USER_BIRTHDAY', 0x04);
define ('USER_NEWBIE', 0x08);
define ('USER_PRIVATE', 0x10);
define ('USER_INVISIBLE', 0x20);
define ('USER_ADMIN', 0x40);

$Event = $_POST ['event'];
$ChatID = intVal ($_POST ['chatid']);
$UserID = intVal ($_POST ['userid']);
$Profile = intVal ($_POST ['profile']);
$Nick = $_POST ['nick'];
$Mess = $_POST ['mess'];
$Param = intVal ($_POST ['param']);

switch ($Event) {
case 'enter':
break;
case 'quit':
break;
case 'mess':
break;
case 'cmd':
// имя задания в настройках бота anekdot
if ($_POST ['mess'] == 'anekdot') {
include "include/anekdot.inc.php";
$a = get_anekdot ();
print "$a";
exit;
}
break;
}
?>

Примерно пытался что то добавить ко второму скрипту ВОТ ПРИМЕР

<?php
$ARTICLE = array (
'http://lolanekdot.ru/anekdoty-pro-muzha/
'http://lolanekdot.ru/anekdoty-pro-muzhikov-parney/
'http://lolanekdot.ru/anekdoty-pro-zhenu/
'http://lolanekdot.ru/anekdoty-pro-zhenschin-devushek/
'http://lolanekdot.ru/anekdoty-pro-seks-pro-eto/
'http://lolanekdot.ru/milye-anekdoty/
'http://lolanekdot.ru/anekdoty-pro-papu-mamu/
'http://lolanekdot.ru/anekdoty-pro-syna-dochku/
'http://lolanekdot.ru/anekdoty-pro-ohotu-i-rybalku/
'http://lolanekdot.ru/anekdoty-pro-armiyu-soldat-voynu/
'http://lolanekdot.ru/anekdoty-pro-politiku/
'http://lolanekdot.ru/anekdoty-pro-rabotu/
'http://lolanekdot.ru/anekdoty-pro-sport/
'http://lolanekdot.ru/anekdoty-pro-poruchika-rzhevskogo/
'http://lolanekdot.ru/anekdoty-pro-vovochku/
'http://lolanekdot.ru/anekdoty-pro-shtirlica-myullera/
'http://lolanekdot.ru/anekdot-pro-sherloka-holmsa-doktora-vatsona/
'http://lolanekdot.ru/anekdoty-pro-zolotuyu-rybku-dzhina/
'http://lolanekdot.ru/anekdoty-pro-petku-i-vasiliya-ivanovicha/
'http://lolanekdot.ru/anekdoty-pro-vinni-puha-i-pyatachka/
'http://lolanekdot.ru/anekdoty-gospod-bog/
'http://lolanekdot.ru/anekdoty-pro-teschu/
'http://lolanekdot.ru/anekdoty-pro-babok/
'http://lolanekdot.ru/anekdoty-pro-policiyu-i-miliciyu/
'http://lolanekdot.ru/anekdoty-otkroyte/
'http://lolanekdot.ru/anekdoty-pro-gai-i-gibdd/
'http://lolanekdot.ru/anekdoty-pro-narkomanov/
'http://lolanekdot.ru/anekdoty-pro-vrachey/
'http://lolanekdot.ru/anekdoty-pro-uchiteley/
'http://lolanekdot.ru/anekdoty-pro-shkolu/
'http://lolanekdot.ru/anekdoty-pro-uchenyh/
'http://lolanekdot.ru/anekdoty-pro-studentov/
'http://lolanekdot.ru/anekdoty-pro-sessiyu-i-ekzameny/
'http://lolanekdot.ru/anekdoty-pro-chukchu/
'http://lolanekdot.ru/anekdoty-pro-evreev/
'http://lolanekdot.ru/anekdoty-pro-estoncev/
'http://lolanekdot.ru/anekdoty-pro-moldavan/
'http://lolanekdot.ru/anekdoty-pro-programmistov-i-sisadminov/
'http://lolanekdot.ru/anekdoty-pro-kompyuter/
'http://lolanekdot.ru/anekdoty-pro-internet/
'http://lolanekdot.ru/anekdoty-pro-windows/
'http://lolanekdot.ru/anekdoty-pro-futbolku-pochemu-ne-pahnet/
'http://lolanekdot.ru/anekdoty-pro-apteku/
'http://lolanekdot.ru/anekdoty-neizvestno-pro-chto/
);

function get_anekdot () {
global $ARTICLE;
$a = mt_rand (0, count ($ARTICLE) - 1);
$c = get_html ($ARTICLE [$a]);
$n = preg_match ("`.+?(\d+)`sm", $c, $r);
if ($n) {
$p = mt_rand (1, +$r [1]);
if ($p > 1)
$c = get_html ($ARTICLE [$a], $p);
}
$n = preg_match_all ("`\s*(.+?)`sm", $c, $r);
if ($n) {
$an = $r [1];
$an = $an [mt_rand (0, count ($an) - 1)];
$an = preg_replace ("``", "\n", $an);
$an = str_replace (" ", " ", $an);
return str_replace ("\n", "", preg_replace ("`\n\b`sm", " ", trim (strip_tags ($an))));
}
return null;
}

function get_html ( $URL, $p = 0 ) {
$curl = curl_init ($p ? "$URL/page/$p/" : $URL);
curl_setopt ($curl, CURLOPT_RETURNTRANSFER, 1);
$r = curl_exec ($curl);
curl_close ($curl);
return $r;
}
?>


С уважением,
Александр Сазанов
aleksandrsaz@mail.ru



Теги темы
Бот
          Вернуться наверх  
 

 Сообщение Бот PHP API 2017-11-02
#2 

Аватар пользователя

Вы уж извините, но тут обычная поддержка форумов, а такие специфичные задачи мало кто решит


_________________
Подпись:
-_- -_-
На вопросы, связанные с phpBB, по ЛС не отвечаю !!!
          Вернуться наверх  
 
 
Начать новую тему Ответить на тему


Дополнительные возможности

Оставить свой комментарий

Поделиться темой с помощью

Ссылки на тему

Прямая ссылка:
BB-код для форумов, сайтов, блогов:
HTML ссылка:
 


cron

Самая неформальная поддержка phpBB :P