about summary refs log tree commit diff stats
path: root/src/assets/javascripts/utils.js
diff options
context:
space:
mode:
authorBobIsMyManager <bimmgitsignature.nly8m@simplelogin.co>2022-08-02 10:46:42 +0100
committerManeraKai <manerakai@protonmail.com>2022-08-02 15:04:57 +0300
commit498878639f71a665b9d6c388c267cdc437213c93 (patch)
tree66d5a0035e88002e09239a750399d51f1bcde6a3 /src/assets/javascripts/utils.js
parenthttp status (diff)
downloadlibredirect-498878639f71a665b9d6c388c267cdc437213c93.zip
Begin work on instagram unify settings
Diffstat (limited to 'src/assets/javascripts/utils.js')
-rw-r--r--src/assets/javascripts/utils.js97
1 files changed, 97 insertions, 0 deletions
diff --git a/src/assets/javascripts/utils.js b/src/assets/javascripts/utils.js
index 32167bc6..8ef25dc0 100644
--- a/src/assets/javascripts/utils.js
+++ b/src/assets/javascripts/utils.js
@@ -365,6 +365,100 @@ function getCookiesFromStorage(frontend, urls, name) {
 	})
 }
 
+function getPreferencesFromToken(frontend, targetUrl, urls, name, endpoint) {
+	return new Promise(resolve => {
+		browser.storage.local.get("firstPartyIsolate", r => {
+			let query
+			if (!r.firstPartyIsolate) query = { url: protocolHost(targetUrl), name: name }
+			else
+				query = {
+					url: protocolHost(targetUrl),
+					name: name,
+					firstPartyDomain: null,
+				}
+			browser.cookies.getAll(query, async cookies => {
+				for (const cookie of cookies)
+					if (cookie.name == name) {
+							const setQuery = r.firstPartyIsolate
+								? {
+										url: targetUrl,
+										name: name,
+										value: cookie.value,
+										secure: true,
+										firstPartyDomain: new URL(targetUrl).hostname,
+								  }
+								: {
+										url: targetUrl,
+										name: name,
+										value: cookie.value,
+										secure: true,
+										expirationDate: cookie.expirationDate,
+								  }
+						console.log(toString(targetUrl))
+									const http = new XMLHttpRequest();
+									http.open("GET", targetUrl + endpoint)
+									http.setRequestHeader("Cookie", name + "=" + cookie.value)
+									http.send(null)
+									const preferences = http.responseText
+							//console.log(preferences)
+
+
+							browser.cookies.set(setQuery, () => browser.storage.local.set({ [`${frontend}_${name}`]: preferences }, () => resolve()))
+						break
+					}
+				resolve()
+			})
+		})
+	})
+}
+
+
+function setPreferencesFromToken(frontend, urls, name) {
+	let key = `${frontend}_${name}`
+	let formdata = ""
+	browser.storage.local.get(key, r => {
+		//console.log(r[key])
+		const preferences = JSON.parse(r[key])
+		if (preferences === undefined) return
+		for (const prefName of names(preferences)) {
+			if (formdata != "") {
+				formdata += "&"
+			}
+			formdata += prefName + "=" + preferences[prefName]
+		}
+		for (const url of urls) {
+
+			const http = new XMLHttpRequest();
+			http.open("POST", url + "/settings")
+			http.send(formdata)
+
+
+
+
+
+			/*
+			let query = r.firstPartyIsolate
+				? {
+						url: url,
+						name: cookie.name,
+						value: cookie.value,
+						secure: true,
+						expirationDate: null,
+						firstPartyDomain: new URL(url).hostname,
+				  }
+				: {
+						url: url,
+						name: cookie.name,
+						value: cookie.value,
+						secure: true,
+						expirationDate: cookie.expirationDate,
+				  }
+			browser.cookies.set(query)
+			*/
+		}
+	})
+}
+
 function copyRaw(test, copyRawElement) {
 	return new Promise(resolve => {
 		browser.tabs.query({ active: true, currentWindow: true }, async tabs => {
@@ -434,6 +528,7 @@ function unify(test) {
 				if (!result) result = await wikipediaHelper.initWikilessCookies(test, url)
 				if (!result) result = await translateHelper.copyPasteSimplyTranslateCookies(test, url)
 				if (!result) result = await translateHelper.copyPasteLingvaLocalStorage(test, url)
+				if (!result) result = await instagramHelper.initBibliogramPreferences(test, url)
 
 				resolve(result)
 			}
@@ -508,6 +603,8 @@ export default {
 	latency,
 	copyCookie,
 	getCookiesFromStorage,
+	getPreferencesFromToken,
+	setPreferencesFromToken,
 	switchInstance,
 	copyRaw,
 	unify,