about summary refs log tree commit diff stats
diff options
context:
space:
mode:
-rw-r--r--src/assets/images/fandom-icon.svg1
-rw-r--r--src/assets/javascripts/services.js56
-rw-r--r--src/config/config.json14
-rw-r--r--src/instances/blacklist.json23
-rw-r--r--src/instances/data.json115
-rw-r--r--src/instances/get_instances.py5
-rw-r--r--src/pages/background/background.js3
-rw-r--r--src/pages/options/index.html120
-rw-r--r--src/pages/popup/popup.html10
9 files changed, 238 insertions, 109 deletions
diff --git a/src/assets/images/fandom-icon.svg b/src/assets/images/fandom-icon.svg
new file mode 100644
index 00000000..0cd873bf
--- /dev/null
+++ b/src/assets/images/fandom-icon.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" id="wds-brand-fandom-logomark" viewBox="0 0 174 242"><path fill="#FA005A" d="M166.935 118.154L50.108 1.273C49.504.67 48.735.259 47.898.093c-.837-.166-1.705-.08-2.493.247-.788.327-1.461.88-1.935 1.59-.474.71-.727 1.546-.727 2.4v98.276L7.365 67.22c-.604-.604-1.373-1.014-2.21-1.18-.837-.166-1.704-.08-2.492.247-.789.327-1.462.88-1.936 1.59-.474.71-.727 1.545-.727 2.4v101.487c-.003 3.172.62 6.312 1.833 9.242 1.214 2.929 2.993 5.59 5.237 7.83l46.037 46.099c4.528 4.53 10.666 7.078 17.068 7.085h33.68c6.4-.003 12.537-2.547 17.063-7.075l46.027-46.099c2.239-2.242 4.014-4.904 5.225-7.833 1.21-2.93 1.832-6.069 1.83-9.239v-36.533c.002-3.173-.621-6.315-1.834-9.247-1.212-2.932-2.989-5.596-5.231-7.84z"/><path fill="#FFC500" d="M131.297 160.901c.001 1.915-.757 3.754-2.108 5.111l-37.11 37.3c-.672.677-1.472 1.215-2.354 1.582-.88.366-1.826.555-2.78.555-.954 0-1.9-.189-2.78-.555-.882-.367-1.682-.905-2.355-1.582l-36.99-37.3c-1.352-1.351-2.114-3.184-2.117-5.096v-14.191c0-.951.19-1.892.554-2.77.366-.878.9-1.675 1.574-2.346l13.317-13.328c.672-.675 1.47-1.209 2.35-1.574.879-.365 1.82-.553 2.772-.553.952 0 1.894.188 2.773.553.879.365 1.677.899 2.35 1.574l18.624 18.645 18.596-18.65c.672-.675 1.47-1.209 2.349-1.574.879-.365 1.821-.553 2.773-.553.951 0 1.893.188 2.772.553.879.365 1.677.899 2.349 1.574l13.318 13.328c.673.671 1.207 1.469 1.571 2.347.364.877.552 1.819.552 2.769v14.181z"/></svg>
\ No newline at end of file
diff --git a/src/assets/javascripts/services.js b/src/assets/javascripts/services.js
index 572a6a9c..d7cb520b 100644
--- a/src/assets/javascripts/services.js
+++ b/src/assets/javascripts/services.js
@@ -386,6 +386,11 @@ function redirect(url, type, initiator) {
 				return `${randomInstance}/${params.sl}/${params.tl}/${params.text}`

 			}

 			return randomInstance

+		case "breezeWiki":

+			let wiki = url.hostname.match(/^[a-zA-Z0-9]+(?=\.fandom\.com)/)

+			if (wiki == "www" || !wiki) wiki = ""

+			else wiki = "/" + wiki

+			return `${randomInstance}${wiki}${url.pathname}${url.search}`.replace(/Special:Search\?query/, "search?q")

 		default:

 			return `${randomInstance}${url.pathname}${url.search}`

 	}

@@ -685,6 +690,56 @@ function upgradeOptions() {
 	})

 }

 

