about summary refs log tree commit diff stats
path: root/src/assets/javascripts/persist-invidious-prefs.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/assets/javascripts/persist-invidious-prefs.js')
-rw-r--r--src/assets/javascripts/persist-invidious-prefs.js30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/assets/javascripts/persist-invidious-prefs.js b/src/assets/javascripts/persist-invidious-prefs.js
new file mode 100644
index 00000000..4c13a310
--- /dev/null
+++ b/src/assets/javascripts/persist-invidious-prefs.js
@@ -0,0 +1,30 @@
+'use strict';
+
+window.browser = window.browser || window.chrome;
+
+function getCookie() {
+  let ca = document.cookie.split(';');
+  for (let i = 0; i < ca.length; i++) {
+    let c = ca[i];
+    while (c.charAt(0) == ' ') c = c.substring(1, c.length);
+    if (c.indexOf('PREFS=') == 0) {
+      return JSON.parse(
+        decodeURIComponent(c.substring('PREFS='.length, c.length))
+      )
+    };
+  }
+  return {};
+}
+
+browser.storage.sync.get(
+  ['alwaysProxy', 'videoQuality', 'invidiousDarkMode', 'persistInvidiousPrefs'],
+  (result) => {
+    if (result.persistInvidiousPrefs) {
+      const prefs = getCookie();
+      prefs.local = result.alwaysProxy;
+      prefs.quality = result.videoQuality;
+      prefs.dark_mode = result.invidiousDarkMode;
+      document.cookie = `PREFS=${encodeURIComponent(JSON.stringify(prefs))}`;
+    }
+  }
+);
\ No newline at end of file