284 lines
11 KiB
HTML
284 lines
11 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="en">
|
|
|
|
<head>
|
|
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
<title>Settings</title>
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.2/css/all.min.css"
|
|
integrity="sha512-z3gLpd7yknf1YoNbCzqRKc4qyor8gaKU1qmn+CShxbuBusANI9QpRohGBreCFkKxLhei6S9CQXFEbbKuqLg0DA=="
|
|
crossorigin="anonymous" referrerpolicy="no-referrer">
|
|
<link rel="stylesheet" href="settings.css">
|
|
<style>
|
|
body {
|
|
font-family: Arial, sans-serif;
|
|
margin: 0;
|
|
padding: 0;
|
|
background-color: var(--background-color, #ffffff);
|
|
color: var(--text-color, #000000);
|
|
transition: background-color 0.3s, color 0.3s;
|
|
}
|
|
|
|
.settings-container {
|
|
max-width: 600px;
|
|
margin: 50px auto;
|
|
padding: 20px;
|
|
border-radius: 10px;
|
|
box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
|
|
background-color: var(--card-background-color, #f9f9f9);
|
|
}
|
|
|
|
h1 {
|
|
text-align: center;
|
|
}
|
|
|
|
.setting-item {
|
|
display: flex;
|
|
justify-content: space-between;
|
|
align-items: center;
|
|
margin: 20px 0;
|
|
}
|
|
|
|
.setting-item button {
|
|
padding: 10px 20px;
|
|
border: none;
|
|
border-radius: 5px;
|
|
cursor: pointer;
|
|
background-color: #007bff;
|
|
color: white;
|
|
font-size: 16px;
|
|
}
|
|
|
|
.setting-item button:hover {
|
|
background-color: #0056b3;
|
|
}
|
|
|
|
/* Red button for Clear Cookies */
|
|
.setting-item.clear-cookies button {
|
|
background-color: #ff4d4d;
|
|
}
|
|
|
|
.setting-item.clear-cookies button:hover {
|
|
background-color: #cc0000;
|
|
}
|
|
</style>
|
|
</head>
|
|
|
|
<body>
|
|
<div class="settings-container">
|
|
<h1>Settings</h1>
|
|
<div class="setting-item">
|
|
<span>Dark Mode</span>
|
|
<button id="toggleDarkMode">Enable</button>
|
|
</div>
|
|
<div class="setting-item">
|
|
<span>Enable CloakJS (comming soon)</span>
|
|
<button id="toggleCloakJS">Enable</button>
|
|
</div>
|
|
<div class="setting-item">
|
|
<span>Show FPS Counter</span>
|
|
<button id="toggleFPSCounter">Enable</button>
|
|
</div>
|
|
<div class="setting-item">
|
|
<span>Enable Maturity Filter(comming-soon)</span>
|
|
<button id="toggleMaturityFilter">Enable</button>
|
|
</div>
|
|
<div class="setting-item">
|
|
<span>Enable Text-to-Speech</span>
|
|
<button id="toggleTextToSpeech">Enable</button>
|
|
</div>
|
|
<div class="setting-item clear-cookies">
|
|
<span>Clear Cookies</span>
|
|
<button id="clearCookies">Clear</button>
|
|
</div>
|
|
</div>
|
|
|
|
<script>
|
|
// Utility function to set a cookie
|
|
function setCookie(name, value, days) {
|
|
const date = new Date();
|
|
date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
|
|
document.cookie = `${name}=${value};expires=${date.toUTCString()};path=/`;
|
|
}
|
|
|
|
// Utility function to get a cookie
|
|
function getCookie(name) {
|
|
const cookies = document.cookie.split(';');
|
|
for (let i = 0; i < cookies.length; i++) {
|
|
const cookie = cookies[i].trim();
|
|
if (cookie.startsWith(name + '=')) {
|
|
return cookie.substring(name.length + 1);
|
|
}
|
|
}
|
|
return null;
|
|
}
|
|
|
|
// Dark Mode Toggle
|
|
const toggleDarkModeButton = document.getElementById('toggleDarkMode');
|
|
const darkModeEnabled = getCookie('darkMode') === 'true';
|
|
|
|
function applyDarkMode(enabled) {
|
|
if (enabled) {
|
|
document.body.style.setProperty('--background-color', '#121212');
|
|
document.body.style.setProperty('--text-color', '#ffffff');
|
|
document.body.style.setProperty('--card-background-color', '#1e1e1e');
|
|
toggleDarkModeButton.textContent = 'Disable';
|
|
} else {
|
|
document.body.style.setProperty('--background-color', '#ffffff');
|
|
document.body.style.setProperty('--text-color', '#000000');
|
|
document.body.style.setProperty('--card-background-color', '#f9f9f9');
|
|
toggleDarkModeButton.textContent = 'Enable';
|
|
}
|
|
}
|
|
|
|
toggleDarkModeButton.addEventListener('click', () => {
|
|
const isDarkMode = getCookie('darkMode') === 'true';
|
|
setCookie('darkMode', !isDarkMode, 30); // Save preference for 30 days
|
|
applyDarkMode(!isDarkMode);
|
|
});
|
|
|
|
// Apply saved dark mode preference on load
|
|
applyDarkMode(darkModeEnabled);
|
|
|
|
// Clear Cookies
|
|
const clearCookiesButton = document.getElementById('clearCookies');
|
|
clearCookiesButton.addEventListener('click', () => {
|
|
document.cookie.split(";").forEach(cookie => {
|
|
document.cookie = cookie.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date(0).toUTCString() + ";path=/");
|
|
});
|
|
alert('Cookies cleared!');
|
|
});
|
|
|
|
// CloakJS Toggle
|
|
const toggleCloakJSButton = document.getElementById('toggleCloakJS');
|
|
const cloakJSEnabled = getCookie('cloakJS') === 'true';
|
|
|
|
function applyCloakJSSetting(enabled) {
|
|
if (enabled) {
|
|
toggleCloakJSButton.textContent = 'Disable';
|
|
} else {
|
|
toggleCloakJSButton.textContent = 'Enable';
|
|
}
|
|
}
|
|
|
|
toggleCloakJSButton.addEventListener('click', () => {
|
|
const isCloakJSEnabled = getCookie('cloakJS') === 'true';
|
|
setCookie('cloakJS', !isCloakJSEnabled, 30); // Save preference for 30 days
|
|
applyCloakJSSetting(!isCloakJSEnabled);
|
|
});
|
|
|
|
// Apply saved CloakJS preference on load
|
|
applyCloakJSSetting(cloakJSEnabled);
|
|
|
|
// FPS Counter Toggle
|
|
const toggleFPSCounterButton = document.getElementById('toggleFPSCounter');
|
|
const fpsCounterEnabled = getCookie('fpsCounter') === 'true';
|
|
|
|
function applyFPSCounterSetting(enabled) {
|
|
if (enabled) {
|
|
toggleFPSCounterButton.textContent = 'Disable';
|
|
} else {
|
|
toggleFPSCounterButton.textContent = 'Enable';
|
|
}
|
|
}
|
|
|
|
toggleFPSCounterButton.addEventListener('click', () => {
|
|
const isFPSCounterEnabled = getCookie('fpsCounter') === 'true';
|
|
setCookie('fpsCounter', !isFPSCounterEnabled, 30); // Save preference for 30 days
|
|
applyFPSCounterSetting(!isFPSCounterEnabled);
|
|
});
|
|
|
|
// Apply saved FPS Counter preference on load
|
|
applyFPSCounterSetting(fpsCounterEnabled);
|
|
|
|
// Maturity Filter Toggle
|
|
const toggleMaturityFilterButton = document.getElementById('toggleMaturityFilter');
|
|
const maturityFilterEnabled = getCookie('maturityFilter') === 'true';
|
|
|
|
function applyMaturityFilterSetting(enabled) {
|
|
if (enabled) {
|
|
toggleMaturityFilterButton.textContent = 'Disable';
|
|
} else {
|
|
toggleMaturityFilterButton.textContent = 'Enable';
|
|
}
|
|
}
|
|
|
|
toggleMaturityFilterButton.addEventListener('click', () => {
|
|
const isMaturityFilterEnabled = getCookie('maturityFilter') === 'true';
|
|
setCookie('maturityFilter', !isMaturityFilterEnabled, 30); // Save preference for 30 days
|
|
applyMaturityFilterSetting(!isMaturityFilterEnabled);
|
|
});
|
|
|
|
// Apply saved Maturity Filter preference on load
|
|
applyMaturityFilterSetting(maturityFilterEnabled);
|
|
|
|
// Text-to-Speech Toggle
|
|
const toggleTextToSpeechButton = document.getElementById('toggleTextToSpeech');
|
|
const textToSpeechEnabled = getCookie('textToSpeech') === 'true';
|
|
|
|
function applyTextToSpeechSetting(enabled) {
|
|
if (enabled) {
|
|
toggleTextToSpeechButton.textContent = 'Disable';
|
|
} else {
|
|
toggleTextToSpeechButton.textContent = 'Enable';
|
|
}
|
|
}
|
|
|
|
toggleTextToSpeechButton.addEventListener('click', () => {
|
|
const isTextToSpeechEnabled = getCookie('textToSpeech') === 'true';
|
|
setCookie('textToSpeech', !isTextToSpeechEnabled, 30); // Save preference for 30 days
|
|
applyTextToSpeechSetting(!isTextToSpeechEnabled);
|
|
});
|
|
|
|
// Apply saved Text-to-Speech preference on load
|
|
applyTextToSpeechSetting(textToSpeechEnabled);
|
|
|
|
// Regional Settings
|
|
const regionSelect = document.getElementById('regionSelect');
|
|
const savedRegion = getCookie('region') || 'us'; // Default to 'us'
|
|
|
|
// Set the dropdown to the saved region
|
|
regionSelect.value = savedRegion;
|
|
|
|
// Save the selected region when changed
|
|
regionSelect.addEventListener('change', () => {
|
|
const selectedRegion = regionSelect.value;
|
|
setCookie('region', selectedRegion, 30); // Save preference for 30 days
|
|
alert(`Region set to: ${selectedRegion.toUpperCase()}`);
|
|
});
|
|
|
|
const region = getCookie('region') || 'us'; // Default to 'us'
|
|
|
|
// Example: Load regional content
|
|
if (region === 'fr') {
|
|
document.body.innerHTML += '<p>Bienvenue! (Welcome in French)</p>';
|
|
} else if (region === 'de') {
|
|
document.body.innerHTML += '<p>Willkommen! (Welcome in German)</p>';
|
|
} else if (region === 'jp') {
|
|
document.body.innerHTML += '<p>ようこそ! (Welcome in Japanese)</p>';
|
|
} else {
|
|
document.body.innerHTML += '<p>Welcome!</p>';
|
|
}
|
|
|
|
// Reset to Default Settings
|
|
const resetSettingsButton = document.getElementById('resetSettings');
|
|
|
|
resetSettingsButton.addEventListener('click', () => {
|
|
// Clear all cookies
|
|
document.cookie.split(";").forEach(cookie => {
|
|
document.cookie = cookie.replace(/^ +/, "").replace(/=.*/, "=;expires=" + new Date(0).toUTCString() + ";path=/");
|
|
});
|
|
|
|
// Reset UI elements to default states
|
|
applyDarkMode(false); // Default: Light mode
|
|
applyCloakJSSetting(false); // Default: CloakJS disabled
|
|
applyFPSCounterSetting(false); // Default: FPS Counter disabled
|
|
applyMaturityFilterSetting(false); // Default: Maturity Filter disabled
|
|
applyTextToSpeechSetting(false); // Default: Text-to-Speech disabled
|
|
|
|
alert('Settings have been reset to default!');
|
|
});
|
|
</script>
|
|
</body>
|
|
|
|
</html> |