mirror of
https://github.com/ThaUnknown/miru.git
synced 2026-03-17 15:36:32 +00:00
69 lines
2.2 KiB
JavaScript
69 lines
2.2 KiB
JavaScript
const settingsElements = [
|
|
volume, player2, player3, player5, player6, player10, subtitle1, subtitle3, torrent1, torrent2, torrent3, torrent4, torrent5, torrent6, torrent7, torrent8, torrent9, other1, other2
|
|
]
|
|
setRes.addEventListener('click', restoreDefaults)
|
|
settingsTab.addEventListener('click', applySettingsTimeout)
|
|
volume.addEventListener('click', applySettingsTimeout)
|
|
regProtButton.addEventListener('click', registerProtocol)
|
|
let settings = {}
|
|
function restoreDefaults () {
|
|
localStorage.removeItem('settings')
|
|
location.reload()
|
|
}
|
|
let applyTimeout
|
|
function applySettingsTimeout () {
|
|
clearTimeout(applyTimeout)
|
|
applyTimeout = setTimeout(saveSettings, 500)
|
|
}
|
|
function saveSettings () {
|
|
settingsElements.forEach(element => {
|
|
element.type === 'checkbox' ? settings[element.id] = element.checked : settings[element.id] = element.value
|
|
})
|
|
localStorage.setItem('settings', JSON.stringify(settings))
|
|
}
|
|
|
|
function renderSettings () {
|
|
Object.entries(settings).forEach(setting => {
|
|
const settingElement = settingsElements.filter(e => e.id === setting[0])[0]
|
|
if (settingElement) settingElement.type === 'checkbox' ? settingElement.checked = setting[1] : settingElement.value = setting[1]
|
|
})
|
|
}
|
|
function registerProtocol () {
|
|
if ('registerProtocolHandler' in navigator) {
|
|
navigator.registerProtocolHandler(
|
|
'magnet',
|
|
`${location.href.replace(location.hash, '')}#home&file=%s`,
|
|
'Miru'
|
|
)
|
|
}
|
|
}
|
|
|
|
if (!localStorage.getItem('settings')) {
|
|
saveSettings()
|
|
location.reload()
|
|
} else {
|
|
settings = JSON.parse(localStorage.getItem('settings'))
|
|
}
|
|
clearRelCache.onclick = () => {
|
|
localStorage.removeItem('store')
|
|
store = {}
|
|
}
|
|
renderSettings()
|
|
|
|
other1.onclick = () => Notification.requestPermission().then(function (perm) { perm === 'denied' ? other1.checked = false : other1.checked = true })
|
|
|
|
const searchParams = new URLSearchParams(location.href)
|
|
if (searchParams.get('access_token')) {
|
|
localStorage.setItem('ALtoken', searchParams.get('access_token'))
|
|
window.location = '/app/#settingsTab'
|
|
}
|
|
const userBrowser = (function () {
|
|
if (window.chrome) {
|
|
if (navigator.userAgent.indexOf('Edg') !== -1) {
|
|
return 'edge'
|
|
} else {
|
|
return 'chromium'
|
|
}
|
|
}
|
|
if (typeof InstallTrigger !== 'undefined') return 'firefox'
|
|
}())
|