From baaa4a2f946b13ad4d527163a140fdb56dcf4936 Mon Sep 17 00:00:00 2001 From: Timmy Keller Date: Fri, 16 Aug 2024 18:49:31 -0500 Subject: piped prefs script --- misc/piped-preferences.js | 59 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 misc/piped-preferences.js (limited to 'misc/piped-preferences.js') 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) -- cgit v1.2.3