aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--misc/piped-preferences.js59
1 files changed, 59 insertions, 0 deletions
diff --git a/misc/piped-preferences.js b/misc/piped-preferences.js
new file mode 100644
index 0000000..c8a1f78
--- /dev/null
+++ b/misc/piped-preferences.js
@@ -0,0 +1,59 @@
+// ==UserScript==
+// @name fill prefs piped
+// @namespace Violentmonkey Scripts
+// @match https://piped.tjkeller.xyz/preferences
+// @grant none
+// @version 1.0
+// @author tjkeller.xyz
+// @description 8/16/2024, 6:10:21 PM
+// ==/UserScript==
+
+// fill prefs { id: value }
+const prefs = {
+ chkShowWatchOnYouTube: 1,
+ chkStoreWatchHistory: 1,
+ chkDeArrow: 1,
+ ddlDefaultHomepage: "feed",
+ ddlDefaultQuality: "720",
+ ddlSkip_intro: "auto",
+ ddlSkip_poi_highlight: "button",
+ ddlSkip_filler: "button",
+ ddlEnabledCodecs: "avc" // last because this change will reload page
+}
+
+// trigger with button press, otherwise page will submit-reload loop forever
+function createFillPrefButton() {
+ const firstInput = app.querySelector("#app label")
+
+ // div for nesting button for styling
+ const inputDiv = document.createElement("div")
+ inputDiv.classList.add("pref")
+
+ // button
+ const fillPrefButton = document.createElement("button")
+ fillPrefButton.classList.add("btn", "mx-auto", "font-bold")
+ fillPrefButton.innerText = "Fill Saved Preferences"
+
+ inputDiv.appendChild(fillPrefButton)
+
+ // insert before first input
+ firstInput.parentNode.insertBefore(inputDiv, firstInput)
+
+ // do the changing
+ fillPrefButton.addEventListener("click", () => {
+ for (const [id, value] of Object.entries(prefs)) {
+ const input = document.getElementById(id)
+
+ if (input.type == "checkbox")
+ input.checked = value
+ else
+ input.value = value
+
+ // trigger change event to save
+ input.dispatchEvent(new Event("change", { bubbles: true }))
+ }
+ })
+}
+
+// wait 1000ms because dynamic loading
+setTimeout(createFillPrefButton, 1000)