+function processUpdate() {

+	return new Promise(resolve => {

+		fetch("/instances/data.json")

+			.then(response => response.text())

+			.then(data => {

+				fetch("/config/config.json")

+					.then(response => response.text())

+					.then(configData => {

+						browser.storage.local.get(["options", "blacklists", "targets"], r => {

+							let redirects = JSON.parse(data)

+							let options = r.options

+							let targets = r.targets

+							let config = JSON.parse(configData)

+							for (const service in config.services) {

+								if (!options[service]) {

+									options[service] = {}

+									if (config.services[service].targets == "datajson") {

+										targets[service] = redirects[service]

+									}

+									for (const defaultOption in config.services[service].options) {

+										options[service][defaultOption] = config.services[service].options[defaultOption]

+									}

+								}

+								for (const frontend in config.services[service].frontends) {

+									if (!options[service][frontend]) {

+										if (config.services[service].frontends[frontend].instanceList) {

+											options[frontend] = {}

+											for (const network in config.networks) {

+												options[frontend][network] = {}

+												options[frontend][network].enabled = JSON.parse(data)[frontend][network]

+												options[frontend][network].custom = []

+											}

+											for (const blacklist in r.blacklists) {

+												for (const instance of r.blacklists[blacklist]) {

+													let i = options[frontend].clearnet.enabled.indexOf(instance)

+													if (i > -1) options[frontend].clearnet.enabled.splice(i, 1)

+												}

+											}

+										}

+									}

+								}

+							}

+							browser.storage.local.set({ redirects, options, targets })

+							resolve()

+						})

+					})

+			})

+	})

+}

+

 export default {

 	redirect,

 	computeService,

@@ -694,4 +749,5 @@ export default {
 	setRedirects,

 	initDefaults,

 	upgradeOptions,

+	processUpdate,

 }

diff --git a/src/config/config.json b/src/config/config.json
index fde17a02..61195830 100644
--- a/src/config/config.json
+++ b/src/config/config.json
@@ -362,6 +362,20 @@
 			"embeddable": false,

 			"url": "https://reuters.com"

 		},

+		"fandom": {

+			"frontends": {

+				"breezeWiki": {

+					"name": "BreezeWiki",

+					"instanceList": true

+				}

+			},

+			"targets": ["^https?:\\/{2}(?:[a-zA-Z0-9]+\\.)?fandom\\.com(?=(?:\\/wiki)|(?:\\/?$))"],

+			"name": "Fandom",

+			"options": { "enabled": true },

+			"imageType": "svg",

+			"embeddable": false,

+			"url": "https://fandom.com"

+		},

 		"peertube": {

 			"frontends": {

 				"simpleertube": {

diff --git a/src/instances/blacklist.json b/src/instances/blacklist.json
index 90febd0a..d75c36d8 100644
--- a/src/instances/blacklist.json
+++ b/src/instances/blacklist.json
@@ -28,18 +28,6 @@
     "https://n.sneed.network",
     "https://nitter.twei.space",
     "https://nitter.d420.de",
-    "https://libreddit.domain.glass",
-    "https://r.nf",
-    "https://libreddit.hu",
-    "https://lr.stilic.ml",
-    "https://reddi.tk",
-    "https://r.walkx.org",
-    "https://libreddit.yonalee.eu",
-    "https://libreddit.winscloud.net",
-    "https://r.ahwx.org",
-    "https://reddit.dr460nf1r3.org",
-    "https://libreddit.encrypted-data.xyz",
-    "https://libreddit.eu.org",
     "https://teddit.domain.glass",
     "https://teddit.httpjames.space",
     "https://teddit.encrypted-data.xyz",
@@ -73,18 +61,14 @@
     "https://nhanh.cloud",
     "https://nitter.winscloud.net",
     "https://ntr.odyssey346.dev",
-    "https://libreddit.yonalee.eu",
-    "https://libreddit.winscloud.net",
-    "https://libreddit.notyourcomputer.net",
     "https://teddit.ggc-project.de",
     "https://teddit.tokhmi.xyz",
-    "https://wiki.privacytools.io",
     "https://quetre.odyssey346.dev",
+    "https://simplytranslate.org",
     "https://st.odyssey346.dev",
     "https://jsearch.pw",
     "https://searx.gnu.style",
     "https://searx.semipvt.com",
-    "https://searx.tyil.nl",
     "https://etsi.me",
     "https://search.zzls.xyz",
     "https://searx.ericaftereric.top",
@@ -93,7 +77,10 @@
     "https://whoogle.esmailelbob.xyz",
     "https://search.wef.lol",
     "https://i.bcow.xyz",
+    "https://rimgo.totaldarkness.net",
+    "https://imgur.artemislena.eu",
     "https://lbry.bcow.xyz",
-    "https://beatbump.ml"
+    "https://beatbump.ml",
+    "https://bw.odyssey346.dev"
   ]
 }
\ No newline at end of file
diff --git a/src/instances/data.json b/src/instances/data.json
index fac7962d..eaefc4ed 100644
--- a/src/instances/data.json
+++ b/src/instances/data.json
@@ -13,19 +13,20 @@
       "https://invidious.sethforprivacy.com",
       "https://invidious.flokinet.to",
       "https://inv.bp.projectsegfau.lt",
-      "https://inv.vern.cc",
       "https://invidious.nerdvpn.de",
       "https://invidious.projectsegfau.lt",
       "https://invidious.rhyshl.live",
       "https://inv.privacy.com.de",
       "https://invidious.slipfox.xyz",
-      "https://invidious.esmailelbob.xyz",
       "https://youtube.076.ne.jp",
+      "https://invidious.esmailelbob.xyz",
+      "https://inv.vern.cc",
       "https://invidious.namazso.eu"
     ],
     "tor": [
-      "http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion",
       "http://c7hqkpkpemu6e7emz5b4vyz7idjgdvgaaa3dyimmeojqbgpea3xqjoid.onion",
+      "http://w6ijuptxiku4xpnnaetxvnkc5vqcdu7mgns2u77qefoixi63vbvnpnqd.onion",
+      "http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion",
       "http://grwp24hodrefzvjjuccrkw3mjq4tzhaaq32amf33dzpmuxe7ilepcmad.onion",
       "http://osbivz6guyeahrwp2lnwyjk2xos342h4ocsxyqrlaopqjuhwn2djiiyd.onion",
       "http://u2cvlit75owumwpy4dj2hsmvkq7nvrclkpht7xgyye2pyoxhpmclkrad.onion",
@@ -33,8 +34,7 @@
       "http://invidious.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
       "http://inv.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion",
       "http://am74vkcrjp2d5v36lcdqgsj2m6x36tbrkhsruoegwfcizzabnfgf5zyd.onion",
-      "http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion",
-      "http://kbjggqkzv65ivcqj6bumvp337z6264huv5kpkwuv6gu5yjiskvan7fad.onion"
+      "http://ng27owmagn5amdm7l5s3rsqxwscl5ynppnis5dqcasogkyxcfqn7psid.onion"
     ],
     "i2p": [],
     "loki": []
