uawdijnntqw1x1x1
IP : 3.135.248.144
Hostname : axolotl
Kernel : Linux axolotl 4.9.0-13-amd64 #1 SMP Debian 4.9.228-1 (2020-07-05) x86_64
Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
OS : Linux
PATH:
/
var
/
www
/
axolotl
/
data
/
www
/
msk.axolotls.ru
/
bitrix
/
modules
/
imbot
/
lib
/
bot
/
openlinesmenuexample.php
/
/
<?php namespace Bitrix\ImBot\Bot; use Bitrix\Main\Localization\Loc; use Bitrix\ImBot\Itr as Itr; Loc::loadMessages(__FILE__); class OpenlinesMenuExample { const MODULE_ID = "imbot"; const BOT_CODE = "openlinemenu"; public static function register(array $params = Array()) { if (!\Bitrix\Main\Loader::includeModule('im')) return false; $agentMode = isset($params['AGENT']) && $params['AGENT'] == 'Y'; if (self::getBotId()) return $agentMode? "": self::getBotId(); $botId = \Bitrix\Im\Bot::register(Array( 'CODE' => self::BOT_CODE, 'TYPE' => \Bitrix\Im\Bot::TYPE_OPENLINE, 'MODULE_ID' => self::MODULE_ID, 'CLASS' => __CLASS__, 'METHOD_MESSAGE_ADD' => 'onMessageAdd', 'METHOD_WELCOME_MESSAGE' => 'onChatStart', 'METHOD_BOT_DELETE' => 'onBotDelete', 'PROPERTIES' => Array( 'NAME' => "ITR Bot for Open Channels (example)", 'WORK_POSITION' => "Get ITR menu for you open channel", ) )); if ($botId) { self::setBotId($botId); } return $agentMode? "": $botId; } public static function unRegister() { if (!\Bitrix\Main\Loader::includeModule('im')) return false; $result = \Bitrix\Im\Bot::unRegister(Array('BOT_ID' => self::getBotId())); if ($result) { self::setBotId(0); } return $result; } public static function onChatStart($dialogId, $joinFields) { if ($joinFields['MESSAGE_TYPE'] == IM_MESSAGE_PRIVATE) return false; self::itrRun($dialogId, $joinFields['USER_ID']); return true; } public static function onMessageAdd($messageId, $messageFields) { if ($messageFields['SYSTEM'] == 'Y') return false; self::itrRun($messageFields['DIALOG_ID'], $messageFields['FROM_USER_ID'], $messageFields['MESSAGE']); return true; } public static function onBotDelete($bodId) { return self::setBotId(0); } private static function prepareText($message) { $message = preg_replace("/\[s\].*?\[\/s\]/i", "-", $message); $message = preg_replace("/\[[bui]\](.*?)\[\/[bui]\]/i", "$1", $message); $message = preg_replace("/\\[url\\](.*?)\\[\\/url\\]/i".BX_UTF_PCRE_MODIFIER, "$1", $message); $message = preg_replace("/\\[url\\s*=\\s*((?:[^\\[\\]]++|\\[ (?: (?>[^\\[\\]]+) | (?:\\1) )* \\])+)\\s*\\](.*?)\\[\\/url\\]/ixs".BX_UTF_PCRE_MODIFIER, "$2", $message); $message = preg_replace("/\[USER=([0-9]{1,})\](.*?)\[\/USER\]/i", "$2", $message); $message = preg_replace("/\[CHAT=([0-9]{1,})\](.*?)\[\/CHAT\]/i", "$2", $message); $message = preg_replace("/\[PCH=([0-9]{1,})\](.*?)\[\/PCH\]/i", "$2", $message); $message = preg_replace('#\-{54}.+?\-{54}#s', "", str_replace(array("#BR#"), Array(" "), $message)); $message = strip_tags($message); return trim($message); } private static function itrRun($dialogId, $userId, $message = '') { if ($userId <= 0) return false; $menu0 = new Itr\Menu(0); $menu0->setText('Main menu (#0)'); $menu0->addItem(1, 'Text', Itr\Item::sendText('Text message (for #USER_NAME#)')); $menu0->addItem(2, 'Text without menu', Itr\Item::sendText('Text message without menu', true)); $menu0->addItem(3, 'Open menu #1', Itr\Item::openMenu(1)); $menu0->addItem(0, 'Wait operator answer', Itr\Item::sendText('Wait operator answer', true)); $menu1 = new Itr\Menu(1); $menu1->setText('Second menu (#1)'); $menu1->addItem(2, 'Transfer to queue', Itr\Item::transferToQueue('Transfer to queue')); $menu1->addItem(3, 'Transfer to user', Itr\Item::transferToUser(1, false, 'Transfer to user #1')); $menu1->addItem(4, 'Transfer to bot', Itr\Item::transferToBot('marta', false, 'Transfer to bot Marta', 'Marta not found :(')); $menu1->addItem(5, 'Finish session', Itr\Item::finishSession('Finish session')); $menu1->addItem(6, 'Exec function', Itr\Item::execFunction(function($context){ \Bitrix\Im\Bot::addMessage(Array('BOT_ID' => $context->botId), Array( 'DIALOG_ID' => $context->dialogId, 'MESSAGE' => 'Function executed (action)' )); }, 'Function executed (text)')); $menu1->addItem(9, 'Back to main menu', Itr\Item::openMenu(0)); $itr = new Itr\Designer('box', $dialogId, self::getBotId(), $userId); $itr->addMenu($menu0); $itr->addMenu($menu1); $itr->run(self::prepareText($message)); return true; } public static function getBotId() { return \Bitrix\Main\Config\Option::get(self::MODULE_ID, self::BOT_CODE."_bot_id", 0); } public static function setBotId($id) { \Bitrix\Main\Config\Option::set(self::MODULE_ID, self::BOT_CODE."_bot_id", $id); return true; } }
/var/www/axolotl/data/www/msk.axolotls.ru/bitrix/modules/imbot/lib/bot/openlinesmenuexample.php