mirror of
https://github.com/ThaUnknown/miru.git
synced 2026-03-30 12:58:42 +00:00
76 lines
No EOL
2.2 KiB
JavaScript
76 lines
No EOL
2.2 KiB
JavaScript
const settingsElements = [
|
|
player1, player2, player3, player4, player5, player6, player7, player8, player9, player10, subtitle1, subtitle2, subtitle3, torrent1, torrent2, torrent3, torrent4, torrent5, torrent6, torrent7, torrent8, torrent9, other1, other2
|
|
]
|
|
let settings = {}
|
|
function restoreDefaults() {
|
|
localStorage.removeItem("settings");
|
|
location.reload()
|
|
}
|
|
let applyTimeout
|
|
function applySettingsTimeout() {
|
|
clearTimeout(applyTimeout)
|
|
applyTimeout = setTimeout(saveSettings, 500)
|
|
}
|
|
function saveSettings() {
|
|
settingsElements.forEach(element => {
|
|
if (element.type == "checkbox") {
|
|
settings[element.id] = element.checked
|
|
} else {
|
|
settings[element.id] = element.value
|
|
}
|
|
})
|
|
localStorage.setItem("settings", JSON.stringify(settings))
|
|
}
|
|
|
|
function renderSettings() {
|
|
Object.entries(settings).forEach(setting => {
|
|
let settingElement = settingsElements.filter(e => e.id == setting[0])[0]
|
|
if (settingElement.type == "checkbox") {
|
|
settingElement.checked = setting[1]
|
|
} else {
|
|
settingElement.value = setting[1]
|
|
}
|
|
})
|
|
}
|
|
function registerProtocol() {
|
|
if ('registerProtocolHandler' in navigator) {
|
|
navigator.registerProtocolHandler(
|
|
'magnet',
|
|
`${location.href.replace(location.hash, '')}#&file=%s`,
|
|
'Miru'
|
|
);
|
|
}
|
|
}
|
|
|
|
if (!localStorage.getItem("settings")) {
|
|
saveSettings()
|
|
location.reload()
|
|
} else {
|
|
settings = JSON.parse(localStorage.getItem("settings"))
|
|
}
|
|
clearRelCache.onclick = () => {
|
|
localStorage.removeItem("store")
|
|
store = {}
|
|
}
|
|
renderSettings()
|
|
setRes.addEventListener("click", restoreDefaults)
|
|
settingsTab.addEventListener("click", applySettingsTimeout)
|
|
regProtButton.addEventListener("click", registerProtocol)
|
|
|
|
let searchParams = new URLSearchParams(location.href)
|
|
if (searchParams.get("access_token")) {
|
|
localStorage.setItem("ALtoken", searchParams.get("access_token"))
|
|
window.location = "/app/#settingsTab"
|
|
}
|
|
|
|
torrent5.onclick = e => {
|
|
if (!e.srcElement.checked)
|
|
torrent8.checked = false
|
|
|
|
}
|
|
torrent8.onclick = e => {
|
|
if (e.srcElement.checked)
|
|
torrent5.checked = true
|
|
}
|
|
|
|
document.documentElement.style.setProperty("font-size", settings.other1 + "%") |