@@ -51,9 +51,7 @@
       "https://piped.garudalinux.org",
       "https://y.rivo.lol",
       "https://yt.jae.fi",
-      "https://piped.mint.lgbt",
       "https://il.ax",
-      "https://piped.esmailelbob.xyz",
       "https://piped.projectsegfau.lt",
       "https://piped.privacydev.net",
       "https://piped.smnz.de",
@@ -208,7 +206,8 @@
       "https://nitter.caioalonso.com",
       "https://nitter.at",
       "https://nitter.drivet.xyz",
-      "https://nitter.pw"
+      "https://nitter.pw",
+      "https://nitter.nicfab.eu"
     ],
     "tor": [
       "http://nitter7bryz3jv7e3uekphigvmoyoem4al3fynerxkj22dmoxoq553qd.onion",
@@ -261,87 +260,8 @@
     "loki": []
   },
   "libreddit": {
-    "clearnet": [
-      "https://libredd.it",
-      "https://libreddit.spike.codes",
-      "https://libreddit.dothq.co",
-      "https://libreddit.kavin.rocks",
-      "https://reddit.invak.id",
-      "https://reddit.phii.me",
-      "https://lr.riverside.rocks",
-      "https://libreddit.strongthany.cc",
-      "https://libreddit.database.red",
-      "https://libreddit.privacy.com.de",
-      "https://libreddit.domain.glass",
-      "https://libreddit.sugoma.tk",
-      "https://libreddit.jamiethalacker.dev",
-      "https://reddit.artemislena.eu",
-      "https://r.nf",
-      "https://libreddit.some-things.org",
-      "https://reddit.stuehieyr.com",
-      "https://lr.mint.lgbt",
-      "https://libreddit.igna.rocks",
-      "https://libreddit.autarkic.org",
-      "https://libreddit.flux.industries",
-      "https://libreddit.drivet.xyz",
-      "https://lr.oversold.host",
-      "https://libreddit.de",
-      "https://libreddit.pussthecat.org",
-      "https://libreddit.mutahar.rocks",
-      "https://libreddit.northboot.xyz",
-      "https://leddit.xyz",
-      "https://de.leddit.xyz",
-      "https://lr.cowfee.moe",
-      "https://libreddit.hu",
-      "https://libreddit.totaldarkness.net",
-      "https://libreddit.esmailelbob.xyz",
-      "https://lr.vern.cc",
-      "https://libreddit.nl",
-      "https://lr.stilic.ml",
-      "https://reddi.tk",
-      "https://libreddit.bus-hit.me",
-      "https://libreddit.datatunnel.xyz",
-      "https://libreddit.crewz.me",
-      "https://r.walkx.org",
-      "https://libreddit.kylrth.com",
-      "https://libreddit.yonalee.eu",
-      "https://libreddit.winscloud.net",
-      "https://libreddit.tiekoetter.com",
-      "https://reddit.rtrace.io",
-      "https://libreddit.lunar.icu",
-      "https://libreddit.privacydev.net",
-      "https://libreddit.notyourcomputer.net",
-      "https://r.ahwx.org",
-      "https://bob.fr.to",
-      "https://reddit.beparanoid.de",
-      "https://libreddit.dcs0.hu",
-      "https://reddit.dr460nf1r3.org",
-      "https://rd.jae.su",
-      "https://libreddit.mha.fi",
-      "https://libreddit.foss.wtf",
-      "https://libreddit.encrypted-data.xyz",
-      "https://libreddit.eu.org",
-      "https://l.opnxng.com"
-    ],
-    "tor": [
-      "http://spjmllawtheisznfs7uryhxumin26ssv2draj7oope3ok3wuhy43eoyd.onion",
-      "http://fwhhsbrbltmrct5hshrnqlqygqvcgmnek3cnka55zj4y7nuus5muwyyd.onion",
-      "http://kphht2jcflojtqte4b4kyx7p2ahagv4debjj32nre67dxz7y57seqwyd.onion",
-      "http://inytumdgnri7xsqtvpntjevaelxtgbjqkuqhtf6txxhwbll2fwqtakqd.onion",
-      "http://liredejj74h5xjqr2dylnl5howb2bpikfowqoveub55ru27x43357iid.onion",
-      "http://kzhfp3nvb4qp575vy23ccbrgfocezjtl5dx66uthgrhu7nscu6rcwjyd.onion",
-      "http://ecue64ybzvn6vjzl37kcsnwt4ycmbsyf74nbttyg7rkc3t3qwnj7mcyd.onion",
-      "http://ledditqo2mxfvlgobxnlhrkq4dh34jss6evfkdkb2thlvy6dn4f4gpyd.onion",
-      "http://libredoxhxwnmsb6dvzzd35hmgzmawsq5i764es7witwhddvpc2razid.onion",
-      "http://libreddit.2syis2nnyytz6jnusnjurva4swlaizlnleiks5mjp46phuwjbdjqwgqd.onion",
-      "http://ol5begilptoou34emq2sshf3may3hlblvipdjtybbovpb7c7zodxmtqd.onion",
-      "http://lbrdtjaj7567ptdd4rv74lv27qhxfkraabnyphgcvptl64ijx2tijwid.onion",
-      "http://libreddit.lqs5fjmajyp7rvp4qvyubwofzi6d4imua7vs237rkc4m5qogitqwrgyd.onion",
-      "http://reddit.prnoid54e44a4bduq5due64jkk7wcnkxcp5kv3juncm7veptjcqudgyd.onion",
-      "http://inz6tbezfwzexva6dize4cqraj2tjdhygxabmcgysccesvw2pybzhbyd.onion",
-      "http://libreddit.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion",
-      "http://lr.vernccvbvyi5qhfzyqengccj7lkove6bjot2xhh5kajhwvidqafczrad.onion"
-    ],
+    "clearnet": [],
+    "tor": [],
     "i2p": [],
     "loki": []
   },
