about summary refs log tree commit diff stats
path: root/src/assets
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets')
-rw-r--r--src/assets/images/fandom-icon.svg1
-rw-r--r--src/assets/javascripts/services.js56
2 files changed, 57 insertions, 0 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,

 }