المشاركات

روبوت الحماية المتطور مرحبا بك في موقعنا: المحتوى محمي بالكامل، وأي محاولة للتفحص أو النسخ يتم التعامل معها تلقائيًا. × روبوت الحماية: مرحباً بك في موقعنا الجميل! نحن نراقب كل شيء لضمان الأمان.

عن المؤلف

مرحبًا، أنا مدوّن تقني شغوف بصناعة المحتوى الرقمي، أشارككم شروحات ومراجعات في مجالات البرمجة والتكنولوجيا.

إرسال تعليق

// script.js document.addEventListener('DOMContentLoaded', function() { // عناصر DOM const chatMessages = document.getElementById('chat-messages'); const messageInput = document.getElementById('message-input'); const sendBtn = document.getElementById('send-btn'); const clearChatBtn = document.getElementById('clear-chat'); const settingsBtn = document.getElementById('settings-btn'); const settingsModal = document.getElementById('settings-modal'); const saveSettingsBtn = document.getElementById('save-settings'); const cancelSettingsBtn = document.getElementById('cancel-settings'); const formattingButtons = document.querySelectorAll('.text-formatting button'); const chatStatus = document.getElementById('chat-status'); // إعدادات الروبوت let botSettings = { model: 'gpt-3.5', temperature: 0.7, saveChats: true }; // تحميل الإعدادات والمحادثات المحفوظة function loadSettings() { const savedSettings = localStorage.getItem('chatbotSettings'); if (savedSettings) { botSettings = JSON.parse(savedSettings); document.getElementById('api-select').value = botSettings.model; document.getElementById('temperature').value = botSettings.temperature; document.getElementById('temp-value').textContent = botSettings.temperature; document.getElementById('save-chats').checked = botSettings.saveChats; } if (botSettings.saveChats) { const savedChat = localStorage.getItem('chatHistory'); if (savedChat) { chatMessages.innerHTML = savedChat; scrollToBottom(); } } } // حفظ الإعدادات function saveSettings() { botSettings.model = document.getElementById('api-select').value; botSettings.temperature = parseFloat(document.getElementById('temperature').value); botSettings.saveChats = document.getElementById('save-chats').checked; localStorage.setItem('chatbotSettings', JSON.stringify(botSettings)); settingsModal.style.display = 'none'; } // إضافة رسالة إلى الدردشة function addMessage(content, isUser) { const messageDiv = document.createElement('div'); messageDiv.classList.add('message', isUser ? 'user-message' : 'bot-message'); messageDiv.innerHTML = content; chatMessages.appendChild(messageDiv); if (botSettings.saveChats) { localStorage.setItem('chatHistory', chatMessages.innerHTML); } scrollToBottom(); } // التمرير إلى الأسفل function scrollToBottom() { chatMessages.scrollTop = chatMessages.scrollHeight; } // معالجة إرسال الرسالة async function sendMessage() { const message = messageInput.value.trim(); if (!message) return; // إضافة رسالة المستخدم addMessage(message, true); messageInput.value = ''; // عرض حالة "يكتب..." chatStatus.textContent = 'الروبوت يكتب...'; try { // استدعاء API الذكاء الاصطناعي const response = await fetchAIResponse(message, botSettings); // إضافة رد الروبوت addMessage(response, false); chatStatus.textContent = 'جاهز للرد...'; } catch (error) { console.error('Error:', error); addMessage('عذرًا، حدث خطأ أثناء معالجة طلبك. يرجى المحاولة مرة أخرى.', false); chatStatus.textContent = 'حدث خطأ'; setTimeout(() => { chatStatus.textContent = 'جاهز للرد...'; }, 3000); } } // تكبير حقل الإدخال تلقائيًا messageInput.addEventListener('input', function() { this.style.height = 'auto'; this.style.height = (this.scrollHeight) + 'px'; }); // إرسال الرسالة عند الضغط على Enter messageInput.addEventListener('keydown', function(e) { if (e.key === 'Enter' !e.shiftKey) { e.preventDefault(); sendMessage(); } }); // أحداث الأزرار sendBtn.addEventListener('click', sendMessage); clearChatBtn.addEventListener('click', function() { chatMessages.innerHTML = ''; if (botSettings.saveChats) { localStorage.removeItem('chatHistory'); } }); settingsBtn.addEventListener('click', function() { settingsModal.style.display = 'flex'; }); saveSettingsBtn.addEventListener('click', saveSettings); cancelSettingsBtn.addEventListener('click', function() { settingsModal.style.display = 'none'; }); // إغلاق نافذة الإعدادات عند النقر خارجها window.addEventListener('click', function(e) { if (e.target === settingsModal) { settingsModal.style.display = 'none'; } }); // أزرار تنسيق النص formattingButtons.forEach(button => { button.addEventListener('click', function() { const format = this.getAttribute('data-format'); formatText(format); }); }); // وظيفة تنسيق النص function formatText(format) { const start = messageInput.selectionStart; const end = messageInput.selectionEnd; const selectedText = messageInput.value.substring(start, end); let formattedText = ''; switch(format) { case 'bold': formattedText = `**${selectedText}**`; break; case 'italic': formattedText = `*${selectedText}*`; break; case 'list': formattedText = `\n- ${selectedText.replace(/\n/g, '\n- ')}`; break; } messageInput.setRangeText(formattedText, start, end, 'end'); messageInput.focus(); } // تحديث قيمة درجة الإبداع document.getElementById('temperature').addEventListener('input', function() { document.getElementById('temp-value').textContent = this.value; }); // تحميل الإعدادات عند البدء loadSettings(); });