@@ -596,8 +516,10 @@
       "http://3afisqjw2rxm6z7mmstyt5rx75qfqrgxnkzftknbp2vhipr2nrmrjdyd.onion",
       "http://yra4tke2pwcnatxjkufpw6kvebu3h3ti2jca2lcdpgx3mpwol326lzid.onion",
       "http://z5vawdol25vrmorm4yydmohsd4u6rdoj2sylvoi3e3nqvxkvpqul7bqd.onion",
+      "http://searxdr3pqz4nydgnqocsia2xbywptxbkympa2emn7zlgggrir4bkfad.onion",
       "http://zbuc3bbzbfdqqo2x46repx2ddajbha6fpsjeeptjhhhhzji3zopxdqyd.onion",
       "http://f4qfqajszpx5b7itzxt6mb7kj4ktpgbdq7lq6xaiqyqx6a7de3epptad.onion",
+      "http://searx.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
       "http://searx.micohauwkjbyw5meacrb4ipicwvwg4xtzl7y7viv53kig2mdcsvwkyyd.onion"
     ],
     "i2p": [
@@ -694,8 +616,6 @@
       "http://searxngg6zleq6ceboe5ltkyo4hyrb3aaycrgzmrljv3jjlb5vcytead.onion",
       "http://gbat2pbpg7ys3fi3pbp64667tt5x66mg45xok35bxdw7v55brm7a27yd.onion",
       "http://b2c7fvbhnfvwnl6oh2tydhzfx4i37kmmrycq42heqbbe7wovq3uzenid.onion",
-      "http://searxdr3pqz4nydgnqocsia2xbywptxbkympa2emn7zlgggrir4bkfad.onion",
-      "http://searx.esmail5pdn24shtvieloeedh7ehz3nrwcdivnfhfcedl7gf4kwddhkqd.onion",
       "http://searxfilowxokbogygrigir4wqxfxqzuxofxgdon7dg6rsii4yxzytyd.onion",
       "http://searx.privpw3tndpkw6pnp3g727zfgfdzbu3k6a7chv226s3xymv2p4eiuqyd.onion",
       "http://rq2w52kyrif3xpfihkgjnhqm3a5aqhoikpv72z3drpjglfzc2wr5z4yd.onion",
@@ -829,8 +749,21 @@
     "i2p": [],
     "loki": []
   },
