edgentweaks 2024
// ==UserScript==
// @name EdgenTweaks
// @namespace https://gradyn.com/
// @version 1.2.9
// @description Adds tweaks to edgenuity [IMPORTANT NOTE: Edgentweaks is not created by, sponsored by, affiliated with, endorsed by, or otherwise assosiated with Edgenuity Inc]
// @author Gradyn Wursten
// @match *://*.core.learn.edgenuity.com/*
// @grant none
// ==/UserScript==
(function() {
edgentweaks 2024 How to use it? edgentweaks 2024
'use strict';
window.configElements = []
//==BEGIN UI BUILDING==
window.overlay = document.createElement("div")
window.overlay.style.width = "100vw"
window.overlay.style.height = "100vh"
window.overlay.style.zIndex = "1"
window.overlay.style.position = "fixed"
window.overlay.style.visibility = "hidden"
window.overlay.id = "overlay"
edgentweaks 2024 How to use it? edgentweaks 2024
document.body.prepend(window.overlay)
function BuildMenuEntry (name, info, id, configpane) {
window.entry = document.createElement("div")
window.tickbox = document.createElement("input")
window.tickbox.type = "checkbox"
window.tickbox.id = id
window.configElements.push(id)
window.entry.appendChild(window.tickbox)
window.window.label = document.createElement("label")
window.label.innerText = name
edgentweaks 2024 PasteShr edgentweaks 2024
window.entry.appendChild(window.label)
if (configpane != undefined) {
window.configbutton = document.createElement("button")
window.configbutton.innerText = "Configure"
window.configbutton.style.marginLeft = "7px"
window.configbutton.style.border = "1px solid #5f5f5f"
window.configbutton.style.boxShadow = "inset 0 0 5px rgba(0, 0, 0, 0.6)"
window.configbutton.style.backgroundColor = "rgb(39, 39, 39)"
window.configbutton.style.color = "#f9a619"
window.configbutton.style.borderRadius = "3px"
edgentweaks 2024 PasteShr edgentweaks 2024
window.configbutton.onclick = function () {
if (document.getElementById(configpane).style.visibility == "unset") {
document.getElementById(configpane).style.visibility = "hidden"
} else {
document.getElementById(configpane).style.visibility = "unset"
}
}
window.entry.appendChild(window.configbutton)
}
window.desc = document.createElement("p")
edgentweaks 2024 How to use it? edgentweaks 2024
window.desc.innerHTML = info;
window.entry.appendChild(window.desc)
return window.entry
}
function RenderPane(name, id, width, height, margintop, marginleft) {
window.pane = document.createElement("div")
window.pane.style.width = width
window.pane.style.height = height
window.pane.style.position = "absolute"
window.pane.style.marginTop = margintop
edgentweaks 2024 PasteShr edgentweaks 2024
window.pane.style.marginLeft = marginleft
window.pane.style.border = "1px solid rgb(95, 95, 95)"
window.pane.style.borderRadius = "3px"
window.pane.style.backgroundColor = "rgb(39, 39, 39)"
window.pane.style.overflow = "hidden"
window.pane.style.color = "rgb(249, 166, 25)"
window.pane.style.textAlign = "center"
window.pane.style.overflowY = "scroll"
window.pane.id = id
window.panetitle = document.createElement("h1")
edgentweaks 2024 How to dowload it? edgentweaks 2024
window.panetitle.innerText = name
window.pane.appendChild(window.panetitle)
window.pane.appendChild(document.createElement("hr"))
document.getElementById("overlay").appendChild(window.pane)
}
// Add the button
window.tweaksbutton = document.createElement("button")
window.tweaksbutton.innerText = "Tweaks"
window.tweaksbutton.id = "tweaksbutton"
window.tweaksbutton.style.border = "1px solid #5f5f5f"
edgentweaks 2024 How to dowload it? edgentweaks 2024
window.tweaksbutton.style.boxShadow = "inset 0 0 5px rgba(0, 0, 0, 0.6)"
window.tweaksbutton.style.backgroundColor = "rgb(39, 39, 39)"
window.tweaksbutton.style.color = "#f9a619"
window.tweaksbutton.style.borderRadius = "3px"
window.tweaksbutton.style.marginLeft = "40%"
window.tweaksbutton.style.zIndex = "2"
document.getElementsByClassName("mainfoot")[0].appendChild(window.tweaksbutton)
// Build main menu
RenderPane("EdgenTweaks", "tweaksmenu", "50%", "50%", "20vh", "25%")
edgentweaks 2024 How to use it? edgentweaks 2024
// Menu Entrys
document.getElementById("tweaksmenu").appendChild(BuildMenuEntry("Auto Advance", "Advance to the next portion of the course automatically when it becomes available", "AutoAdvance.tickbox"))
document.getElementById("tweaksmenu").appendChild(BuildMenuEntry("Auto Complete Vocab","Automatically completes vocab assignments","AutoCompleteVocabTickbox"))
/* document.getElementById("tweaksmenu").appendChild(BuildMenuEntry("Skip Videos", "Skips videos. THIS IS HIGHLY EXPERIMENTAL AND WILL BREAK THINGS", "SkipVideosTickbox")) */
document.getElementById("tweaksmenu").appendChild(BuildMenuEntry("Skip intro", "Lets you interact with practices while the intro audio is playing", "SkipIntro.tickbox"))
document.getElementById("tweaksmenu").appendChild(BuildMenuEntry("Guess Practice", "Most teachers don't count practices twords your final grade, so you can guess your way thru them. This automatically guesses thru practices.", "GuessPractice.tickbox", "practiceconfig"))
document.getElementById("tweaksmenu").appendChild(BuildMenuEntry("Show Columns","On practices where you have to write a text response to a prompt, there is an example response to the prompt. However, it is hidden until you submit your response. This forces it to show even if you haven't submitted a response yet", "ShowColumn.tickbox"))
// Config Menus
RenderPane("Guess Practice Config", "practiceconfig", "15%", "15%", "0", "0")
document.getElementById("practiceconfig").style.visibility = "hidden"
edgentweaks 2024 How to get it for free? edgentweaks 2024
document.getElementById("practiceconfig").appendChild(BuildMenuEntry("Guess thru Assignments", "Guesses thru assignments. This is highly discouraged", "guessassignments"))
// window.copyright
window.copyright = document.createElement("p")
window.copyright.innerHTML = "EdgenTweaks Version 1.2.9 by Gradyn Wursten (Support the project!)"
window.copyright.style.color = "gray"
window.copyright.style.width = "100%"
document.getElementById("tweaksmenu").append(window.copyright)
// Activate the button
document.getElementById("tweaksbutton").addEventListener("click", function () {
if (document.getElementById("overlay").style.visibility == "hidden") {
edgentweaks 2024 How to get it? edgentweaks 2024
document.getElementById("overlay").style.visibility = "visible"
} else {
document.getElementById("overlay").style.visibility = "hidden"
}
})
//==BEGIN TWEAKS==
// Auto Advance
function autoadvance () {
edgentweaks 2024 How to get it? edgentweaks 2024
if (document.getElementById("AutoAdvance.tickbox").checked) {
if (document.getElementById("activity-title").innerText == "Quiz") {
} else {
try {document.getElementsByClassName("footnav goRight")[0].click()} catch (TypeError) {}
try {window.frames[0].API.FrameChain.nextFrame()} catch (TypeError) {}
}
}
}
// Skip intro
function skipIntro() {
edgentweaks 2024 How to use it? edgentweaks 2024
if (document.getElementById("SkipIntro.tickbox").checked) {
try {window.frames[0].document.getElementById("invis-o-div").remove()} catch (TypeError) {}
}
}
// Guess Practice
function GuessPractice() {
if (document.getElementById("GuessPractice.tickbox").checked) {
try { // document.getElementById("activity-title") may error
if (document.getElementById("activity-title").innerText == "Assignment") {
if (!document.getElementById("guessassignments").checked) {
edgentweaks 2024 How to get it for free? edgentweaks 2024
return // End the method call so we dont guess
}
}
if (["Instruction", "Assignment", "Warm-Up"].includes(document.getElementById("activity-title").innerText)) {
try {window.options = window.frames[0].frames[0].document.getElementsByClassName("answer-choice-button");
window.options[Math.floor(Math.random() * window.options.length)].click();} catch (TypeError) {}
try {window.frames[0].API.Frame.check()} catch (TypeError) {} // This has to be seporate from the option clicker in case it's a text only practice
}
}
catch (TypeError) {}
edgentweaks 2024 How to dowload it? edgentweaks 2024
}
}
// Unhide Right Column
function showColumn() {
if (document.getElementById("ShowColumn.tickbox").checked) {
try {window.frames[0].frames[0].document.getElementsByClassName("right-column")[0].children[0].style.display = "block"} catch (TypeError) {}
try {window.frames[0].frames[0].document.getElementsByClassName("left-column")[0].children[0].style.display = "block"} catch (TypeError) {}
}
}
// Skip videos (PATCHED)
edgentweaks 2024 How to dowload it? edgentweaks 2024
/* function skipVideo() {
if (document.getElementById("SkipVideosTickbox").checked) {
if (document.getElementById("activity-title").innerText != "Assignment") { // Appearantly this causes problems with assignments, disable it for now
if (frames[0].document.getElementById("home_video_container").parentNode.style.opacity == 1) {
try {window.frames[0].API.FrameChain.framesStatus[window.frames[0].API.FrameChain.currentFrame - 1] = "complete"} catch(TypeError) {}
}
}
}
} */
// Auto complete vocab
edgentweaks 2024 How to dowload it? edgentweaks 2024
function vocabCompleter() {
if (document.getElementById("AutoCompleteVocabTickbox").checked) {
if (document.getElementById("activity-title").innerText == "Vocabulary"){
try {window.frames[0].document.getElementsByClassName("word-textbox")[0].value = window.frames[0].document.getElementsByClassName("word-background")[0].value} catch(TypeError) {}
try {for (var x of window.frames[0].document.getElementsByClassName("playbutton vocab-play")) {
x.click()
}} catch (TypeError) {}
try {window.frames[0].document.getElementsByClassName("uibtn uibtn-blue uibtn-arrow-next")[0].click()} catch(TypeError) {}
}
}
edgentweaks 2024 How to use it? edgentweaks 2024
}
//==BEGIN CONFIG==
function loaditem (item, id) {
if (localStorage.getItem(item) != null) {
if (localStorage.getItem(item) == "true") { //Because LocalStorage only stores strings
document.getElementById(id).checked = true
} else {
document.getElementById(id).checked = false
}
edgentweaks 2024 How to use it? edgentweaks 2024
}
}
// Load config
for (var x of configElements) {
loaditem(x, x)
}
// Sync Config
function syncConfig() {
for (var x of configElements) {
localStorage.setItem(x, document.getElementById(x).checked.toString())
edgentweaks 2024 How to dowload it? edgentweaks 2024
}
}
// Easter Egg
window.menutitleclicks = 0
function easteregg() {
if (window.menutitleclicks < 10) {
window.menutitleclicks++
if (window.menutitleclicks == 10) {
console.log("Easter egg activated")
var easteregg = document.createElement("img")
edgentweaks 2024 How to get it? edgentweaks 2024
easteregg.src = "https://i.gifer.com/zYw.gif"
easteregg.style.position = "fixed"
easteregg.style.bottom = "40px";
easteregg.style.marginLeft = "80%"
document.body.appendChild(easteregg)
}
}
}
document.getElementById("tweaksmenu").firstChild.onclick = easteregg
// Master loop
edgentweaks 2024 How to get it? edgentweaks 2024
function loop () {
vocabCompleter()
autoadvance()
skipIntro()
GuessPractice()
syncConfig()
showColumn()
// skipVideo()
}
window.masterloop = setInterval(loop, 1000);
edgentweaks 2024 PasteShr edgentweaks 2024
})();
edgentweaks 2024