Sindbad~EG File Manager
<?php
require_once '../config/config.php';
require_once '../classes/ChatbotService.php';
header('Content-Type: application/json');
if ($_SERVER['REQUEST_METHOD'] !== 'POST') {
http_response_code(405);
echo json_encode(['success' => false, 'message' => 'Method not allowed']);
exit;
}
$data = json_decode(file_get_contents('php://input'), true);
$action = $data['action'] ?? '';
try {
$chatbot = new ChatbotService();
if (!$chatbot->isEnabled()) {
echo json_encode(['success' => false, 'message' => 'Chatbot is currently disabled']);
exit;
}
switch ($action) {
case 'send_message':
$message = trim($data['message'] ?? '');
$sessionId = $data['session_id'] ?? session_id();
if (empty($message)) {
echo json_encode(['success' => false, 'message' => 'Message is required']);
exit;
}
// Get user info if logged in
$userId = null;
$userName = null;
$userEmail = null;
if (isLoggedIn()) {
$userId = $_SESSION['user_id'] ?? null;
$userName = $_SESSION['full_name'] ?? null;
$userEmail = $_SESSION['email'] ?? null;
}
// Get or create conversation
$conversationId = $chatbot->getOrCreateConversation($sessionId, $userId, $userName, $userEmail);
// Save user message
$chatbot->saveMessage($conversationId, 'user', $message);
// Generate response
$response = $chatbot->generateResponse($message, $conversationId);
echo json_encode([
'success' => true,
'response' => $response['response'],
'sources' => $response['sources'],
'response_time' => $response['response_time'],
'conversation_id' => $conversationId
]);
break;
case 'get_history':
$sessionId = $data['session_id'] ?? session_id();
$conversationId = $chatbot->getOrCreateConversation($sessionId);
$history = $chatbot->getConversationHistory($conversationId, 20);
echo json_encode([
'success' => true,
'history' => $history
]);
break;
case 'mark_helpful':
$messageId = $data['message_id'] ?? 0;
$isHelpful = $data['is_helpful'] ?? true;
$result = $chatbot->markMessageHelpful($messageId, $isHelpful);
echo json_encode([
'success' => $result,
'message' => $result ? 'Thank you for your feedback!' : 'Failed to save feedback'
]);
break;
case 'rate_conversation':
$sessionId = $data['session_id'] ?? session_id();
$rating = $data['rating'] ?? 0;
$feedback = $data['feedback'] ?? null;
$conversationId = $chatbot->getOrCreateConversation($sessionId);
$result = $chatbot->rateConversation($conversationId, $rating, $feedback);
echo json_encode([
'success' => $result,
'message' => $result ? 'Thank you for rating this conversation!' : 'Failed to save rating'
]);
break;
case 'get_settings':
echo json_encode([
'success' => true,
'settings' => [
'welcome_message' => $chatbot->getSetting('welcome_message'),
'placeholder_text' => $chatbot->getSetting('placeholder_text'),
'primary_color' => $chatbot->getSetting('primary_color'),
'bot_name' => $chatbot->getSetting('bot_name'),
'bot_avatar' => $chatbot->getSetting('bot_avatar'),
'show_typing_indicator' => $chatbot->getSetting('show_typing_indicator'),
'response_delay' => $chatbot->getSetting('response_delay')
]
]);
break;
default:
echo json_encode(['success' => false, 'message' => 'Invalid action']);
break;
}
} catch (Exception $e) {
error_log('Chatbot API error: ' . $e->getMessage());
echo json_encode([
'success' => false,
'message' => 'An error occurred. Please try again later.'
]);
}
Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists