uawdijnntqw1x1x1
IP : 3.128.31.200
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
/
kirov.axolotls.ru
/
bitrix
/
modules
/
imbot
/
lib
/
bot
/
properties.php
/
/
<?php namespace Bitrix\ImBot\Bot; use Bitrix\Main\Localization\Loc; use Bitrix\Main\Type\Date; Loc::loadMessages(__FILE__); class Properties extends Base { const BOT_CODE = "properties"; const ORGANIZATION = "ORGANIZATION"; const IP = "IP"; 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( 'APP_ID' => isset($params['APP_ID'])? $params['APP_ID']: "", 'CODE' => self::BOT_CODE, 'MODULE_ID' => self::MODULE_ID, 'CLASS' => __CLASS__, 'METHOD_MESSAGE_ADD' => 'onMessageAdd', 'METHOD_WELCOME_MESSAGE' => 'onChatStart', 'METHOD_BOT_DELETE' => 'onBotDelete', 'PROPERTIES' => Array( 'NAME' => Loc::getMessage('IMBOT_PROPERTIES_BOT_NAME'), 'COLOR' => Loc::getMessage('IMBOT_PROPERTIES_BOT_COLOR'), //'EMAIL' => Loc::getMessage('IMBOT_PROPERTIES_BOT_EMAIL'), 'WORK_POSITION' => Loc::getMessage('IMBOT_PROPERTIES_BOT_WORK_POSITION'), 'PERSONAL_PHOTO' => self::uploadAvatar(), ) )); 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['CHAT_TYPE'] == IM_MESSAGE_PRIVATE) { $message = Loc::getMessage('IMBOT_PROPERTIES_WELCOME_MESSAGE'); } else { $message = Loc::getMessage('IMBOT_PROPERTIES_WELCOME_MESSAGE_CHAT'); } if ($message) { self::sendAnswer(0, Array( 'DIALOG_ID' => $dialogId, 'ANSWER' => $message )); } return true; } public static function onMessageAdd($messageId, $messageFields) { if ($messageFields['SYSTEM'] == 'Y') return false; \Bitrix\Im\Bot::startWriting(Array('BOT_ID' => self::getBotId()), $messageFields['DIALOG_ID']); $messageText = $messageFields['MESSAGE']; if(static::validateRequest($messageText)) { self::sendMessage($messageFields['DIALOG_ID'], $messageId, $messageText); return true; } else { \Bitrix\Im\Bot::addMessage(Array('BOT_ID' => self::getBotId()), Array( 'DIALOG_ID' => $messageFields['DIALOG_ID'], 'MESSAGE' => Loc::getMessage('IMBOT_REQUEST_INVALID') )); return false; } } public static function onAnswerAdd($command, $params) { if($command == "AnswerMessage") { self::sendAnswer($params['MESSAGE_ID'], Array( 'DIALOG_ID' => $params['DIALOG_ID'], 'MESSAGE' => $params['MESSAGE'], 'MESSAGE_ANSWER' => $params['MESSAGE_ANSWER'], 'MESSAGE_ANSWER_ALTER' => $params['MESSAGE_ANSWER_ALTER'], 'ANSWER_URL' => $params['MESSAGE_URL']? $params['MESSAGE_URL']: '', )); $result = Array('RESULT' => 'OK'); } else { $result = new \Bitrix\ImBot\Error(__METHOD__, 'UNKNOWN_COMMAND', 'Command isnt found'); } return $result; } public static function sendAnswer($messageId, $messageFields) { if (!\Bitrix\Main\Loader::includeModule('im')) return false; if ($messageFields['MESSAGE_ANSWER']) { $answer = $messageFields['MESSAGE_ANSWER']; $attach = new \CIMMessageParamAttach(null, \CIMMessageParamAttach::CHAT); if(isset($answer['ORGANIZATION'])) { $attach = static::convertOrganizationToAttach($answer['ORGANIZATION']); } else if(isset($answer['IP'])) { $attach = static::convertIpToAttach($answer['IP']); } else if(isset($answer['SEARCH'])) { $attach = static::convertSearchResultsToAttach($answer['SEARCH'], $messageFields); } \Bitrix\Im\Bot::addMessage(Array('BOT_ID' => self::getBotId()), Array( 'DIALOG_ID' => $messageFields['DIALOG_ID'], 'ATTACH' => $attach )); } else { \Bitrix\Im\Bot::addMessage(Array('BOT_ID' => self::getBotId()), Array( 'DIALOG_ID' => $messageFields['DIALOG_ID'], 'MESSAGE' => isset($messageFields['ANSWER'])? $messageFields['ANSWER']: Loc::getMessage('IMBOT_PROPERTIES_NOT_FOUND_MESSAGE') )); } return true; } /** * @param array $organizationFields * @return \CIMMessageParamAttach */ private static function convertOrganizationToAttach(array $organizationFields) { $attach = new \CIMMessageParamAttach(null, \CIMMessageParamAttach::CHAT); $attachFields[] = array( "NAME" => $organizationFields['NAME_SHORT'], "DISPLAY" => "BLOCK", "VALUE" => " " ); $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_NAME'), "VALUE" => $organizationFields["NAME"], "DISPLAY" => "BLOCK" ); if($organizationFields['TERMINATION_DATE']) { $terminationDate = new Date($organizationFields['TERMINATION_DATE'], 'Y-m-d'); $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_TERMINATION_DATE'), "VALUE" => $terminationDate->toString(), "DISPLAY" => "BLOCK" ); $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_TERMITATION_METHOD_NAME'), "VALUE" => $organizationFields["TERMITATION_METHOD_NAME"], "DISPLAY" => "BLOCK" ); } if($organizationFields['STATUS']) { $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_STATUS'), "VALUE" => $organizationFields["STATUS"], "DISPLAY" => "BLOCK" ); } $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_INN_KPP'), "VALUE" => $organizationFields["INN"]."/".$organizationFields["KPP"], "DISPLAY" => "COLUMN" ); $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_OGRN'), "VALUE" => $organizationFields["OGRN"], "DISPLAY" => "COLUMN" ); if($organizationFields['OKVED_CODE']) { $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_OKVED'), "VALUE" => $organizationFields["OKVED_CODE"], "DISPLAY" => "COLUMN" ); } $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_MANAGER'), "VALUE" => $organizationFields["MANAGER"], "DISPLAY" => "BLOCK" ); $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_ADDRESS'), "VALUE" => $organizationFields["ADDRESS"], "DISPLAY" => "BLOCK" ); $attach->AddGrid($attachFields); return $attach; } /** * @param array $ipFields * @return \CIMMessageParamAttach */ private static function convertIpToAttach(array $ipFields) { $attach = new \CIMMessageParamAttach(null, \CIMMessageParamAttach::CHAT); $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_IP'), "VALUE" => $ipFields["FIO"], "DISPLAY" => "BLOCK" ); if($ipFields['TERMINATION_DATE']) { $terminationDate = new Date($ipFields['TERMINATION_DATE'], 'Y-m-d'); $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_TERMINATION_DATE'), "VALUE" => $terminationDate->toString(), "DISPLAY" => "BLOCK" ); } $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_INN'), "VALUE" => $ipFields["INN"], "DISPLAY" => "COLUMN" ); $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_OGRNIP'), "VALUE" => $ipFields["OGRNIP"], "DISPLAY" => "COLUMN" ); if($ipFields['OKVED_CODE']) { $attachFields[] = array( "NAME" => Loc::getMessage('IMBOT_PROPERTIES_OKVED'), "VALUE" => $ipFields["OKVED_CODE"], "DISPLAY" => "COLUMN" ); } $attach->AddGrid($attachFields); return $attach; } /** * @param array $searchResults * @return \CIMMessageParamAttach */ private static function convertSearchResultsToAttach(array $searchResults, array $messageFields) { $requestFields = static::parseRequest($messageFields['MESSAGE']); $attach = new \CIMMessageParamAttach(null, \CIMMessageParamAttach::CHAT); $attach->AddMessage(Loc::getMessage('IMBOT_PROPERTIES_SEARCH_RESULTS')); foreach($searchResults['RESULTS'] as $searchResult) { $attach->AddMessage('[SEND='.$searchResult['OGRN'].']'.$searchResult['NAME_SHORT'].' ('.Loc::getMessage('IMBOT_PROPERTIES_INN').': '.$searchResult['INN'].')[/SEND]'); } if(isset($searchResults['MORE'])) { $newOffset = (int)$requestFields['OFFSET'] + count($searchResults['RESULTS']); $attach->addMessage('[SEND='.$requestFields['REQUEST'].' /more '.$newOffset.']'.Loc::getMessage('IMBOT_PROPERTIES_SHOW_MORE').'[/SEND]'); } return $attach; } protected static function parseRequest($request) { if(preg_match('/^(.+?)\s\/more\s(\d+)$/', $request, $matches)) { $result = array( 'REQUEST' => $matches[1], 'OFFSET' => $matches[2] ); } else { $result = array( 'REQUEST' => $request, 'OFFSET' => 0 ); } return $result; } private static function sendMessage($dialogId, $messageId, $messageText) { $params = Array( 'DIALOG_ID' => $dialogId, 'MESSAGE_ID' => $messageId, 'MESSAGE_TEXT' => $messageText ); $http = new \Bitrix\ImBot\Http(self::BOT_CODE); $query = $http->query( 'SendMessage', $params ); if (isset($query->error)) { self::$lastError = new \Bitrix\ImBot\Error(__METHOD__, $query->error->code, $query->error->msg); return false; } return $query; } private static function validateRequest($request) { return true; } public static function getLangMessage($messageCode = '') { return Loc::getMessage($messageCode); } }
/var/www/axolotl/data/www/kirov.axolotls.ru/bitrix/modules/imbot/lib/bot/properties.php