لوحة تحكم XUI One

اتصال باللوحة

إدارة المشتركين

إجراءات المشترك

false, 'message' => 'No action specified']); exit; } switch ($input['action']) { case 'login': handleLogin($input); break; case 'createUser': handleCreateUser($input); break; case 'generateM3U': handleGenerateM3U($input); break; case 'generateXtream': handleGenerateXtream($input); break; case 'resetUser': handleResetUser($input); break; default: echo json_encode(['success' => false, 'message' => 'Invalid action']); } } function callXuiApi($url, $endpoint, $token = null, $data = null) { $ch = curl_init($url . '/api/' . $endpoint); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); if ($token) { curl_setopt($ch, CURLOPT_HTTPHEADER, [ 'Authorization: Bearer ' . $token, 'Content-Type: application/json' ]); } if ($data) { curl_setopt($ch, CURLOPT_POST, true); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); } $response = curl_exec($ch); curl_close($ch); return json_decode($response, true); } function handleLogin($input) { if (empty($input['panelUrl']) || empty($input['username']) || empty($input['password'])) { echo json_encode(['success' => false, 'message' => 'Missing credentials']); return; } $result = callXuiApi($input['panelUrl'], 'login', null, [ 'username' => $input['username'], 'password' => $input['password'] ]); if (isset($result['token'])) { echo json_encode(['success' => true, 'token' => $result['token']]); } else { echo json_encode(['success' => false, 'message' => $result['msg'] ?? 'Login failed']); } } function handleCreateUser($input) { if (empty($input['panelUrl']) || empty($input['token']) || empty($input['username']) || empty($input['password'])) { echo json_encode(['success' => false, 'message' => 'Missing data']); return; } $expireDate = date('Y-m-d', strtotime('+' . $input['expireDays'] . ' days')); $result = callXuiApi($input['panelUrl'], 'user', $input['token'], [ 'username' => $input['username'], 'password' => $input['password'], 'expire' => $expireDate, 'package' => null, 'description' => 'Created via API', 'active' => 1, 'multi_login' => 1 ]); if (isset($result['success']) && $result['success']) { echo json_encode(['success' => true]); } else { echo json_encode(['success' => false, 'message' => $result['msg'] ?? 'User creation failed']); } } function handleGenerateM3U($input) { if (empty($input['panelUrl']) || empty($input['token']) || empty($input['username'])) { echo json_encode(['success' => false, 'message' => 'Missing data']); return; } $result = callXuiApi($input['panelUrl'], 'user/' . $input['username'], $input['token']); if (isset($result['success']) && $result['success']) { // إنشاء محتوى ملف M3U بسيط (يمكنك تخصيصه حسب احتياجاتك) $m3uContent = "#EXTM3U\n"; $m3uContent .= "#EXTINF:-1,Main Stream\n"; $m3uContent .= $input['panelUrl'] . "/stream/" . $input['username'] . "/" . $result['data']['password'] . "/1\n"; echo json_encode([ 'success' => true, 'm3uContent' => $m3uContent ]); } else { echo json_encode(['success' => false, 'message' => $result['msg'] ?? 'Failed to generate M3U']); } } function handleGenerateXtream($input) { if (empty($input['panelUrl']) || empty($input['token']) || empty($input['username'])) { echo json_encode(['success' => false, 'message' => 'Missing data']); return; } $result = callXuiApi($input['panelUrl'], 'user/' . $input['username'], $input['token']); if (isset($result['success']) && $result['success']) { echo json_encode([ 'success' => true, 'xtreamData' => [ 'url' => $input['panelUrl'], 'username' => $input['username'], 'password' => $result['data']['password'] ] ]); } else { echo json_encode(['success' => false, 'message' => $result['msg'] ?? 'Failed to generate Xtream data']); } } function handleResetUser($input) { if (empty($input['panelUrl']) || empty($input['token']) || empty($input['username'])) { echo json_encode(['success' => false, 'message' => 'Missing data']); return; } $result = callXuiApi($input['panelUrl'], 'user/' . $input['username'] . '/reset', $input['token'], []); if (isset($result['success']) && $result['success']) { echo json_encode(['success' => true]); } else { echo json_encode(['success' => false, 'message' => $result['msg'] ?? 'Reset failed']); } } ?>