+  "breezeWiki": {
+    "clearnet": [
+      "https://breezewiki.com",
+      "https://breezewiki.pussthecat.org",
+      "https://bw.odyssey346.dev",
+      "https://bw.vern.cc",
+      "https://breezewiki.esmailelbob.xyz"
+    ],
+    "tor": [],
+    "i2p": [],
+    "loki": []
+  },
   "peertube": [
     "https://search.joinpeertube.org",
+    "https://freedomadultgames.video",
     "https://tbh.co-shaoghal.net",
     "https://tube.kansanvalta.org",
     "https://duanrra.cf",
diff --git a/src/instances/get_instances.py b/src/instances/get_instances.py
index 9fc64adc..fc730cf6 100644
--- a/src/instances/get_instances.py
+++ b/src/instances/get_instances.py
@@ -437,6 +437,10 @@ def libreTranslate():
     fetchRegexList('libreTranslate', 'LibreTranslate', 'https://raw.githubusercontent.com/LibreTranslate/LibreTranslate/main/README.md', r"\[(?:[^\s\/]+\.)+[a-zA-Z0-9]+\]\((https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+)\/?\)\|")
 
 
+def breezeWiki():
+    fetchRegexList('breezeWiki', 'BreezeWiki', 'https://gitdab.com/cadence/breezewiki-docs/raw/branch/main/docs.scrbl', r"\(\"[^\n\s\r\t\f\v\"]+\" \"https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+(?:\/[^\s\/]+)*\" \"(https?:\/{2}(?:[^\s\/]+\.)+[a-zA-Z0-9]+(?:\/[^\s\/]+)*)\"\)")
+
+
 def peertube():
     r = requests.get(
         'https://instances.joinpeertube.org/api/v1/instances?start=0&count=1045&sort=-createdAt')
@@ -485,6 +489,7 @@ beatbump()
 hyperpipe()
 facil()
 simpleertube()
+breezeWiki()
 mightyList = filterLastSlash(mightyList)
 mightyList = idnaEncode(mightyList)
 
diff --git a/src/pages/background/background.js b/src/pages/background/background.js
index e8d0fd76..3f0e0fdd 100644
--- a/src/pages/background/background.js
+++ b/src/pages/background/background.js
@@ -30,11 +30,14 @@ browser.runtime.onInstalled.addListener(details => {
 				.then(async data => {
 					browser.storage.local.set({ blacklists: JSON.parse(data) }, async () => {
 						switch (details.previousVersion) {
+							case "2.2.0":
 							case "2.2.1":
 								await generalHelper.initDefaults()
 								await servicesHelper.initDefaults()
 								await servicesHelper.upgradeOptions()
 								break
+							default:
+								await servicesHelper.processUpdate()
 						}
 					})
 				})
diff --git a/src/pages/options/index.html b/src/pages/options/index.html
index 323984ed..faeb5124 100644
--- a/src/pages/options/index.html
+++ b/src/pages/options/index.html
@@ -84,6 +84,11 @@
     <span data-localise="__MSG_reuters__">Reuters</span>
   </a></div>
     <div class="title">
+  <a href="#fandom">
+    <img src="../../../assets/images/fandom-icon.svg">
+    <span data-localise="__MSG_fandom__">Fandom</span>
+  </a></div>
+    <div class="title">
   <a href="#peertube">
     <img src="../../../assets/images/peertube-icon.svg">
     <span data-localise="__MSG_peertube__">PeerTube</span>
@@ -314,6 +319,13 @@
     </div>
     <div>
   <div>
+    <img src="../../../assets/images/fandom-icon.svg">
+    <label data-localise="__MSG_fandom__" for="fandom">Fandom</label>
+      </div>
+      <input id="fandom" type="checkbox">
+    </div>
+    <div>
+  <div>
     <img src="../../../assets/images/peertube-icon.svg">
     <label data-localise="__MSG_peertube__" for="peertube">PeerTube</label>
       </div>
@@ -2201,6 +2213,114 @@
   </div>
     
 </section>
+<section class="option-block" id="fandom_page">
+  <div class="some-block option-block">
+    <h1 data-localise="__MSG_fandom__">Fandom</h1>
+  </div>
+  <hr>
+  <div class="some-block option-block">
+    <h4 data-localise="__MSG_enable__">Enable</h4>
+    <input id="fandom-enabled" type="checkbox">
+  </div>
+      <hr>
+      <div id="breezeWiki">
+        <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://breezeWiki.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-breezeWiki-label" for="latency-breezeWiki"> 
+          <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>&nbsp;
+          <x data-localise="__MSG_testInstancesLatency__">Test Instances Latency</x>
+        </label>
+        <input class="button button-inline" id="latency-breezeWiki" 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://breezeWiki.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://breezeWiki.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://breezeWiki.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="peertube_page">
   <div class="some-block option-block">
     <h1 data-localise="__MSG_peertube__">PeerTube</h1>
diff --git a/src/pages/popup/popup.html b/src/pages/popup/popup.html
index 54c4fefa..2dcc12bc 100644
--- a/src/pages/popup/popup.html
+++ b/src/pages/popup/popup.html
@@ -73,6 +73,11 @@
     <h4 data-localise="__MSG_reuters__">Reuters</h4></a>
   <input class="reuters-enabled" type="checkbox"/>
 </div>
+<div class="fandom some-block"><a class="title" href="https://fandom.com">
+    <img src="../../assets/images/fandom-icon.svg"/>
+    <h4 data-localise="__MSG_fandom__">Fandom</h4></a>
+  <input class="fandom-enabled" type="checkbox"/>
+</div>
 <div class="peertube some-block"><a class="title" href="https://search.joinpeertube.org">
     <img src="../../assets/images/peertube-icon.svg"/>
     <h4 data-localise="__MSG_peertube__">PeerTube</h4></a>
@@ -186,6 +191,11 @@
     <h4 data-localise="__MSG_reuters__">Reuters</h4></a>
   <input class="reuters-enabled" type="checkbox"/>
 </div>
+<div class="fandom some-block"><a class="title" href="https://fandom.com">
+    <img src="../../assets/images/fandom-icon.svg"/>
+    <h4 data-localise="__MSG_fandom__">Fandom</h4></a>
+  <input class="fandom-enabled" type="checkbox"/>
+</div>
 <div class="peertube some-block"><a class="title" href="https://search.joinpeertube.org">
     <img src="../../assets/images/peertube-icon.svg"/>
     <h4 data-localise="__MSG_peertube__">PeerTube</h4></a>