|
10 | 10 | import SettingsIcon from "../icons/SettingsIcon.svelte"
|
11 | 11 | import { options, config } from "./stores"
|
12 | 12 | import { onDestroy } from "svelte"
|
13 |
| - import servicesHelper, { computeFrontend } from "../../assets/javascripts/services" |
| 13 | + import servicesHelper from "../../assets/javascripts/services" |
14 | 14 | import Switch from "./components/Switch.svelte"
|
15 | 15 | import AutoPickIcon from "../icons/AutoPickIcon.svelte"
|
16 | 16 | import utils from "../../assets/javascripts/utils"
|
|
53 | 53 | options.set(_options)
|
54 | 54 | const newUrl = await servicesHelper.switchInstance(url, service)
|
55 | 55 | browser.tabs.update({ url: newUrl })
|
| 56 | + window.close() |
56 | 57 | }
|
57 | 58 |
|
58 |
| - async function autoPick() { |
| 59 | + async function autoPickInstance() { |
59 | 60 | autoPicking = true
|
60 | 61 | const redirects = await utils.getList(_options)
|
61 |
| - const instances = utils.randomInstances(redirects[frontend]["clearnet"], 5) |
| 62 | + const clearnet = redirects[frontend]["clearnet"] |
| 63 | + const i = clearnet.findIndex(instance => url.href.startsWith(instance)) |
| 64 | + if (i >= 0) clearnet.splice(i, 1) |
| 65 | + const randomInstances = utils.randomInstances(clearnet, 5) |
62 | 66 | const pings = await Promise.all([
|
63 |
| - ...instances.map(async instance => { |
| 67 | + ...randomInstances.map(async instance => { |
64 | 68 | return [instance, await utils.ping(instance)]
|
65 | 69 | }),
|
66 | 70 | ])
|
|
71 | 75 | }
|
72 | 76 |
|
73 | 77 | async function addAutoPickInstance() {
|
74 |
| - await autoPick() |
75 |
| - const newUrl = await servicesHelper.switchInstance(url) |
76 |
| - browser.tabs.update({ url: newUrl }) |
| 78 | + await autoPickInstance() |
| 79 | + browser.tabs.update({ url: await servicesHelper.switchInstance(url, service) }, () => { |
| 80 | + window.close() |
| 81 | + }) |
77 | 82 | }
|
78 | 83 |
|
79 | 84 | async function removeAndAutoPickInstance() {
|
80 | 85 | const i = _options[frontend].findIndex(instance => url.href.startsWith(instance))
|
81 | 86 | _options[frontend].splice(i, 1)
|
82 | 87 | options.set(_options)
|
83 |
| - await autoPick() |
84 |
| - const newUrl = await servicesHelper.switchInstance(url, service) |
85 |
| - browser.tabs.update({ url: newUrl }) |
| 88 | + await autoPickInstance() |
| 89 | + browser.tabs.update({ url: await servicesHelper.switchInstance(url, service) }, () => { |
| 90 | + window.close() |
| 91 | + }) |
86 | 92 | }
|
87 |
| - $: console.log("autoPicking", autoPicking) |
88 | 93 | </script>
|
89 | 94 |
|
90 | 95 | <div class={document.body.dir}>
|
|
94 | 99 | on:click={() => {
|
95 | 100 | browser.tabs.query({ active: true, currentWindow: true }, tabs => {
|
96 | 101 | browser.runtime.sendMessage({ message: "redirect", tabId: tabs[0].id }, () => {
|
97 |
| - browser.tabs.update({ url: redirect }) |
| 102 | + browser.tabs.update({ url: redirect }, () => { |
| 103 | + window.close() |
| 104 | + }) |
98 | 105 | })
|
99 | 106 | })
|
100 | 107 | }}
|
|
0 commit comments