diff options
author | ManeraKai <manerakai@protonmail.com> | 2024-09-21 09:30:22 +0300 |
---|---|---|
committer | ManeraKai <manerakai@protonmail.com> | 2024-09-21 09:31:45 +0300 |
commit | d4151c826fff5008a0d6017feced261061585deb (patch) | |
tree | c459e40e16f4eef875232383b1d0a492ae936c64 /src/pages/options_src | |
parent | Added margin to popup buttons (diff) | |
download | libredirect-d4151c826fff5008a0d6017feced261061585deb.zip |
Restricted maps regex
Diffstat (limited to 'src/pages/options_src')
-rw-r--r-- | src/pages/options_src/Services/Instances.svelte | 57 |
1 files changed, 31 insertions, 26 deletions
diff --git a/src/pages/options_src/Services/Instances.svelte b/src/pages/options_src/Services/Instances.svelte index 4e5d1e7d..7a04b04e 100644 --- a/src/pages/options_src/Services/Instances.svelte +++ b/src/pages/options_src/Services/Instances.svelte @@ -56,30 +56,6 @@ return true } - async function pingInstances() { - pingCache = {} - for (const instance of allInstances) { - pingCache[instance] = { color: "lightblue", value: "pinging..." } - const time = await utils.ping(instance) - pingCache[instance] = colorTime(time) - } - } - - async function autoPickInstance() { - const instances = utils.randomInstances(redirects[selectedFrontend]["clearnet"], 5) - const myInstancesCache = [] - for (const instance of instances) { - pingCache[instance] = { color: "lightblue", value: "pinging..." } - const time = await utils.ping(instance) - pingCache[instance] = colorTime(time) - myInstancesCache.push([instance, time]) - } - myInstancesCache.sort((a, b) => a[1] - b[1]) - - _options[selectedFrontend].push(myInstancesCache[0][0]) - options.set(_options) - } - function colorTime(time) { let value let color @@ -113,17 +89,46 @@ options.set(_options) } } + + let autoPicking = false + let pinging = false </script> {#if serviceConf.frontends[selectedFrontend].instanceList && redirects && blacklist} <hr /> <div> - <Button on:click={pingInstances}> + <Button + on:click={async () => { + pinging = true + pingCache = {} + for (const instance of allInstances) { + pingCache[instance] = { color: "lightblue", value: "pinging..." } + const time = await utils.ping(instance) + pingCache[instance] = colorTime(time) + } + pinging = false + }} + disabled={pinging} + > <PingIcon class="margin margin_{document.body.dir}" /> {browser.i18n.getMessage("pingInstances") || "Ping Instances"} </Button> - <Button on:click={autoPickInstance}> + <Button + on:click={async () => { + autoPicking = true + const clearnet = redirects[selectedFrontend]["clearnet"] + for (const instance of _options[selectedFrontend]) { + const i = clearnet.indexOf(instance) + if (i >= 0) clearnet.splice(i, 1) + } + const instance = await utils.autoPickInstance(clearnet) + _options[selectedFrontend].push(instance) + options.set(_options) + autoPicking = false + }} + disabled={autoPicking} + > <AutoPickIcon class="margin margin_{document.body.dir}" /> {browser.i18n.getMessage("autoPickInstance") || "Auto Pick Instance"} </Button> |