ignoreShellData();
$params = WaicReq::get('post');
$result = $this->getModel()->getHistory($params);
if ($result) {
$res->data = $result['data'];
$res->recordsFiltered = $result['total'];
$res->recordsTotal = $result['total'];
$res->draw = WaicUtils::getArrayValue($params, 'draw', 0, 1);
} else {
$res->pushError(WaicFrame::_()->getErrors());
}
$res->ajaxExec();
}
public function getLogData() {
$res = new WaicResponse();
$params = WaicReq::getVar('params', 'post');
$html = $this->getView()->getLogData($params);
$res->setHtml($html);
return $res->ajaxExec();
}
public function exportLog() {
$res = new WaicResponse();
$params = WaicReq::getVar('params', 'post');
$data = $this->getModel()->exportLog($params);
if ($data) {
$res->addData('file', $data);
$res->addMessage(esc_html__('Done', 'ai-copilot-content-generator'));
} else {
$res->pushError(WaicFrame::_()->getErrors());
}
$res->ajaxExec();
}
public function saveChatbot() {
$res = new WaicResponse();
$params = WaicReq::getVar('params', 'post');
$taskId = WaicReq::getVar('task_id', 'post');
$error = '';
$workspace = WaicFrame::_()->getModule('workspace');
$taskId = WaicReq::getVar('task_id', 'post');
$old = empty($taskId) ? array() : $workspace->getModel('tasks')->getById($taskId);
$id = $workspace->getModel('tasks')->saveTask($this->_code, $taskId, $params);
if (empty($id)) {
$res->pushError(WaicFrame::_()->getErrors());
} else {
$result = $this->getModel()->setChatbotParams($id, $old);
if (empty($taskId) || $result) {
$res->addData('taskUrl', $workspace->getTaskUrl($id, $this->_code));
} else {
$res->addMessage(esc_html__('Done', 'ai-copilot-content-generator'));
}
}
return $res->ajaxExec();
}
public function launchChatbot() {
$res = new WaicResponse();
$code = WaicReq::getVar('code', 'post');
$params = WaicReq::getVar('params', 'post');
$error = '';
$taskId = $this->getModel()->launchChatbot($code, $params);
if (empty($taskId)) {
$res->pushError(WaicFrame::_()->getErrors());
} else {
$result = $this->getModel()->setChatbotParams($taskId, array());
$res->addData('taskUrl', WaicFrame::_()->getModule('workspace')->getTaskUrl($taskId, $this->_code));
}
return $res->ajaxExec();
exit;
}
public function getLaunchPercent() {
$res = new WaicResponse();
$code = WaicReq::getVar('code', 'post');
$result = $this->getModel()->getLaunchPercent($code);
if (false === $result) {
$res->pushError(WaicFrame::_()->getErrors());
} else {
$res->addData('percent', $result);
}
return $res->ajaxExec();
}
public function getChatbotAjax() {
$res = new WaicResponse();
$params = WaicReq::getVar('params', 'post');
$html = $this->getView()->renderChatbotHtml($params, WaicReq::getVar('task_id', 'post'), true, WaicReq::getVar('mobile', 'post'));
$res->setHtml($html);
return $res->ajaxExec();
}
public function resetChatbotAdmin() {
$res = new WaicResponse();
$params = WaicReq::getVar('params', 'post');
$user = wp_get_current_user();
$userId = $user ? $user->ID : 0;
$ip = WaicUtils::getRealUserIp();
$this->getModel()->deleteUserChatLog(WaicReq::getVar('task_id', 'post'), $userId, $ip, 1);
return $res->ajaxExec();
}
public function sendFile() {
$res = new WaicResponse();
$taskId = WaicReq::getVar('task_id', 'post');
$mode = WaicReq::getVar('mode', 'post');
$message = WaicReq::getVar('message', 'post');
$files = WaicReq::get('files');
$log = $this->getModel()->sendMessage($message, $taskId, $mode, WaicReq::getVar('aware', 'post'), $files, array('chat_id' => WaicReq::getVar('chat_id', 'post')));
if (empty($log)) {
$res->pushError(WaicFrame::_()->getErrors());
} else {
$log['task_id'] = $taskId;
$log['chat_id'] = WaicReq::getVar('chat_id', 'post');
$log['mes_id'] = WaicReq::getVar('mes_id', 'post');
$res->addData('log', $log);
}
return $res->ajaxExec();
}
public function sendMessage() {
$res = new WaicResponse();
$message = WaicReq::getVar('message', 'post');
$message = empty($message) ? '' : preg_replace('/\r\n|\r|\n/', '
', $message);
//$message = empty($_POST['message']) ? '' : preg_replace('/\r\n|\r|\n/', '
', sanitize_textarea_field($_POST['message']));
$taskId = WaicReq::getVar('task_id', 'post');
$mode = WaicReq::getVar('mode', 'post');
$typ = WaicReq::getVar('typ', 'post');
$request = WaicReq::getVar('request', 'post');
if ('email' == $typ) {
$log = $this->getModel()->sendEmail($message, $taskId, $mode, $request);
} else {
$mem = '';
if ('human' == $request) {
$log = $this->getModel()->humanRequest($taskId);
} else {
$log = $this->getModel()->sendMessage($message, $taskId, $mode, WaicReq::getVar('aware', 'post'), false, array('chat_id' => WaicReq::getVar('chat_id', 'post')));
}
}
if (empty($log)) {
$res->pushError(WaicFrame::_()->getErrors());
} else {
$log['task_id'] = $taskId;
$log['chat_id'] = WaicReq::getVar('chat_id', 'post');
$log['mes_id'] = WaicReq::getVar('mes_id', 'post');
$res->addData('log', $log);
}
return $res->ajaxExec();
}
public function resetChatbotFront() {
$res = new WaicResponse();
//$params = WaicReq::getVar('params', 'post');
$taskId = absint(WaicReq::getVar('task_id', 'post'));
if (!$taskId) {
$res->pushError(esc_html__('Invalid request.', 'ai-copilot-content-generator'));
return $res->ajaxExec();
}
$user = wp_get_current_user();
$userId = $user ? $user->ID : 0;
$ip = WaicUtils::getRealUserIp();
$this->getModel()->resetUserChatLog($taskId, $userId, $ip, 0);
return $res->ajaxExec();
}
}