// ==UserScript== // @name Symolab Pro - unlock full steps and verify solutions for free // @namespace http://tampermonkey.net/ // @version 1.1 // @description Unlock Symbolab pro features for free // @author J. Lawrence Dev Pro Tips // @match https://www.symbolab.com/ // @include *://*symbolab.com/* // @grant none // @downloadURL none // ==/UserScript== (function () { 'use strict'; var code = `window.onload = function(){ /* set subscription params */ window.subscribed = true; if (typeof(SYSTEPS) != 'undefined') { SYSTEPS.subscribed = true } if (typeof(SOLUTIONS) != 'undefined') { SOLUTIONS.subscribed = true } if (typeof(SYMBOLAB) != 'undefined') { SYMBOLAB.params.subscribed = true } if (typeof(SYPRACTICE) != 'undefined') { SYPRACTICE.subscribed = true } isUserLoggedIn = function() { return true } /* remove popup when verify solution box is clicked */ if ($("#click-capture")) { // add the class name to the click capture to prevent blocking $("#click-capture").addClass("click-capture-subscribed") } /* improvements to dark mode */ fixDarkMode = function() { // check if dark mode style element is on the page if($("#invert-style").length > 0) { // replace the styling element with better styling var invertStyle = $("#invert-style")[0].innerHTML $("#invert-style")[0].remove() document.head.insertAdjacentHTML("beforeend", '\`) } }; // fix dark mode when the page loads fixDarkMode() /* overwrite the toggle function to fix dark mode at end */ var oldLightsOut = lightsOut; lightsOut = function() { // call the original lightsOut function oldLightsOut() // fix dark mode fixDarkMode() } }` // make sure the code runs before the subscription status is checked document.documentElement.setAttribute("onreset", code) document.documentElement.dispatchEvent(new CustomEvent("reset")) document.documentElement.removeAttribute("onreset") })()