diff options
author | Hygna <hygna@proton.me> | 2022-09-19 17:30:39 +0100 |
---|---|---|
committer | Hygna <hygna@proton.me> | 2022-09-19 17:30:39 +0100 |
commit | 0c1595ec3a0f8f38f322f2e70598dbe208151554 (patch) | |
tree | 58d65a33dc8f18fb09f096a5b587592371153d0d | |
parent | Converted index.html to ejs (diff) | |
download | libredirect-0c1595ec3a0f8f38f322f2e70598dbe208151554.zip |
Changes
Made get_instances.py more efficient Further work to get widgets/services.js to work properly
-rw-r--r-- | src/assets/javascripts/services.js | 33 | ||||
-rw-r--r-- | src/config/config.json | 171 | ||||
-rw-r--r-- | src/instances/get_instances.py | 484 | ||||
-rw-r--r-- | src/pages/options/index.ejs | 10 | ||||
-rw-r--r-- | src/pages/options/index.html | 1326 | ||||
-rw-r--r-- | src/pages/options/widgets/general.ejs | 12 | ||||
-rw-r--r-- | src/pages/options/widgets/services.ejs | 61 | ||||
-rw-r--r-- | src/pages/options/widgets/services.js | 58 | ||||
-rw-r--r-- | src/pages/widgets/links.ejs | 4 |
9 files changed, 793 insertions, 1366 deletions
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js index 70928786..affe0d1a 100644 --- a/src/assets/javascripts/services.js +++ b/src/assets/javascripts/services.js @@ -28,8 +28,8 @@ function init() { //cur = current for (const service in config.services) { options[service] = {} - browser.storage.local.get([`disable${utils.camelCase(service)}`, `${service}RedirectType`, `${service}Frontend`], r => { - options[service].disabled = r["disable" + utils.camelCase(service)] + browser.storage.local.get([`${utils.camelCase(service)}Enable`, `${service}RedirectType`, `${service}Frontend`], r => { + options[service].enabled = r[utils.camelCase(service) + "Enable"] options[service].frontend = r[service + "Frontend"] options[service].redirectType = r[service + "RedirectType"] // console.log(r) @@ -60,19 +60,19 @@ function all(service) { return tmp } -getConfig() +await getConfig() init() browser.storage.onChanged.addListener(init) function redirect(url, type, initiator) { let randomInstance - let frontend = options[service].frontend + let frontend let network = options.network let networkFallback = options.networkFallback - let redirectType = options[service].redirectType + let redirectType if (url.pathname == "/") return for (const service in config.services) { - if (options[service].disabled && !disableOverride) continue + if (!options[service].enabled && !disableOverride) continue let targets = service.targets if (targets == "datajson") { browser.storage.local.get(`${service}Targets`, (targets = r[service + "Targets"])) @@ -81,11 +81,18 @@ function redirect(url, type, initiator) { if (initiator && (all(service).includes(initiator.origin) || targets.includes(initiator.host))) continue if (!targets.some(rx => rx.test(url.href))) continue if (type != redirectType && type != "both") continue + + frontend = options[service].frontend + redirectType = options[service].redirectType + // browser.storage.local.get(`${service}Frontend`, (frontend = r[service + "Frontend"])) - let instanceList = [...[service + utils.camelCase(network) + "RedirectsChecks"], ...[service + utils.camelCase(network) + "CustomRedirects"]] - if (instanceList.length === 0 && networkFallback) instanceList = [...[service + "ClearnetRedirectsChecks"], ...[service + "ClearnetCustomRedirects"]] - if (instanceList.length === 0 && redirects.indexOf(frontend) != -1) return - randomInstance = utils.getRandomInstance(instanceList) + + if (config.services[service].frontends[frontend].instanceList) { + let instanceList = [...[frontend + utils.camelCase(network) + "RedirectsChecks"], ...[frontend + utils.camelCase(network) + "CustomRedirects"]] + if (instanceList.length === 0 && networkFallback) instanceList = [...[frontend + "ClearnetRedirectsChecks"], ...[frontend + "ClearnetCustomRedirects"]] + if (instanceList.length === 0 && redirects.indexOf(frontend) != -1) return + randomInstance = utils.getRandomInstance(instanceList) + } } // Here is a (temperory) space for defining constants required in 2 or more switch cases. @@ -114,7 +121,7 @@ function redirect(url, type, initiator) { .replace("/watch?v=", "/listen?id=") .replace("/channel/", "/artist/") .replace("/playlist?list=", "/playlist/VL") - .replace(/\/search\?q=.*/, searchQuery => searchQuery.replace("?q=", "/") + "?filter=song") + .replace(/\/search\?q=.*/, searchQuery => searchQuery.replace("?q=", "/") + "?filter=all") case "hyperpipe": return `${randomInstance}${url.pathname}${url.search}`.replace(/\/search\?q=.*/, searchQuery => searchQuery.replace("?q=", "/")) case "bibliogram": @@ -386,7 +393,7 @@ function initDefaults() { // console.log(redirects) // console.log(config) browser.storage.local.set({ - redirects, + redirects: redirects.invidious, }) browser.storage.local.get(["cloudflareBlackList", "authenticateBlackList", "offlineBlackList"], async r => { // console.log(r) @@ -395,7 +402,7 @@ function initDefaults() { browser.storage.local.set({ [service + "Targets"]: redirects[service] }) } for (const defaultOption in config.services[service].defaults) { - browser.storage.local.set({ [defaultOption]: config.services[service].defaults[defaultOption] }) + browser.storage.local.set({ [service + camelCase(defaultOption)]: config.services[service].defaults[defaultOption] }) } for (const frontend in config.services[service].frontends) { let clearnetChecks = redirects[frontend].clearnet diff --git a/src/config/config.json b/src/config/config.json index 7c391552..d0bf7edd 100644 --- a/src/config/config.json +++ b/src/config/config.json @@ -24,7 +24,10 @@ "invidious": { "preferences": { "cookies": ["PREFS"] - } + }, + "name": "Invidious", + "embeddable": true, + "instanceList": true }, "piped": { "preferences": { @@ -48,19 +51,38 @@ "volume", "watchHistory" ] - } + }, + "name": "Piped", + "embeddable": true, + "instanceList": true }, "pipedMaterial": { "preferences": { "localstorage": ["PREFERENCES"] - } + }, + "name": "Piped-Material", + "embeddable": false, + "instanceList": true }, "cloudtube": { "preferences": { "token": "token", "fetchEndpoint": "/api/settings", "setEndpoint": "/settings" - } + }, + "name": "CloudTube", + "embeddable": false, + "instanceList": true + }, + "freetube": { + "name": "FreeTube", + "embeddable": false, + "instanceList": false + }, + "yattee": { + "name": "Yattee", + "embeddable": false, + "instanceList": false } }, "singleInstanceFrontends": ["freetube", "yatte"], @@ -74,7 +96,7 @@ ], "name": "Youtube", "options": { - "disabled": false, + "enabled": true, "redirectType": "both", "frontend": "invidious", "embedFrontend": "invidious" @@ -88,19 +110,23 @@ "preferences": { "localstorage": ["settings"], "indexeddb": "beatbump" - } + }, + "name": "Beatbump", + "instanceList": true }, "hyperpipe": { "preferences": { "localstorage": ["api", "authapi", "codec", "locale", "next", "pipedapi", "quality", "theme", "vol"], "indexeddb": ["hyperpipedb"] - } + }, + "name": "HyperPipe", + "instanceList": true } }, "targets": ["^https?:\\/{2}music\\.youtube\\.com(\\/.*|$)"], "name": "YT Music", "options": { - "disabled": false, + "enabled": true, "frontend": "beatbump" }, "imageType": "png", @@ -130,13 +156,16 @@ "replaceTwitter", "replaceYouTube" ] - } + }, + "name": "Nitter", + "embeddable": true, + "instanceList": true } }, "targets": ["^https?:\\/{2}(www\\.|mobile\\.|)twitter\\.com", "^https?:\\/{2}(pbs\\.|video\\.|)twimg\\.com", "^https?:\\/{2}platform\\.twitter\\.com/embed", "^https?:\\/{2}t\\.co"], "name": "Twitter", "options": { - "disabled": false, + "enabled": true, "redirectType": "both" }, "imageType": "png", @@ -149,12 +178,14 @@ "token": "token", "fetchEndpoint": "/settings.json", "setEndpoint": "/applysettings" - } + }, + "name": "Bibliogram", + "instanceList": false } }, "targets": ["^https?:\\/{2}(www\\.)?instagram\\.com"], "name": "Instagram", - "options": { "disabled": false }, + "options": { "enabled": true }, "imageType": "png", "embeddable": false }, @@ -163,12 +194,14 @@ "proxiTok": { "preferences": { "cookies": ["api-test_endpoints", "theme"] - } + }, + "name": "ProxiTok", + "instanceList": true } }, "targets": ["^https?:\\/{2}(www\\.|)tiktok\\.com.*"], "name": "TikTok", - "options": { "disabled": false }, + "options": { "enabled": true }, "imageType": "png", "embeddable": false }, @@ -177,7 +210,9 @@ "libreddit": { "preferences": { "cookies": ["theme", "front_page", "layout", "wide", "post_sort", "comment_sort", "show_nsfw", "autoplay_videos", "use_hls", "hide_hls_notification", "subscriptions", "filters"] - } + }, + "name": "Libreddit", + "instanceList": true }, "teddit": { "preferences": { @@ -195,13 +230,15 @@ "theme", "videos_muted" ] - } + }, + "name": "Teddit", + "instanceList": true } }, "targets": ["^https?:\\/{2}(www\\.|old\\.|np\\.|new\\.|amp\\.|)reddit\\.com", "^https?:\\/{2}(i\\.|preview\\.)redd\\.it"], "name": "Reddit", "options": { - "disabled": false, + "enabled": true, "frontend": "libreddit" }, "imageType": "png", @@ -210,12 +247,14 @@ "imgur": { "frontends": { "rimgo": { - "preferences": {} + "preferences": {}, + "name": "rimgo", + "instanceList": true } }, "targets": ["^https?:\\/{2}([im]\\.)?imgur\\.(com|io)(\\/|$)"], "name": "Imgur", - "options": { "disabled": false }, + "options": { "enabled": true }, "imageType": "png", "embeddable": false }, @@ -224,19 +263,23 @@ "wikiless": { "preferences": { "cookies": ["theme", "default_lang"] - } + }, + "name": "Wikiless", + "instanceList": true } }, "targets": ["^https?:\\/{2}([a-z]+\\.)*wikipedia\\.org"], "name": "Wikipedia", - "options": { "disabled": true }, + "options": { "enabled": false }, "imageType": "svg", "embeddable": false }, "medium": { "frontends": { "scribe": { - "preferences": {} + "preferences": {}, + "name": "Scribe", + "instanceList": true } }, "targets": [ @@ -260,7 +303,7 @@ "^writingcooperative\\.com " ], "name": "Medium", - "options": { "disabled": false }, + "options": { "enabled": true }, "imageType": "svg", "embeddable": false }, @@ -269,12 +312,14 @@ "quetre": { "preferences": { "localstorage": ["theme"] - } + }, + "name": "Quetre", + "instanceList": true } }, "targets": ["^https?:\\/{2}([a-z]+\\.)*quora\\.com.*"], "name": "Quora", - "options": { "disabled": false }, + "options": { "enabled": true }, "imageType": "png", "embeddable": false }, @@ -283,36 +328,42 @@ "libremdb": { "preferences": { "localstorage": ["theme"] - } + }, + "name": "libremdb", + "instanceList": true } }, "targets": ["^https?:\\/{2}(?:www\\.|)imdb\\.com.*"], "name": "IMDb", - "options": { "disabled": true }, + "options": { "enabled": false }, "imageType": "svg", "embeddable": false }, "reuters": { "frontends": { "neuters": { - "preferences": {} + "preferences": {}, + "name": "Neuters", + "instanceList": true } }, "targets": ["^https?:\\/{2}(www\\.|)reuters\\.com.*"], "name": "Reuters", - "options": { "disabled": true }, + "options": { "enabled": false }, "imageType": "svg", "embeddable": false }, "peertube": { "frontends": { "simpleertube": { - "preferences": {} + "preferences": {}, + "name": "SimpleerTube", + "instanceList": true } }, "targets": "datajson", "name": "PeerTube", - "options": { "disabled": true }, + "options": { "enabled": false }, "imageType": "svg", "embeddable": false }, @@ -322,14 +373,21 @@ "preferences": { "cookies": ["nsfw", "theme"], "localstorage": ["autoplay", "autoplayNextVid", "collapseComments", "plyr", "sb_categories", "showRelated"] - } + }, + "name": "Librarian", + "embeddable": true, + "instanceList": true + }, + "lbryDesktop": { + "name": "LBRY Desktop", + "embeddable": false, + "instanceList": false } }, - "singleInstanceFrontends": ["lbryDesktop"], "targets": ["^https?:\\/{2}odysee\\.com", "^https?:\\/{2}lbry\\.tv"], "name": "LBRY", "options": { - "disabled": true, + "enabled": false, "frontend": "librarian", "redirectType": "both" }, @@ -359,7 +417,9 @@ "theme", "tokens" ] - } + }, + "name": "SearX", + "instanceList": true }, "searxng": { "preferences": { @@ -384,21 +444,27 @@ "theme", "tokens" ] - } + }, + "name": "SearXNG", + "instanceList": true }, "whoogle": { - "preferences": {} + "preferences": {}, + "name": "Whoogle", + "instanceList": true }, "librex": { "preferences": { "cookies": ["bibliogram", "disable_special", "invidious", "libreddit", "nitter", "proxitok", "theme", "wikiless"] - } + }, + "name": "LibreX", + "instanceList": true } }, "targets": ["^https?:\\/{2}search\\.libredirect\\.invalid"], "name": "Search", "options": { - "disabled": false, + "enabled": true, "frontend": "searxng" }, "imageType": "svg", @@ -409,18 +475,22 @@ "simplyTranslate": { "preferences": { "cookies": ["from_lang", "to_lang", "tts_enabled", "use_text_fields"] - } + }, + "name": "SimplyTranslate", + "instanceList": true }, "lingva": { "preferences": { "localstorage": ["isauto", "source", "target"] - } + }, + "name": "Lingva", + "instanceList": true } }, "targets": ["^https?:\\/{2}translate\\.google(\\.[a-z]{2,3}){1,2}\\/"], "name": "Translate", "options": { - "disabled": false, + "enabled": true, "frontend": "simplyTranslate" }, "imageType": "svg", @@ -429,14 +499,19 @@ "maps": { "frontends": { "facil": { - "preferences": {} + "preferences": {}, + "name": "FacilMap", + "instanceList": true + }, + "osm": { + "name": "OpenStreetMap", + "instanceList": false } }, - "singleInstanceFrontends": ["osm"], "targets": ["^https?:\\/{2}(((www|maps)\\.)?(google\\.).*(\\/maps)|maps\\.(google\\.).*)"], "name": "Maps", "options": { - "disabled": false, + "enabled": true, "frontend": "osm" }, "imageType": "svg", @@ -445,12 +520,14 @@ "sendTargets": { "frontends": { "send": { - "preferences": {} + "preferences": {}, + "name": "Send", + "instanceList": "true" } }, "targets": ["^https?:\\/{2}send\\.libredirect\\.invalid\\/$", "^https?:\\/{2}send\\.firefox\\.com\\/$", "^https?:\\/{2}sendfiles\\.online\\/$"], "name": "Send Files", - "options": { "disabled": false }, + "options": { "enabled": true }, "imageType": "svg", "embeddable": false } diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py index a95eb46f..770f2581 100644 --- a/src/instances/get_instances.py +++ b/src/instances/get_instances.py @@ -3,12 +3,10 @@ import requests import json from urllib.parse import urlparse -from bs4 import BeautifulSoup import re from colorama import Fore, Back, Style from urllib.parse import urlparse import socket -import subprocess mightyList = {} @@ -18,6 +16,11 @@ torRegex = startRegex + "onion" + endRegex i2pRegex = startRegex + "i2p" + endRegex lokiRegex = startRegex + "loki" + endRegex authRegex = "https?:\/{2}\S+:\S+@(?:[^\s\/]+\.)+[a-zA-Z0-9]+" + endRegex +config = {} + +with open('./config/config.json') as file: + config = file + def filterLastSlash(urlList): tmp = {} @@ -102,70 +105,162 @@ def is_offline(url): except: return False +def fetchCache(frontend, name) : + # json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) + with open('./src/instances/data.json') as file: + mightyList[frontend] = json.load(file).frontend + print(Fore.ORANGE + 'Failed' + Style.RESET_ALL + ' to fetch ' + name) + +def fetchFromFile(frontend, name): + #json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) + with open('./src/instances/' + frontend + '.json') as file: + mightyList[frontend] = json.load(file) + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + +def fetchJsonList(frontend, name, url, urlItem): + try: + r = requests.get(url) + rJson = json.loads(r.text) + _list = {} + for network in config.networks: + _list[network] = [] + if type(urlItem) is 'str': + for item in rJson: + if urlItem is not None: + tmpUrl = item[urlItem] + else: + tmpUrl = item + if tmpUrl.strip() == "": + continue + elif re.search(torRegex, tmpUrl): + _list['tor'].append(tmpUrl) + elif re.search(i2pRegex, tmpUrl): + _list['i2p'].append(tmpUrl) + elif re.search(lokiRegex, tmpUrl): + _list['loki'].append(tmpUrl) + else: + _list['clearnet'].append(tmpUrl) + else: + for i in range(config.networks.length): + # The expected order is the same as in config.json. If the frontend doesn't have any instances for a specified network, use None + if urlItem != None: + for item in rJson: + if network in item: + if item[network].strip() != "": + _list[config.networks[i]].append(item[urlItem[i]]) + + mightyList[frontend] = _list + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + except: + fetchCache(frontend, name) + +def fetchRegexList(frontend, name, url, regex): + try: + r = requests.get(url) + _list = {} + for network in config.networks: + _list[network] = [] + + tmp = re.findall(regex, r.text) + + for item in tmp: + if item.strip() == "": + continue + elif re.search(torRegex, item): + _list['tor'].append(item) + elif re.search(i2pRegex, item): + _list['i2p'].append(item) + elif re.search(lokiRegex, item): + _list['loki'].append(item) + else: + _list['clearnet'].append(item) + mightyList[frontend] = _list + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + except: + fetchCache(frontend, name) + +def fetchTextList(frontend, name, url, prepend): + try: + r = requests.get(url) + tmp = r.text.strip().split('\n') + + _list = {} + for network in config.networks: + _list[network] = [] + + for item in tmp: + item = prepend + item + if re.search(torRegex, item): + _list['tor'].append(item) + elif re.search(i2pRegex, item): + _list['i2p'].append(item) + elif re.search(lokiRegex, item): + _list['loki'].append(item) + else: + _list['clearnet'].append(item) + mightyList[frontend] = _list + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + except: + fetchCache(frontend, name) + def invidious(): - r = requests.get('https://api.invidious.io/instances.json') - rJson = json.loads(r.text) - invidiousList = {} - invidiousList['clearnet'] = [] - invidiousList['tor'] = [] - invidiousList['i2p'] = [] - invidiousList['loki'] = [] - for instance in rJson: - if instance[1]['type'] == 'https': - invidiousList['clearnet'].append(instance[1]['uri']) - elif instance[1]['type'] == 'onion': - invidiousList['tor'].append(instance[1]['uri']) - mightyList['invidious'] = invidiousList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Invidious') + name = 'Invidious' + frontend = 'invidious' + try: + _list = {} + _list['clearnet'] = [] + _list['tor'] = [] + _list['i2p'] = [] + _list['loki'] = [] + r = requests.get('https://api.invidious.io/instances.json') + rJson = json.loads(r.text) + for instance in rJson: + if instance[1]['type'] == 'https': + _list['clearnet'].append(instance[1]['uri']) + elif instance[1]['type'] == 'onion': + _list['tor'].append(instance[1]['uri']) + mightyList[frontend] = _list + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + except: + fetchCache(frontend, name) def piped(): - r = requests.get( - 'https://raw.githubusercontent.com/wiki/TeamPiped/Piped/Instances.md') - - tmp = re.findall( - '(?:[^\s\/]+\.)+[a-zA-Z]+ (?:\(Official\) )?\| (https:\/{2}(?:[^\s\/]+\.)+[a-zA-Z]+) \| ', r.text) - _list = {} - _list['clearnet'] = [] - _list['tor'] = [] - _list['i2p'] = [] - _list['loki'] = [] - for item in tmp: - try: - url = requests.get(item, timeout=5).url - if url.strip("/") == item: + frontend = 'piped' + name = 'Piped' + try: + _list = {} + _list['clearnet'] = [] + _list['tor'] = [] + _list['i2p'] = [] + _list['loki'] = [] + r = requests.get( + 'https://raw.githubusercontent.com/wiki/TeamPiped/Piped/Instances.md') + + tmp = re.findall( + '(?:[^\s\/]+\.)+[a-zA-Z]+ (?:\(Official\) )?\| (https:\/{2}(?:[^\s\/]+\.)+[a-zA-Z]+) \| ', r.text) + for item in tmp: + try: + url = requests.get(item, timeout=5).url + if url.strip("/") == item: + continue + else: + _list['clearnet'].append(url) + except: continue - else: - _list['clearnet'].append(url) - except: - continue - mightyList['piped'] = _list - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Piped') + mightyList[frontend] = _list + print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + name) + except: + fetchCache(frontend, name) def pipedMaterial(): - r = requests.get( - 'https://raw.githubusercontent.com/mmjee/Piped-Material/master/README.md') - - tmp = re.findall( - r"\| (https?:\/{2}(?:\S+\.)+[a-zA-Z0-9]*) +\|", r.text) - pipedMaterialList = {} - pipedMaterialList['clearnet'] = [] - pipedMaterialList['tor'] = [] - pipedMaterialList['i2p'] = [] - pipedMaterialList['loki'] = [] - for item in tmp: - pipedMaterialList['clearnet'].append(item) - mightyList['pipedMaterial'] = pipedMaterialList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'pipedMaterial') + fetchRegexList('pipedMaterial', 'Piped-Material', 'https://raw.githubusercontent.com/mmjee/Piped-Material/master/README.md', r"\| (https?:\/{2}(?:\S+\.)+[a-zA-Z0-9]*) +\|") def cloudtube(): - json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) - with open('./src/instances/cloudtube.json') as file: - mightyList['cloudtube'] = json.load(file) - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'CloudTube') + fetchCache('cloudtube', 'Cloudtube') def proxitok(): @@ -186,19 +281,7 @@ def proxitok(): def send(): - r = requests.get( - 'https://gitlab.com/timvisee/send-instances/-/raw/master/README.md') - tmp = re.findall( - r"- ([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}", r.text) - sendList = {} - sendList['clearnet'] = [] - sendList['tor'] = [] - sendList['i2p'] = [] - sendList['loki'] = [] - for item in tmp: - sendList['clearnet'].append(item) - mightyList['send'] = sendList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Send') + fetchRegexList('send', 'Send', 'https://gitlab.com/timvisee/send-instances/-/raw/master/README.md', r"- ([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z0-9]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}") def nitter(): @@ -230,150 +313,35 @@ def nitter(): def bibliogram(): - json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) - with open('./src/instances/bibliogram.json') as file: - mightyList['bibliogram'] = json.load(file) - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Bibliogram') + fetchFromFile('bibliogram', 'Bibliogram') def libreddit(): - r = requests.get( - 'https://raw.githubusercontent.com/spikecodes/libreddit/master/README.md') - libredditList = {} - libredditList['clearnet'] = [] - libredditList['tor'] = [] - libredditList['i2p'] = [] - libredditList['loki'] = [] - - tmp = re.findall( - r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|", r.text) - - for item in tmp: - if re.search(torRegex, item): - libredditList['tor'].append(item) - else: - libredditList['clearnet'].append(item) - mightyList['libreddit'] = libredditList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'LibReddit') + fetchRegexList('libreddit', 'Libreddit', 'https://raw.githubusercontent.com/spikecodes/libreddit/master/README.md', r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|") def teddit(): - r = requests.get( - 'https://codeberg.org/teddit/teddit/raw/branch/main/instances.json') - rJson = json.loads(r.text) - tedditList = {} - tedditList['clearnet'] = [] - tedditList['tor'] = [] - tedditList['i2p'] = [] - tedditList['loki'] = [] - for item in rJson: - url = item['url'] - if url != '': - tedditList['clearnet'].append(url) - if 'onion' in item: - onion = item['onion'] - if onion != '': - tedditList['tor'].append(onion) - - mightyList['teddit'] = tedditList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Teddit') + fetchJsonList('teddit', 'Teddit', 'https://codeberg.org/teddit/teddit/raw/branch/main/instances.json', ['url', 'onion', 'i2p', None]) def wikiless(): - r = requests.get('https://wikiless.org/instances.json') - rJson = json.loads(r.text) - wikilessList = {} - wikilessList['clearnet'] = [] - wikilessList['tor'] = [] - wikilessList['i2p'] = [] - wikilessList['loki'] = [] - for item in rJson: - if 'url' in item: - if item['url'].strip() != "": - wikilessList['clearnet'].append(item['url']) - if 'onion' in item: - if item['onion'].strip() != "": - wikilessList['tor'].append(item['onion']) - if 'i2p' in item: - if item['i2p'].strip() != "": - wikilessList['i2p'].append(item['i2p']) - mightyList['wikiless'] = wikilessList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Wikiless') + fetchJsonList('wikiless', 'Wikiless', 'https://wikiless.org/instances.json', ['url', 'onion', 'i2p', None]) def scribe(): - r = requests.get( - 'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json') - rJson = json.loads(r.text) - scribeList = {} - scribeList['clearnet'] = [] - scribeList['tor'] = [] - scribeList['i2p'] = [] - scribeList['loki'] = [] - for item in rJson: - scribeList['clearnet'].append(item) - mightyList['scribe'] = scribeList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Scribe') + fetchJsonList('scribe', 'Scribe', 'https://git.sr.ht/~edwardloveall/scribe/blob/main/docs/instances.json', None) def quetre(): - r = requests.get( - 'https://raw.githubusercontent.com/zyachel/quetre/main/README.md') - _list = {} - _list['clearnet'] = [] - _list['tor'] = [] - _list['i2p'] = [] - _list['loki'] = [] - - tmp = re.findall( - r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|", r.text) - - - for item in tmp: - if re.search(torRegex, item): - _list['tor'].append(item) - else: - _list['clearnet'].append(item) - mightyList['quetre'] = _list - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Quetre') + fetchRegexList('quetre', 'Quetre', 'https://raw.githubusercontent.com/zyachel/quetre/main/README.md', r"\| \[.*\]\(([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)\)*\|*[A-Z]{0,}.*\|.*\|") def libremdb(): - r = requests.get( - 'https://raw.githubusercontent.com/zyachel/libremdb/main/README.md') - _list = {} - _list['clearnet'] = [] - _list['tor'] = [] - _list['i2p'] = [] - _list['loki'] = [] - - tmp = re.findall( - r"\| ([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)*\|*[A-Z]{0,}.*\|.*\|", r.text) + fetchRegexList('libremdb', 'libremdb', 'https://raw.githubusercontent.com/zyachel/libremdb/main/README.md', r"\| ([-a-zA-Z0-9@:%_\+.~#?&//=]{2,}\.[a-z]{2,}\b(?:\/[-a-zA-Z0-9@:%_\+.~#?&//=]*)?)*\|*[A-Z]{0,}.*\|.*\|") - for item in tmp: - if item.strip() == "": - continue - if re.search(torRegex, item): - _list['tor'].append(item) - else: - _list['clearnet'].append(item) - - mightyList['libremdb'] = _list - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Libremdb') - def simpleertube(): - r = requests.get('https://simple-web.org/instances/simpleertube') - _list = {} - _list['clearnet'] = [] - _list['tor'] = [] - _list['i2p'] = [] - _list['loki'] = [] - for item in r.text.strip().split('\n'): - _list['clearnet'].append('https://' + item) - - mightyList['simpleertube'] = _list - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'SimpleerTube') + fetchTextList('simpleertube', 'SimpleerTube', 'https://simple-web.org/instances/simpleertube', 'https://') def simplytranslate(): @@ -403,19 +371,7 @@ def simplytranslate(): def linvgatranslate(): - r = requests.get( - 'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json') - rJson = json.loads(r.text) - lingvaList = {} - lingvaList['clearnet'] = [] - lingvaList['tor'] = [] - lingvaList['i2p'] = [] - lingvaList['loki'] = [] - for item in rJson: - lingvaList['clearnet'].append(item) - - mightyList['lingva'] = lingvaList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'LinvgaTranslate') + fetchJsonList('lingva', 'LingvaTranslate', 'https://raw.githubusercontent.com/TheDavidDelta/lingva-translate/main/instances.json', None) def searx_searxng(): @@ -454,140 +410,34 @@ def searx_searxng(): def whoogle(): - r = requests.get( - 'https://raw.githubusercontent.com/benbusby/whoogle-search/main/misc/instances.txt') - tmpList = r.text.strip().split('\n') - whoogleList = {} - whoogleList['clearnet'] = [] - whoogleList['tor'] = [] - whoogleList['i2p'] = [] - whoogleList['loki'] = [] - for item in tmpList: - if re.search(torRegex, item): - whoogleList['tor'].append(item) - elif re.search(torRegex, item): - whoogleList['i2p'].append(item) - else: - whoogleList['clearnet'].append(item) - mightyList['whoogle'] = whoogleList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Whoogle') + fetchTextList('whoogle', 'Whoogle', 'https://raw.githubusercontent.com/benbusby/whoogle-search/main/misc/instances.txt', '') def librex(): - r = requests.get( - 'https://raw.githubusercontent.com/hnhx/librex/main/README.md') - _list = {} - _list['clearnet'] = [] - _list['tor'] = [] - _list['i2p'] = [] - _list['loki'] = [] - - tmp = re.findall( - r"\| {1,2}\[(?:(?:[a-zA-Z0-9]+\.)+[a-zA-Z]{2,}|✅)\]\((https?:\/{2}(?:[a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,})", r.text) - - for item in tmp: - if item.strip() == "": - continue - elif re.search(torRegex, item): - _list['tor'].append(item) - elif re.search(i2pRegex, item): - _list['i2p'].append(item) - else: - _list['clearnet'].append(item) - mightyList['librex'] = _list - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Librex') + fetchRegexList('librex', 'LibreX', 'https://raw.githubusercontent.com/hnhx/librex/main/README.md', r"\| {1,2}\[(?:(?:[a-zA-Z0-9]+\.)+[a-zA-Z]{2,}|✅)\]\((https?:\/{2}(?:[a-zA-Z0-9]+\.)+[a-zA-Z0-9]{2,})") def rimgo(): - r = requests.get( - 'https://codeberg.org/video-prize-ranch/rimgo/raw/branch/main/instances.json') - rJson = json.loads(r.text) - rimgoList = {} - rimgoList['clearnet'] = [] - rimgoList['tor'] = [] - rimgoList['i2p'] = [] - rimgoList['loki'] = [] - for item in rJson: - if 'url' in item: - rimgoList['clearnet'].append(item['url']) - if 'onion' in item: - rimgoList['tor'].append(item['onion']) - if 'i2p' in item: - rimgoList['i2p'].append(item['i2p']) - mightyList['rimgo'] = rimgoList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Rimgo') + fetchJsonList('rimgo', 'rimgo', 'https://codeberg.org/video-prize-ranch/rimgo/raw/branch/main/instances.json', ['url', 'onion', 'i2p', None]) def librarian(): - r = requests.get( - 'https://codeberg.org/librarian/librarian/raw/branch/main/instances.json') - rJson = json.loads(r.text) - librarianList = {} - librarianList['clearnet'] = [] - librarianList['tor'] = [] - librarianList['i2p'] = [] - librarianList['loki'] = [] - instances = rJson['instances'] - for item in instances: - url = item['url'] - if url.strip() == "": - continue - elif re.search(torRegex, url): - librarianList['tor'].append(url) - elif re.search(i2pRegex, url): - librarianList['i2p'].append(url) - elif re.search(lokiRegex, url): - librarianList['loki'].append(url) - else: - librarianList['clearnet'].append(url) - mightyList['librarian'] = librarianList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Librarian') - + fetchJsonList('librarian', 'Librarian', 'https://codeberg.org/librarian/librarian/raw/branch/main/instances.json', 'url') def neuters(): - json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) - with open('./src/instances/neuters.json') as file: - mightyList['neuters'] = json.load(file) - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Neuters') + fetchFromFile('neuters', 'Neuters') def beatbump(): - json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) - with open('./src/instances/beatbump.json') as file: - mightyList['beatbump'] = json.load(file) - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Beatbump') + fetchFromFile('beatbump', 'Beatbump') def hyperpipe(): - r = requests.get( - 'https://codeberg.org/Hyperpipe/pages/raw/branch/main/api/frontend.json') - rJson = json.loads(r.text) - hyperpipeList = {} - hyperpipeList['clearnet'] = [] - hyperpipeList['tor'] = [] - hyperpipeList['i2p'] = [] - hyperpipeList['loki'] = [] - for item in rJson: - url = item['url'] - if url.strip() == "": - continue - elif re.search(torRegex, url): - hyperpipeList['tor'].append(url) - elif re.search(i2pRegex, url): - hyperpipeList['i2p'].append(url) - elif re.search(lokiRegex, url): - hyperpipeList['loki'].append(url) - else: - hyperpipeList['clearnet'].append(url) - mightyList['hyperpipe'] = hyperpipeList - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'Hyperpipe') + fetchJsonList('hyperpipe', 'Hyperpipe', 'https://codeberg.org/Hyperpipe/pages/raw/branch/main/api/frontend.json', 'url') def facil(): - json_object = json.dumps(mightyList, ensure_ascii=False, indent=2) - with open('./src/instances/facil.json') as file: - mightyList['facil'] = json.load(file) - print(Fore.GREEN + 'Fetched ' + Style.RESET_ALL + 'FacilMap') + fetchFromFile('facil', 'FacilMap') def peertube(): diff --git a/src/pages/options/index.ejs b/src/pages/options/index.ejs index 0240f992..e0ce3c3c 100644 --- a/src/pages/options/index.ejs +++ b/src/pages/options/index.ejs @@ -1,12 +1,12 @@ <!DOCTYPE html> <html id="elementToShowWithJavaScript" lang="en"> - <%- include('src/pages/widgets/head') %> + <%- include('src/pages/widgets/head') -%> <body class="option" dir="auto"> - <%- include('src/pages/widgets/links', {config: config}) %> + <%- include('src/pages/widgets/links', {config: config}) -%> <div id="pages"> - <%- include('src/pages/options/widgets/general', {config: config}) %> - <%- include('src/pages/options/widgets/services', {config: config}) %> - <%- include('src/pages/options/widgets/about') %> + <%- include('src/pages/options/widgets/general', {config: config}) -%> + <%- include('src/pages/options/widgets/services', {config: config}) -%> + <%- include('src/pages/options/widgets/about') -%> </div> </body> <script type="module" src="./index.js"></script> diff --git a/src/pages/options/index.html b/src/pages/options/index.html index 8908c9bf..df6bec2a 100644 --- a/src/pages/options/index.html +++ b/src/pages/options/index.html @@ -8,50 +8,29 @@ <title>General</title> <script type="module" src="./init.js"></script> </head> - <body class="option" dir="auto"> <section class="links" id="links"> <div class="title"><img src="../../../assets/images/general-icon.svg"><a href="#general" data-localise="__MSG_general__">General</a></div> - - <div class="title"><img src="../../../assets/images/youtube-icon.png"><a href="#youtube" data-localise="__MSG_youtube__">youtube</a></div> - - <div class="title"><img src="../../../assets/images/youtubeMusic-icon.png"><a href="#youtubeMusic" data-localise="__MSG_youtubeMusic__">youtubeMusic</a></div> - - <div class="title"><img src="../../../assets/images/twitter-icon.png"><a href="#twitter" data-localise="__MSG_twitter__">twitter</a></div> - - <div class="title"><img src="../../../assets/images/instagram-icon.png"><a href="#instagram" data-localise="__MSG_instagram__">instagram</a></div> - - <div class="title"><img src="../../../assets/images/tiktok-icon.png"><a href="#tiktok" data-localise="__MSG_tiktok__">tiktok</a></div> - - <div class="title"><img src="../../../assets/images/reddit-icon.png"><a href="#reddit" data-localise="__MSG_reddit__">reddit</a></div> - - <div class="title"><img src="../../../assets/images/imgur-icon.png"><a href="#imgur" data-localise="__MSG_imgur__">imgur</a></div> - - <div class="title"><img src="../../../assets/images/wikipedia-icon.svg"><a href="#wikipedia" data-localise="__MSG_wikipedia__">wikipedia</a></div> - - <div class="title"><img src="../../../assets/images/medium-icon.svg"><a href="#medium" data-localise="__MSG_medium__">medium</a></div> - - <div class="title"><img src="../../../assets/images/quora-icon.png"><a href="#quora" data-localise="__MSG_quora__">quora</a></div> - - <div class="title"><img src="../../../assets/images/imdb-icon.svg"><a href="#imdb" data-localise="__MSG_imdb__">imdb</a></div> - - <div class="title"><img src="../../../assets/images/reuters-icon.svg"><a href="#reuters" data-localise="__MSG_reuters__">reuters</a></div> - - <div class="title"><img src="../../../assets/images/peertube-icon.svg"><a href="#peertube" data-localise="__MSG_peertube__">peertube</a></div> - - <div class="title"><img src="../../../assets/images/lbry-icon.png"><a href="#lbry" data-localise="__MSG_lbry__">lbry</a></div> - - <div class="title"><img src="../../../assets/images/search-icon.svg"><a href="#search" data-localise="__MSG_search__">search</a></div> - - <div class="title"><img src="../../../assets/images/translate-icon.svg"><a href="#translate" data-localise="__MSG_translate__">translate</a></div> - - <div class="title"><img src="../../../assets/images/maps-icon.svg"><a href="#maps" data-localise="__MSG_maps__">maps</a></div> - - <div class="title"><img src="../../../assets/images/sendTargets-icon.svg"><a href="#sendTargets" data-localise="__MSG_sendTargets__">sendTargets</a></div> - - <div class="title"><img src="../../../assets/images/about-icon.svg"><a href="#about" data-localise="__MSG_about__">About</a></div> + <div class="title"><img src="../../../assets/images/youtube-icon.png"><a href="#youtube" data-localise="__MSG_youtube__">youtube</a></div> + <div class="title"><img src="../../../assets/images/youtubeMusic-icon.png"><a href="#youtubeMusic" data-localise="__MSG_youtubeMusic__">youtubeMusic</a></div> + <div class="title"><img src="../../../assets/images/twitter-icon.png"><a href="#twitter" data-localise="__MSG_twitter__">twitter</a></div> + <div class="title"><img src="../../../assets/images/instagram-icon.png"><a href="#instagram" data-localise="__MSG_instagram__">instagram</a></div> + <div class="title"><img src="../../../assets/images/tiktok-icon.png"><a href="#tiktok" data-localise="__MSG_tiktok__">tiktok</a></div> + <div class="title"><img src="../../../assets/images/reddit-icon.png"><a href="#reddit" data-localise="__MSG_reddit__">reddit</a></div> + <div class="title"><img src="../../../assets/images/imgur-icon.png"><a href="#imgur" data-localise="__MSG_imgur__">imgur</a></div> + <div class="title"><img src="../../../assets/images/wikipedia-icon.svg"><a href="#wikipedia" data-localise="__MSG_wikipedia__">wikipedia</a></div> + <div class="title"><img src="../../../assets/images/medium-icon.svg"><a href="#medium" data-localise="__MSG_medium__">medium</a></div> + <div class="title"><img src="../../../assets/images/quora-icon.png"><a href="#quora" data-localise="__MSG_quora__">quora</a></div> + <div class="title"><img src="../../../assets/images/imdb-icon.svg"><a href="#imdb" data-localise="__MSG_imdb__">imdb</a></div> + <div class="title"><img src="../../../assets/images/reuters-icon.svg"><a href="#reuters" data-localise="__MSG_reuters__">reuters</a></div> + <div class="title"><img src="../../../assets/images/peertube-icon.svg"><a href="#peertube" data-localise="__MSG_peertube__">peertube</a></div> + <div class="title"><img src="../../../assets/images/lbry-icon.png"><a href="#lbry" data-localise="__MSG_lbry__">lbry</a></div> + <div class="title"><img src="../../../assets/images/search-icon.svg"><a href="#search" data-localise="__MSG_search__">search</a></div> + <div class="title"><img src="../../../assets/images/translate-icon.svg"><a href="#translate" data-localise="__MSG_translate__">translate</a></div> + <div class="title"><img src="../../../assets/images/maps-icon.svg"><a href="#maps" data-localise="__MSG_maps__">maps</a></div> + <div class="title"><img src="../../../assets/images/sendTargets-icon.svg"><a href="#sendTargets" data-localise="__MSG_sendTargets__">sendTargets</a></div> + <div class="title"><img src="../../../assets/images/about-icon.svg"><a href="#about" data-localise="__MSG_about__">About</a></div> </section> - <div id="pages"> <section class="option-block" id="general_page"> <div class="some-block option-block"> @@ -69,16 +48,12 @@ <div class="some-block option-block"> <h4 data-localise="__MSG_protocol__"></h4> <select id="protocol"> - <option value="clearnet">Clearnet</option> - <option value="tor">Tor</option> - <option value="i2p">I2P</option> - <option value="loki">Lokinet</option> - </select> +</select> </div> <div id="protocol-fallback"> <div class="some-block option-block"> @@ -145,126 +120,108 @@ <h4 data-localise="__MSG_customPopup__">Customize Popup</h4> </div> <div class="checklist-popup" id="popup-frontends-checklist"> - <div> <div><img src="../../../assets/images/youtube-icon.png"> <x data-localise="__MSG_youtube__">youtube</x> </div> <input id="youtube" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/youtubeMusic-icon.png"> <x data-localise="__MSG_youtubeMusic__">youtubeMusic</x> </div> <input id="youtubeMusic" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/twitter-icon.png"> <x data-localise="__MSG_twitter__">twitter</x> </div> <input id="twitter" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/instagram-icon.png"> <x data-localise="__MSG_instagram__">instagram</x> </div> <input id="instagram" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/tiktok-icon.png"> <x data-localise="__MSG_tiktok__">tiktok</x> </div> <input id="tiktok" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/reddit-icon.png"> <x data-localise="__MSG_reddit__">reddit</x> </div> <input id="reddit" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/imgur-icon.png"> <x data-localise="__MSG_imgur__">imgur</x> </div> <input id="imgur" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/wikipedia-icon.svg"> <x data-localise="__MSG_wikipedia__">wikipedia</x> </div> <input id="wikipedia" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/medium-icon.svg"> <x data-localise="__MSG_medium__">medium</x> </div> <input id="medium" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/quora-icon.png"> <x data-localise="__MSG_quora__">quora</x> </div> <input id="quora" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/imdb-icon.svg"> <x data-localise="__MSG_imdb__">imdb</x> </div> <input id="imdb" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/reuters-icon.svg"> <x data-localise="__MSG_reuters__">reuters</x> </div> <input id="reuters" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/peertube-icon.svg"> <x data-localise="__MSG_peertube__">peertube</x> </div> <input id="peertube" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/lbry-icon.png"> <x data-localise="__MSG_lbry__">lbry</x> </div> <input id="lbry" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/search-icon.svg"> <x data-localise="__MSG_search__">search</x> </div> <input id="search" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/translate-icon.svg"> <x data-localise="__MSG_translate__">translate</x> </div> <input id="translate" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/maps-icon.svg"> <x data-localise="__MSG_maps__">maps</x> </div> <input id="maps" type="checkbox"> </div> - <div> <div><img src="../../../assets/images/sendTargets-icon.svg"> <x data-localise="__MSG_sendTargets__">sendTargets</x> @@ -272,74 +229,52 @@ <input id="sendTargets" type="checkbox"> </div> - </div> +</div> <script type="module" src="./widgets/general.js"></script> </section> - - -<section class="option-block" id="youtube_page"> + <section class="option-block" id="youtube_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_youtube__">Youtube</h1> </div> <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="youtube-enable" type="checkbox"> + <input id="youtube-enabled" type="checkbox"> </div> <div class="some-block option-block"> - <h4 data-localise="__MSG_frontend__">Frontend</h4> - <select id="youtube-frontend"> - - <option value="invidious">invidious</option> - - <option value="piped">piped</option> - - <option value="pipedMaterial">pipedMaterial</option> - - <option value="cloudtube">cloudtube</option> - - - <option value="freetube">freetube</option> - - <option value="yatte">yatte</option> - - </select> + <h4 data-localise="__MSG_frontend__">Frontend</h4> + <select id="youtube-frontend"> + <option value="invidious">Invidious</option> + <option value="piped">Piped</option> + <option value="pipedMaterial">Piped-Material</option> + <option value="cloudtube">CloudTube</option> + <option value="freetube">FreeTube</option> + <option value="yattee">Yattee</option> + + </select> </div> - - - <div id="youtube-embedded_frontend"> + <div id="youtube-embedFrontend"> <div class="some-block option-block"> <h4 data-localise="__MSG_embed_frontend__">Embed Frontend</h4> <select id="youtube-embed_frontend"> - - <option value="invidious">invidious</option> - - <option value="piped">piped</option> - - <option value="pipedMaterial">pipedMaterial</option> - - <option value="cloudtube">cloudtube</option> - + <option value="invidious">invidious</option> + <option value="piped">piped</option> + </select> </div> </div> - - - <div class="some-block option-block"> + <div class="some-block option-block"> <h4 data-localise="__MSG_redirectType__">Redirect Type</h4> - <select id="youtube-redirect_type"> + <select id="youtube-redirectType"> <option value="both" data-localise="__MSG_both__">both</option> - <option value="onlyEmbedded" data-localise="__MSG_onlyEmbedded__">Only Embedded</option> - <option value="onlyNotEmbedded" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option> + <option value="sub_frame" data-localise="__MSG_onlyEmbedded__">Only Embedded</option> + <option value="main_frame" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option> </select> </div> - - <hr> - - <div id="invidious"> - - <div class="clearnet"> + <hr> + <div id="invidious"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -359,8 +294,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-invidious-label" for="latency-invidious"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -369,10 +303,8 @@ </label> <input class="button button-inline" id="latency-invidious" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -392,10 +324,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -415,10 +345,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -438,14 +366,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - - <div id="piped"> - - <div class="clearnet"> + <div id="piped"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -465,8 +390,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-piped-label" for="latency-piped"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -475,10 +399,8 @@ </label> <input class="button button-inline" id="latency-piped" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -498,10 +420,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -521,10 +441,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -544,14 +462,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - - <div id="pipedMaterial"> - - <div class="clearnet"> + <div id="pipedMaterial"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -571,8 +486,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-pipedMaterial-label" for="latency-pipedMaterial"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -581,10 +495,8 @@ </label> <input class="button button-inline" id="latency-pipedMaterial" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -604,10 +516,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -627,10 +537,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -650,14 +558,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - - <div id="cloudtube"> - - <div class="clearnet"> + <div id="cloudtube"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -677,8 +582,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-cloudtube-label" for="latency-cloudtube"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -687,10 +591,8 @@ </label> <input class="button button-inline" id="latency-cloudtube" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -710,10 +612,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -733,10 +633,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -756,13 +654,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="youtubeMusic_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_youtubeMusic__">YT Music</h1> @@ -770,28 +666,20 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="youtubeMusic-enable" type="checkbox"> + <input id="youtubeMusic-enabled" type="checkbox"> </div> <div class="some-block option-block"> - <h4 data-localise="__MSG_frontend__">Frontend</h4> - <select id="youtubeMusic-frontend"> - - <option value="beatbump">beatbump</option> - - <option value="hyperpipe">hyperpipe</option> - - - </select> + <h4 data-localise="__MSG_frontend__">Frontend</h4> + <select id="youtubeMusic-frontend"> + <option value="beatbump">Beatbump</option> + <option value="hyperpipe">HyperPipe</option> + + </select> </div> - - - - <hr> - - <div id="beatbump"> - - <div class="clearnet"> + <hr> + <div id="beatbump"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -811,8 +699,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-beatbump-label" for="latency-beatbump"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -821,10 +708,8 @@ </label> <input class="button button-inline" id="latency-beatbump" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -844,10 +729,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -867,10 +750,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -890,14 +771,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - - <div id="hyperpipe"> - - <div class="clearnet"> + <div id="hyperpipe"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -917,8 +795,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-hyperpipe-label" for="latency-hyperpipe"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -927,10 +804,8 @@ </label> <input class="button button-inline" id="latency-hyperpipe" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -950,10 +825,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -973,10 +846,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -996,13 +867,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="twitter_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_twitter__">Twitter</h1> @@ -1010,25 +879,19 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="twitter-enable" type="checkbox"> + <input id="twitter-enabled" type="checkbox"> </div> - - - - <div class="some-block option-block"> + <div class="some-block option-block"> <h4 data-localise="__MSG_redirectType__">Redirect Type</h4> - <select id="twitter-redirect_type"> + <select id="twitter-redirectType"> <option value="both" data-localise="__MSG_both__">both</option> - <option value="onlyEmbedded" data-localise="__MSG_onlyEmbedded__">Only Embedded</option> - <option value="onlyNotEmbedded" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option> + <option value="sub_frame" data-localise="__MSG_onlyEmbedded__">Only Embedded</option> + <option value="main_frame" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option> </select> </div> - - <hr> - - <div id="nitter"> - - <div class="clearnet"> + <hr> + <div id="nitter"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1048,8 +911,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-nitter-label" for="latency-nitter"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -1058,10 +920,8 @@ </label> <input class="button button-inline" id="latency-nitter" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1081,10 +941,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1104,10 +962,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1127,13 +983,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="instagram_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_instagram__">Instagram</h1> @@ -1141,121 +995,11 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="instagram-enable" type="checkbox"> + <input id="instagram-enabled" type="checkbox"> </div> - - - - <hr> - - <div id="bibliogram"> - - <div class="clearnet"> - <div class="some-block option-block"> - <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> - </div> - <div class="checklist"></div> - <hr> - <div class="some-block option-block"> - <h4 data-localise="__MSG_customInstances__">Custom Instances</h4> - </div> - <form class="custom-instance-form"> - <div class="some-block option-block"> - <input class="custom-instance" placeholder="http://bibliogram.org" type="url"> - <button class="add add-instance" type="submit"> - <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor"> - <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path> - </svg> - </button> - </div> - </form> - <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> - <label class="button button-inline" id="latency-bibliogram-label" for="latency-bibliogram"> - <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> - <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> - </svg> - <x data-localise="__MSG_testInstancesLatency__">Test Instances Latency</x> - </label> - <input class="button button-inline" id="latency-bibliogram" style="display:none;"> - </div> - - </div> - - <div class="tor"> - <div class="some-block option-block"> - <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> - </div> - <div class="checklist"></div> - <hr> - <div class="some-block option-block"> - <h4 data-localise="__MSG_customInstances__">Custom Instances</h4> - </div> - <form class="custom-instance-form"> - <div class="some-block option-block"> - <input class="custom-instance" placeholder="http://bibliogram.onion" type="url"> - <button class="add add-instance" type="submit"> - <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor"> - <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path> - </svg> - </button> - </div> - </form> - <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> - <div class="some-block option-block"> - <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> - </div> - <div class="checklist"></div> - <hr> - <div class="some-block option-block"> - <h4 data-localise="__MSG_customInstances__">Custom Instances</h4> - </div> - <form class="custom-instance-form"> - <div class="some-block option-block"> - <input class="custom-instance" placeholder="http://bibliogram.i2p" type="url"> - <button class="add add-instance" type="submit"> - <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor"> - <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path> - </svg> - </button> - </div> - </form> - <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> - <div class="some-block option-block"> - <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> - </div> - <div class="checklist"></div> <hr> - <div class="some-block option-block"> - <h4 data-localise="__MSG_customInstances__">Custom Instances</h4> - </div> - <form class="custom-instance-form"> - <div class="some-block option-block"> - <input class="custom-instance" placeholder="http://bibliogram.loki" type="url"> - <button class="add add-instance" type="submit"> - <svg xmlns="https://www.w3.org/2000/svg" height="20px" viewBox="0 0 24 24" width="20px" fill="currentColor"> - <path d="M19 13h-6v6h-2v-6H5v-2h6V5h2v6h6v2z"></path> - </svg> - </button> - </div> - </form> - <div class="checklist custom-checklist"></div> - </div> - - </div> - </section> - <section class="option-block" id="tiktok_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_tiktok__">TikTok</h1> @@ -1263,16 +1007,11 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="tiktok-enable" type="checkbox"> + <input id="tiktok-enabled" type="checkbox"> </div> - - - - <hr> - - <div id="proxiTok"> - - <div class="clearnet"> + <hr> + <div id="proxiTok"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1292,8 +1031,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-proxiTok-label" for="latency-proxiTok"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -1302,10 +1040,8 @@ </label> <input class="button button-inline" id="latency-proxiTok" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1325,10 +1061,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1348,10 +1082,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1371,13 +1103,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="reddit_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_reddit__">Reddit</h1> @@ -1385,28 +1115,20 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="reddit-enable" type="checkbox"> + <input id="reddit-enabled" type="checkbox"> </div> <div class="some-block option-block"> - <h4 data-localise="__MSG_frontend__">Frontend</h4> - <select id="reddit-frontend"> - - <option value="libreddit">libreddit</option> - - <option value="teddit">teddit</option> - - - </select> + <h4 data-localise="__MSG_frontend__">Frontend</h4> + <select id="reddit-frontend"> + <option value="libreddit">Libreddit</option> + <option value="teddit">Teddit</option> + + </select> </div> - - - - <hr> - - <div id="libreddit"> - - <div class="clearnet"> + <hr> + <div id="libreddit"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1426,8 +1148,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-libreddit-label" for="latency-libreddit"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -1436,10 +1157,8 @@ </label> <input class="button button-inline" id="latency-libreddit" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1459,10 +1178,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1482,10 +1199,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1505,14 +1220,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - - <div id="teddit"> - - <div class="clearnet"> + <div id="teddit"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1532,8 +1244,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-teddit-label" for="latency-teddit"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -1542,10 +1253,8 @@ </label> <input class="button button-inline" id="latency-teddit" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1565,10 +1274,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1588,10 +1295,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1611,13 +1316,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="imgur_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_imgur__">Imgur</h1> @@ -1625,16 +1328,11 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="imgur-enable" type="checkbox"> + <input id="imgur-enabled" type="checkbox"> </div> - - - - <hr> - - <div id="rimgo"> - - <div class="clearnet"> + <hr> + <div id="rimgo"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1654,8 +1352,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-rimgo-label" for="latency-rimgo"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -1664,10 +1361,8 @@ </label> <input class="button button-inline" id="latency-rimgo" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1687,10 +1382,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1710,10 +1403,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1733,13 +1424,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="wikipedia_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_wikipedia__">Wikipedia</h1> @@ -1747,16 +1436,11 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="wikipedia-enable" type="checkbox"> + <input id="wikipedia-enabled" type="checkbox"> </div> - - - - <hr> - - <div id="wikiless"> - - <div class="clearnet"> + <hr> + <div id="wikiless"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1776,8 +1460,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-wikiless-label" for="latency-wikiless"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -1786,10 +1469,8 @@ </label> <input class="button button-inline" id="latency-wikiless" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1809,10 +1490,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1832,10 +1511,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1855,13 +1532,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="medium_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_medium__">Medium</h1> @@ -1869,16 +1544,11 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="medium-enable" type="checkbox"> + <input id="medium-enabled" type="checkbox"> </div> - - - - <hr> - - <div id="scribe"> - - <div class="clearnet"> + <hr> + <div id="scribe"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1898,8 +1568,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-scribe-label" for="latency-scribe"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -1908,10 +1577,8 @@ </label> <input class="button button-inline" id="latency-scribe" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1931,10 +1598,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1954,10 +1619,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -1977,13 +1640,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="quora_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_quora__">Quora</h1> @@ -1991,16 +1652,11 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="quora-enable" type="checkbox"> + <input id="quora-enabled" type="checkbox"> </div> - - - - <hr> - - <div id="quetre"> - - <div class="clearnet"> + <hr> + <div id="quetre"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2020,8 +1676,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-quetre-label" for="latency-quetre"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -2030,10 +1685,8 @@ </label> <input class="button button-inline" id="latency-quetre" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2053,10 +1706,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2076,10 +1727,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2099,13 +1748,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="imdb_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_imdb__">IMDb</h1> @@ -2113,16 +1760,11 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="imdb-enable" type="checkbox"> + <input id="imdb-enabled" type="checkbox"> </div> - - - - <hr> - - <div id="libremdb"> - - <div class="clearnet"> + <hr> + <div id="libremdb"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2142,8 +1784,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-libremdb-label" for="latency-libremdb"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -2152,10 +1793,8 @@ </label> <input class="button button-inline" id="latency-libremdb" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2175,10 +1814,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2198,10 +1835,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2221,13 +1856,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="reuters_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_reuters__">Reuters</h1> @@ -2235,16 +1868,11 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="reuters-enable" type="checkbox"> + <input id="reuters-enabled" type="checkbox"> </div> - - - - <hr> - - <div id="neuters"> - - <div class="clearnet"> + <hr> + <div id="neuters"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2264,8 +1892,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-neuters-label" for="latency-neuters"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -2274,10 +1901,8 @@ </label> <input class="button button-inline" id="latency-neuters" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2297,10 +1922,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2320,10 +1943,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2343,13 +1964,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="peertube_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_peertube__">PeerTube</h1> @@ -2357,16 +1976,11 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="peertube-enable" type="checkbox"> + <input id="peertube-enabled" type="checkbox"> </div> - - - - <hr> - - <div id="simpleertube"> - - <div class="clearnet"> + <hr> + <div id="simpleertube"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2386,8 +2000,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-simpleertube-label" for="latency-simpleertube"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -2396,10 +2009,8 @@ </label> <input class="button button-inline" id="latency-simpleertube" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2419,10 +2030,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2442,10 +2051,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2465,13 +2072,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="lbry_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_lbry__">LBRY</h1> @@ -2479,37 +2084,37 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="lbry-enable" type="checkbox"> + <input id="lbry-enabled" type="checkbox"> </div> <div class="some-block option-block"> - <h4 data-localise="__MSG_frontend__">Frontend</h4> - <select id="lbry-frontend"> - - <option value="librarian">librarian</option> - - - <option value="lbryDesktop">lbryDesktop</option> - - </select> + <h4 data-localise="__MSG_frontend__">Frontend</h4> + <select id="lbry-frontend"> + <option value="librarian">Librarian</option> + <option value="lbryDesktop">LBRY Desktop</option> + + </select> </div> - - - - <div class="some-block option-block"> + <div id="lbry-embedFrontend"> + <div class="some-block option-block"> + <h4 data-localise="__MSG_embed_frontend__">Embed Frontend</h4> + <select id="lbry-embed_frontend"> + <option value="librarian">librarian</option> + + </select> + </div> + </div> + <div class="some-block option-block"> <h4 data-localise="__MSG_redirectType__">Redirect Type</h4> - <select id="lbry-redirect_type"> + <select id="lbry-redirectType"> <option value="both" data-localise="__MSG_both__">both</option> - <option value="onlyEmbedded" data-localise="__MSG_onlyEmbedded__">Only Embedded</option> - <option value="onlyNotEmbedded" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option> + <option value="sub_frame" data-localise="__MSG_onlyEmbedded__">Only Embedded</option> + <option value="main_frame" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option> </select> </div> - - <hr> - - <div id="librarian"> - - <div class="clearnet"> + <hr> + <div id="librarian"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2529,8 +2134,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-librarian-label" for="latency-librarian"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -2539,10 +2143,8 @@ </label> <input class="button button-inline" id="latency-librarian" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2562,10 +2164,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2585,10 +2185,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2608,13 +2206,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="search_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_search__">Search</h1> @@ -2622,32 +2218,22 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="search-enable" type="checkbox"> + <input id="search-enabled" type="checkbox"> </div> <div class="some-block option-block"> - <h4 data-localise="__MSG_frontend__">Frontend</h4> - <select id="search-frontend"> - - <option value="searx">searx</option> - - <option value="searxng">searxng</option> - - <option value="whoogle">whoogle</option> - - <option value="librex">librex</option> - - - </select> + <h4 data-localise="__MSG_frontend__">Frontend</h4> + <select id="search-frontend"> + <option value="searx">SearX</option> + <option value="searxng">SearXNG</option> + <option value="whoogle">Whoogle</option> + <option value="librex">LibreX</option> + + </select> </div> - - - - <hr> - - <div id="searx"> - - <div class="clearnet"> + <hr> + <div id="searx"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2667,8 +2253,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-searx-label" for="latency-searx"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -2677,10 +2262,8 @@ </label> <input class="button button-inline" id="latency-searx" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2700,10 +2283,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2723,10 +2304,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2746,14 +2325,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - - <div id="searxng"> - - <div class="clearnet"> + <div id="searxng"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2773,8 +2349,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-searxng-label" for="latency-searxng"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -2783,10 +2358,8 @@ </label> <input class="button button-inline" id="latency-searxng" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2806,10 +2379,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2829,10 +2400,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2852,14 +2421,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - - <div id="whoogle"> - - <div class="clearnet"> + <div id="whoogle"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2879,8 +2445,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-whoogle-label" for="latency-whoogle"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -2889,10 +2454,8 @@ </label> <input class="button button-inline" id="latency-whoogle" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2912,10 +2475,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2935,10 +2496,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2958,14 +2517,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - - <div id="librex"> - - <div class="clearnet"> + <div id="librex"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -2985,8 +2541,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-librex-label" for="latency-librex"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -2995,10 +2550,8 @@ </label> <input class="button button-inline" id="latency-librex" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3018,10 +2571,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3041,10 +2592,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3064,13 +2613,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="translate_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_translate__">Translate</h1> @@ -3078,28 +2625,20 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="translate-enable" type="checkbox"> + <input id="translate-enabled" type="checkbox"> </div> <div class="some-block option-block"> - <h4 data-localise="__MSG_frontend__">Frontend</h4> - <select id="translate-frontend"> - - <option value="simplyTranslate">simplyTranslate</option> - - <option value="lingva">lingva</option> - - - </select> + <h4 data-localise="__MSG_frontend__">Frontend</h4> + <select id="translate-frontend"> + <option value="simplyTranslate">SimplyTranslate</option> + <option value="lingva">Lingva</option> + + </select> </div> - - - - <hr> - - <div id="simplyTranslate"> - - <div class="clearnet"> + <hr> + <div id="simplyTranslate"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3119,8 +2658,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-simplyTranslate-label" for="latency-simplyTranslate"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -3129,10 +2667,8 @@ </label> <input class="button button-inline" id="latency-simplyTranslate" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3152,10 +2688,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3175,10 +2709,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3198,14 +2730,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - - <div id="lingva"> - - <div class="clearnet"> + <div id="lingva"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3225,8 +2754,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-lingva-label" for="latency-lingva"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -3235,10 +2763,8 @@ </label> <input class="button button-inline" id="latency-lingva" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3258,10 +2784,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3281,10 +2805,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3304,13 +2826,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="maps_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_maps__">Maps</h1> @@ -3318,28 +2838,20 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="maps-enable" type="checkbox"> + <input id="maps-enabled" type="checkbox"> </div> <div class="some-block option-block"> - <h4 data-localise="__MSG_frontend__">Frontend</h4> - <select id="maps-frontend"> - - <option value="facil">facil</option> - - - <option value="osm">osm</option> - - </select> + <h4 data-localise="__MSG_frontend__">Frontend</h4> + <select id="maps-frontend"> + <option value="facil">FacilMap</option> + <option value="osm">OpenStreetMap</option> + + </select> </div> - - - - <hr> - - <div id="facil"> - - <div class="clearnet"> + <hr> + <div id="facil"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3359,8 +2871,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-facil-label" for="latency-facil"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -3369,10 +2880,8 @@ </label> <input class="button button-inline" id="latency-facil" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3392,10 +2901,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3415,10 +2922,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3438,13 +2943,11 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> - <section class="option-block" id="sendTargets_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_sendTargets__">Send Files</h1> @@ -3452,16 +2955,11 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="sendTargets-enable" type="checkbox"> + <input id="sendTargets-enabled" type="checkbox"> </div> - - - - <hr> - - <div id="send"> - - <div class="clearnet"> + <hr> + <div id="send"> + <div class="clearnet"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3481,8 +2979,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - - <div class="buttons buttons-inline"> + <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-send-label" for="latency-send"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"></path> @@ -3491,10 +2988,8 @@ </label> <input class="button button-inline" id="latency-send" style="display:none;"> </div> - - </div> - - <div class="tor"> + </div> + <div class="tor"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3514,10 +3009,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="i2p"> + </div> + <div class="i2p"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3537,10 +3030,8 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> - - <div class="loki"> + </div> + <div class="loki"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> </div> @@ -3560,15 +3051,13 @@ </div> </form> <div class="checklist custom-checklist"></div> - - </div> + </div> </div> - + </section> <script type="module" src="./widgets/services.js"></script> - <section class="option-block" id="about_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_about__">About</h1> @@ -3593,7 +3082,6 @@ </div> </div> </section> - </div> </body> <script type="module" src="./index.js"></script> diff --git a/src/pages/options/widgets/general.ejs b/src/pages/options/widgets/general.ejs index 05ef0959..d68a2280 100644 --- a/src/pages/options/widgets/general.ejs +++ b/src/pages/options/widgets/general.ejs @@ -14,10 +14,10 @@ <div class="some-block option-block"> <h4 data-localise="__MSG_protocol__"></h4> <select id="protocol"> - <% for (const network in config.networks) { %> - <option value="<%= network %>"><%= config.networks[network].name %></option> + <% for (const network in config.networks) { -%> +<option value="<%= network %>"><%= config.networks[network].name %></option> <% }; %> - </select> +</select> </div> <div id="protocol-fallback"> <div class="some-block option-block"> @@ -84,14 +84,14 @@ <h4 data-localise="__MSG_customPopup__">Customize Popup</h4> </div> <div class="checklist-popup" id="popup-frontends-checklist"> - <% for (const service in config.services) { %> - <div> + <% for (const service in config.services) { -%> +<div> <div><img src="../../../assets/images/<%= service %>-icon.<%= config.services[service].imageType %>"> <x data-localise="__MSG_<%= service %>__"><%= service %></x> </div> <input id="<%= service %>" type="checkbox"> </div> <% }; %> - </div> +</div> <script type="module" src="./widgets/general.js"></script> </section> diff --git a/src/pages/options/widgets/services.ejs b/src/pages/options/widgets/services.ejs index aed5872b..bc75f288 100644 --- a/src/pages/options/widgets/services.ejs +++ b/src/pages/options/widgets/services.ejs @@ -1,4 +1,4 @@ -<% for (const service in config.services) { %> +<% for (const service in config.services) { -%> <section class="option-block" id="<%= service %>_page"> <div class="some-block option-block"> <h1 data-localise="__MSG_<%= service %>__"><%= config.services[service].name %></h1> @@ -6,47 +6,47 @@ <hr> <div class="some-block option-block"> <h4 data-localise="__MSG_enable__">Enable</h4> - <input id="<%= service %>-enable" type="checkbox"> + <input id="<%= service %>-enabled" type="checkbox"> </div> - <% if ((Object.keys(config.services[service].frontends).length > 1) || config.services[service].singleInstanceFrontends) { %> + <% if (Object.keys(config.services[service].frontends).length > 1) { %> <div class="some-block option-block"> - <h4 data-localise="__MSG_frontend__">Frontend</h4> - <select id="<%= service %>-frontend"> - <% for (const frontend in config.services[service].frontends) { %> - <option value="<%= frontend %>"><%= frontend %></option> - <% }; %> - <% for (const frontend in config.services[service].singleInstanceFrontends){ %> - <option value="<%= config.services[service].singleInstanceFrontends[frontend] %>"><%= config.services[service].singleInstanceFrontends[frontend] %></option> - <% }; %> - </select> + <h4 data-localise="__MSG_frontend__">Frontend</h4> + <select id="<%= service %>-frontend"> + <% for (const frontend in config.services[service].frontends) { -%> + <option value="<%= frontend %>"><%= config.services[service].frontends[frontend].name %></option> + <% } %> + </select> </div> - <% } %> - <% if ((config.services[service].singleInstanceFrontends) && (Object.keys(config.services[service].frontends).length > 1)) { %> - <div id="<%= service %>-embedded_frontend"> + <% if (config.services[service].embeddable) { _%> + <div id="<%= service %>-embedFrontend"> <div class="some-block option-block"> <h4 data-localise="__MSG_embed_frontend__">Embed Frontend</h4> <select id="<%= service %>-embed_frontend"> - <% for (const frontend in config.services[service].frontends) { %> + <% for (const frontend in config.services[service].frontends) { -%> + <% if (config.services[service].frontends[frontend].embeddable) { _%> <option value="<%= frontend %>"><%= frontend %></option> - <% }; %> + <% } _%> + <% } %> </select> </div> </div> - <% } %> - <% if (config.services[service].embeddable) { %> + <% } _%> + <% } _%> + <% if (config.services[service].embeddable) { _%> <div class="some-block option-block"> <h4 data-localise="__MSG_redirectType__">Redirect Type</h4> - <select id="<%= service %>-redirect_type"> + <select id="<%= service %>-redirectType"> <option value="both" data-localise="__MSG_both__">both</option> - <option value="onlyEmbedded" data-localise="__MSG_onlyEmbedded__">Only Embedded</option> - <option value="onlyNotEmbedded" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option> + <option value="sub_frame" data-localise="__MSG_onlyEmbedded__">Only Embedded</option> + <option value="main_frame" data-localise="__MSG_onlyNotEmbedded__">Only Not Embedded</option> </select> </div> - <% } %> + <% } _%> <hr> - <% for (const frontend in config.services[service].frontends) { %> + <% for (const frontend in config.services[service].frontends) { -%> + <% if (config.services[service].frontends[frontend].instanceList) { _%> <div id="<%= frontend %>"> - <% for (const network in config.networks) { %> + <% for (const network in config.networks) { -%> <div class="<%= network %>"> <div class="some-block option-block"> <h4 data-localise="__MSG_defaultInstances__">Default Instances</h4> @@ -67,7 +67,7 @@ </div> </form> <div class="checklist custom-checklist"></div> - <% if (network == "clearnet") { %> + <% if (network == "clearnet") { _%> <div class="buttons buttons-inline"> <label class="button button-inline" id="latency-<%= frontend %>-label" for="latency-<%= frontend %>"> <svg xmlns="http://www.w3.org/2000/svg" height="24px" viewBox="0 0 24 24" width="24px" fill="currentColor"> @@ -77,11 +77,12 @@ </label> <input class="button button-inline" id="latency-<%= frontend %>" style="display:none;"> </div> - <% } %> + <% } _%> </div> - <% }; %> + <% } %> </div> - <% }; %> + <% } _%> + <% } %> </section> -<% }; %> +<% } %> <script type="module" src="./widgets/services.js"></script> diff --git a/src/pages/options/widgets/services.js b/src/pages/options/widgets/services.js index c7955b40..4a53a749 100644 --- a/src/pages/options/widgets/services.js +++ b/src/pages/options/widgets/services.js @@ -1,13 +1,10 @@ import utils from "../../../assets/javascripts/utils.js" -// const frontends = new Array("librarian") -// const protocols = new Array("clearnet", "tor", "i2p", "loki") - let config, network, divs = {} -async function getConfig() { +function getConfig() { return new Promise(resolve => { fetch("/config/config.json") .then(response => response.text()) @@ -19,7 +16,7 @@ async function getConfig() { }) } -getConfig() +await getConfig() browser.storage.local.get("network", r => { network = r.network @@ -27,45 +24,50 @@ browser.storage.local.get("network", r => { function changeFrontendsSettings(service) { for (const frontend in config.services[service].frontends) { - const frontendDiv = document.getElementById(frontend) - if (frontend == divs[service].frontend.value) { - frontendDiv.style.display = "block" - } else { - frontendDiv.style.display = "none" + if (config.services[service].frontends[frontend].instanceList && config.services[service].frontends.length > 1) { + const frontendDiv = document.getElementById(frontend) + if (divs[service].frontend == null) { + console.log(frontend) + } + if (frontend == divs[service].frontend.value) { + frontendDiv.style.display = "block" + } else { + frontendDiv.style.display = "none" + } } } } function changeNetworkSettings(selectedNetwork) { for (const frontend in config.frontends) { - const frontendDiv = document.getElementById(frontend) - for (const network in config.networks) { - const networkDiv = frontendDiv.getElementsByClassName(network)[0] - if (network == selectedNetwork) { - networkDiv.style.display = "block" - } else { - networkDiv.style.display = "none" + if (config.services[service].frontends[frontend].instanceList) { + const frontendDiv = document.getElementById(frontend) + for (const network in config.networks) { + const networkDiv = frontendDiv.getElementsByClassName(network)[0] + if (network == selectedNetwork) { + networkDiv.style.display = "block" + } else { + networkDiv.style.display = "none" + } } } } } -for (service in config.services) { +for (const service in config.services) { + divs[service] = {} divs[service][service] = document.getElementById(`${service}_page`) for (const option in config.services[service].options) { divs[service][option] = document.getElementById(`${service}-${option}`) browser.storage.local.get([`${service + utils.camelCase(option)}`], r => { - if (typeof config.services[service].options[option] == "boollean") divs[service][option].checked = !r[service + utils.camelCase(option)] + if (typeof config.services[service].options[option] == "boollean") divs[service][option].checked = r[service + utils.camelCase(option)] else divs[service][option].value = !r[service + utils.camelCase(option)] }) divs[service][option].addEventListener("change", () => { - if (typeof config.services[service].options[option] == "boollean") { - browser.storage.local.set({ [service + utils.camelCase(option)]: !divs[service][option].checked }) - } else { - browser.storage.local.set({ [service + utils.camelCase(option)]: divs[service][option].value }) - } + if (typeof config.services[service].options[option] == "boollean") browser.storage.local.set({ [service + utils.camelCase(option)]: divs[service][option].checked }) + else browser.storage.local.set({ [service + utils.camelCase(option)]: divs[service][option].value }) changeFrontendsSettings() }) } @@ -74,9 +76,11 @@ for (service in config.services) { changeNetworkSettings(network) for (const frontend in config.services[service].frontends) { - for (const network in config.networks) { - utils.processDefaultCustomInstances(service, frontend, network, document) + if (config.services[service].frontends[frontend].instanceList) { + for (const network in config.networks) { + utils.processDefaultCustomInstances(service, frontend, network, document) + } + utils.latency(service, frontend, document, location) } - utils.latency(service, frontend, document, location) } } diff --git a/src/pages/widgets/links.ejs b/src/pages/widgets/links.ejs index fe0cd37c..c28d3668 100644 --- a/src/pages/widgets/links.ejs +++ b/src/pages/widgets/links.ejs @@ -1,7 +1,7 @@ <section class="links" id="links"> <div class="title"><img src="../../../assets/images/general-icon.svg"><a href="#general" data-localise="__MSG_general__">General</a></div> - <% for (const service in config.services) { %> + <% for (const service in config.services) { -%> <div class="title"><img src="../../../assets/images/<%= service %>-icon.<%= config.services[service].imageType %>"><a href="#<%= service %>" data-localise="__MSG_<%= service %>__"><%= service %></a></div> - <% }; %> + <% }; -%> <div class="title"><img src="../../../assets/images/about-icon.svg"><a href="#about" data-localise="__MSG_about__">About</a></div> </section> |