From 7d91b317c734d76841c3c20dda77b512b12be1e4 Mon Sep 17 00:00:00 2001 From: JSTAR <78903532+DevJSTAR@users.noreply.github.com> Date: Sun, 10 Nov 2024 22:30:05 +0500 Subject: [PATCH] Delete script.js --- script.js | 380 ------------------------------------------------------ 1 file changed, 380 deletions(-) delete mode 100644 script.js diff --git a/script.js b/script.js deleted file mode 100644 index c5ab65d..0000000 --- a/script.js +++ /dev/null @@ -1,380 +0,0 @@ -document.addEventListener('DOMContentLoaded', () => { - applyTheme(); - updateGreeting(); - loadAnonymizationState(); // Load anonymization state on page load - loadShortcuts(); // Load shortcuts on page load - - document.getElementById('theme-switch').addEventListener('change', toggleTheme); - document.getElementById('settings-btn').addEventListener('click', toggleSettings); - document.getElementById('search-btn').addEventListener('click', searchBrave); - document.getElementById('search').addEventListener('keypress', function(event) { - if (event.key === 'Enter') { - searchBrave(); - } - }); - - // Add event listener for the anonymize button - const anonymizeBtn = document.getElementById('anonymize-btn'); - anonymizeBtn.addEventListener('click', toggleAnonymize); - - const modal = document.getElementById('settings-modal'); - modal.addEventListener('click', closeOnClickOutside); - document.querySelector('.close-btn').addEventListener('click', closeSettings); - - // Add shortcut button listeners - document.getElementById('add-shortcut').addEventListener('click', addShortcut); - document.getElementById('import-shortcuts').addEventListener('click', importShortcuts); - document.getElementById('export-shortcuts').addEventListener('click', exportShortcuts); - document.getElementById('reset-shortcuts').addEventListener('click', resetShortcuts); - - // Custom context menu for shortcuts - const contextMenu = document.createElement('div'); - contextMenu.id = 'context-menu'; - contextMenu.innerHTML = ` - - - `; - contextMenu.style.display = 'none'; - document.body.appendChild(contextMenu); - - document.addEventListener('click', (event) => { - const contextMenu = document.getElementById('context-menu'); - // Hide context menu if the click is outside of it - if (event.target !== contextMenu && !contextMenu.contains(event.target)) { - contextMenu.style.display = 'none'; // Hide menu on click outside - } - }); - - // Close context menu on Escape key - document.addEventListener('keydown', (event) => { - if (event.key === 'Escape') { - contextMenu.style.display = 'none'; // Hide context menu - } - }); - - // Detect Shift + A to toggle anonymization, but ensure no other keys are pressed - document.addEventListener('keydown', (event) => { - if (event.key === 'A' && event.shiftKey && !event.ctrlKey && !event.altKey && !event.metaKey) { - toggleAnonymize(); - } - }); - - // Detect Shift + T to toggle theme - document.addEventListener('keydown', (event) => { - if (event.key === 'T' && event.shiftKey) { - toggleThemeShortcut(); // Toggle theme when Shift + T is pressed - } - }); - - // Detect Shift + S to toggle settings menu - document.addEventListener('keydown', (event) => { - if (event.key === 'S' && event.shiftKey) { - toggleSettings(); // Open or close settings modal - } - }); -}); - -let isAnonymized = false; // Track the anonymization state -let currentShortcutIndex = -1; // To keep track of the current shortcut for editing or deleting - -function updateGreeting() { - const greeting = document.getElementById('greeting'); - const date = new Date(); - const hours = date.getUTCHours() + 5; // Adjust for timezone - - let message = `Good ${getTimeOfDay(hours)}, ${isAnonymized ? 'JSTAR' : 'Junaid'}!`; - greeting.textContent = message; -} - -function getTimeOfDay(hours) { - if (hours >= 5 && hours < 12) { - return "Morning"; - } else if (hours >= 12 && hours < 17) { - return "Afternoon"; - } else if (hours >= 17 && hours < 22) { - return "Evening"; - } else { - return "Night"; - } -} - -function searchBrave() { - const query = document.getElementById('search').value.trim(); - if (query) { - window.location.href = `https://search.brave.com/search?q=${encodeURIComponent(query)}`; - } -} - -function toggleTheme() { - const isDark = document.getElementById('theme-switch').checked; - document.body.classList.toggle('dark-theme', isDark); - localStorage.setItem('theme', isDark ? 'dark' : 'light'); - - const modalContent = document.querySelector('.modal-content'); - modalContent.style.backgroundColor = isDark ? '#1a1a1a' : 'white'; -} - -// Shortcut to toggle theme -function toggleThemeShortcut() { - const themeSwitch = document.getElementById('theme-switch'); - themeSwitch.checked = !themeSwitch.checked; - toggleTheme(); -} - -function applyTheme() { - const savedTheme = localStorage.getItem('theme') || 'light'; - document.body.classList.toggle('dark-theme', savedTheme === 'dark'); - document.getElementById('theme-switch').checked = savedTheme === 'dark'; - document.querySelector('.modal-content').style.backgroundColor = savedTheme === 'dark' ? '#1a1a1a' : 'white'; -} - -// Load the anonymization state from localStorage -function loadAnonymizationState() { - const savedAnonymization = localStorage.getItem('anonymization'); - isAnonymized = savedAnonymization === 'true'; // Convert string to boolean - - updateAnonymizeButton(); - updateGreeting(); -} - -// Load shortcuts from localStorage and display them -function loadShortcuts() { - const shortcutsContainer = document.getElementById('shortcuts'); - shortcutsContainer.innerHTML = ''; // Clear existing shortcuts - - const savedShortcuts = JSON.parse(localStorage.getItem('shortcuts')) || []; - savedShortcuts.forEach((shortcut, index) => { - const shortcutButton = document.createElement('div'); - shortcutButton.className = 'shortcut'; - - const favicon = document.createElement('img'); - favicon.src = `https://www.google.com/s2/favicons?domain=${new URL(shortcut.url).hostname}`; // Fetch favicon - const shortcutName = document.createElement('span'); - shortcutName.textContent = shortcut.name.length > 10 ? shortcut.name.slice(0, 10) + '...' : shortcut.name; // Truncate long names - - // Add a click event to open the shortcut link - shortcutButton.addEventListener('click', (event) => { - if (event.ctrlKey) { - window.open(shortcut.url, '_blank'); // Open in a new tab if Ctrl is held - } else { - window.location.href = shortcut.url; // Open in the same tab - } - }); - - // Add context menu for right-click - shortcutButton.addEventListener('contextmenu', (event) => { - event.preventDefault(); - showContextMenu(event.clientX, event.clientY, index); - }); - - shortcutButton.appendChild(favicon); - shortcutButton.appendChild(shortcutName); - shortcutsContainer.appendChild(shortcutButton); - }); -} - -// Show custom context menu -function showContextMenu(x, y, index) { - currentShortcutIndex = index; // Store the index of the current shortcut - const contextMenu = document.getElementById('context-menu'); - contextMenu.style.display = 'block'; - contextMenu.style.left = `${x}px`; - contextMenu.style.top = `${y}px`; - - // Clear previous event handlers (important to prevent multiple listeners) - const editButton = contextMenu.querySelector('#edit-shortcut'); - const deleteButton = contextMenu.querySelector('#delete-shortcut'); - - if (editButton) { - editButton.onclick = () => { - editShortcut(); // Trigger edit shortcut - contextMenu.style.display = 'none'; // Hide context menu - }; - } else { - const editBtn = document.createElement('button'); - editBtn.id = 'edit-shortcut'; - editBtn.textContent = 'Edit'; - editBtn.onclick = () => { - editShortcut(); // Trigger edit shortcut - contextMenu.style.display = 'none'; // Hide context menu - }; - contextMenu.appendChild(editBtn); - } - - if (deleteButton) { - deleteButton.onclick = () => { - deleteShortcut(); // Trigger delete shortcut - contextMenu.style.display = 'none'; // Hide context menu - }; - } else { - const deleteBtn = document.createElement('button'); - deleteBtn.id = 'delete-shortcut'; - deleteBtn.textContent = 'Delete'; - deleteBtn.onclick = () => { - deleteShortcut(); // Trigger delete shortcut - contextMenu.style.display = 'none'; // Hide context menu - }; - contextMenu.appendChild(deleteBtn); - } -} - -// Toggle anonymization state -function toggleAnonymize() { - isAnonymized = !isAnonymized; // Toggle the anonymized state - updateAnonymizeButton(); - updateGreeting(); - - // Save the current anonymization state to localStorage - localStorage.setItem('anonymization', isAnonymized); -} - -function updateAnonymizeButton() { - const anonymizeBtn = document.getElementById('anonymize-btn'); - if (isAnonymized) { - anonymizeBtn.classList.add('active'); - anonymizeBtn.setAttribute('data-tooltip', 'Unanonymize'); - anonymizeBtn.innerHTML = ''; // Change icon to un-anonymize - } else { - anonymizeBtn.classList.remove('active'); - anonymizeBtn.setAttribute('data-tooltip', 'Anonymize'); - anonymizeBtn.innerHTML = ''; // Change icon to anonymize - } -} - -function toggleSettings() { - const modal = document.getElementById('settings-modal'); - modal.classList.contains('active') ? closeSettings() : openSettings(); -} - -function openSettings() { - const modal = document.getElementById('settings-modal'); - modal.style.display = 'flex'; - setTimeout(() => { - modal.classList.add('active'); - modal.querySelector('.modal-content').classList.add('active'); - }, 50); -} - -function closeSettings() { - const modal = document.getElementById('settings-modal'); - modal.querySelector('.modal-content').classList.remove('active'); - modal.classList.remove('active'); - - setTimeout(() => { - modal.style.display = 'none'; - }, 300); -} - -function closeOnClickOutside(event) { - const modal = document.getElementById('settings-modal'); - if (event.target === modal) { - closeSettings(); - } -} - -// Validate if the URL is valid -function isValidURL(url) { - try { - new URL(url); - return true; - } catch { - return false; - } -} - -// Add a new shortcut -function addShortcut() { - const name = prompt("Enter the shortcut name:"); - const url = prompt("Enter the shortcut URL:"); - - if (!name || !url || !isValidURL(url)) { - alert("Invalid input. Please provide a valid name and URL."); - return; - } - - const shortcuts = JSON.parse(localStorage.getItem('shortcuts')) || []; - shortcuts.push({ name, url }); - localStorage.setItem('shortcuts', JSON.stringify(shortcuts)); - loadShortcuts(); -} - -// Edit the current shortcut -function editShortcut() { - if (currentShortcutIndex < 0) return; - - const shortcuts = JSON.parse(localStorage.getItem('shortcuts')); - const currentShortcut = shortcuts[currentShortcutIndex]; - - const newName = prompt("Edit the shortcut name:", currentShortcut.name); - const newUrl = prompt("Edit the shortcut URL:", currentShortcut.url); - - if (!newName || !newUrl || !isValidURL(newUrl)) { - alert("Invalid input. Please provide a valid name and URL."); - return; - } - - shortcuts[currentShortcutIndex] = { name: newName, url: newUrl }; - localStorage.setItem('shortcuts', JSON.stringify(shortcuts)); - loadShortcuts(); -} - -// Delete the current shortcut -function deleteShortcut() { - if (currentShortcutIndex < 0) return; - - const shortcuts = JSON.parse(localStorage.getItem('shortcuts')); - shortcuts.splice(currentShortcutIndex, 1); - localStorage.setItem('shortcuts', JSON.stringify(shortcuts)); - loadShortcuts(); -} - -// Import shortcuts from a JSON file -function importShortcuts() { - const input = document.createElement('input'); - input.type = 'file'; - input.accept = '.json'; - - input.onchange = (event) => { - const file = event.target.files[0]; - const reader = new FileReader(); - - reader.onload = (e) => { - try { - const shortcuts = JSON.parse(e.target.result); - if (Array.isArray(shortcuts)) { - localStorage.setItem('shortcuts', JSON.stringify(shortcuts)); - loadShortcuts(); - } else { - alert("Invalid file format. Please upload a valid JSON file."); - } - } catch (error) { - alert("Error parsing JSON. Please ensure the file is valid."); - } - }; - reader.readAsText(file); - }; - - input.click(); -} - -// Export shortcuts to a JSON file -function exportShortcuts() { - const shortcuts = JSON.parse(localStorage.getItem('shortcuts')) || []; - const dataStr = JSON.stringify(shortcuts, null, 2); - const blob = new Blob([dataStr], { type: 'application/json' }); - const url = URL.createObjectURL(blob); - const a = document.createElement('a'); - a.href = url; - a.download = 'shortcuts.json'; - document.body.appendChild(a); - a.click(); - document.body.removeChild(a); -} - -// Reset shortcuts to the default state -function resetShortcuts() { - if (confirm("Are you sure you want to reset the shortcuts? This action cannot be undone.")) { - localStorage.removeItem('shortcuts'); - loadShortcuts(); - } -}