diff --git a/public/resources/nebulamain.js b/public/resources/nebulamain.js index 36d053d..54bd35e 100644 --- a/public/resources/nebulamain.js +++ b/public/resources/nebulamain.js @@ -442,9 +442,21 @@ function switchTheme() { changeCSS("--text-color-primary", "#303030", true); localStorage.setItem("theme", "light"); } - if (selectedOption == "custom") { - let response = prompt("Please enter the code for a custom theme:", ""); - alert("This feature is not ready yet. Please try again later."); + if (selectedOption == 'custom') { + changeCSS('--background-primary', localStorage.getItem("--background-primary") , true) + changeCSS('--navbar-color', localStorage.getItem("--navbar-color") , true) + changeCSS('--navbar-height', localStorage.getItem("--navbar-height") , true) + changeCSS('--navbar-text-color', localStorage.getItem("--navbar-text-color") , true) + changeCSS('--input-text-color', localStorage.getItem("--input-text-color") , true) + changeCSS('--input-placeholder-color', localStorage.getItem("--input-placeholder-color") , true) + changeCSS('--input-background-color', localStorage.getItem("--input-background-color") , true) + changeCSS('--input-border-color', localStorage.getItem("--input-border-color") , true) + changeCSS('--input-border-size', localStorage.getItem("--input-border-size") , true) + changeCSS('--navbar-link-color', localStorage.getItem("--navbar-link-color") , true) + changeCSS('--navbar-font', localStorage.getItem("--navbar-font") , true) + changeCSS('--navbar-logo-filter', localStorage.getItem("--navbar-logo-filter") , true) + changeCSS('--text-color-primary', localStorage.getItem("--text-color-primary") , true) + localStorage.setItem('theme', 'custom') } } @@ -660,10 +672,34 @@ function handleTabLeave() { // Create and Add the event listener document.addEventListener("visibilitychange", handleTabLeave); -const stealthStored = localStorage.getItem("nogg"); -function link(_link) { - if (stealthStored == "on") { - let inFrame; +let tryAbFavi = localStorage.getItem('ABfaviconURL'); +let ABFavicon = ""; +if (tryAbFavi === null) { + console.warn("ABfaviconURL is null, Defaulting"); + ABFavicon = ""; +} else if (tryAbFavi == "") { + console.warn("ABfaviconURL is empty, Defaulting"); + ABFavicon = ""; +} else { + ABFavicon = tryAbFavi; +} + +let tryAbTitle = localStorage.getItem('ABtitle'); +let ABTitle = ""; +if (tryAbTitle === null) { + console.warn("ABtitle is null, Defaulting"); + ABTitle = ""; +} else if (tryAbTitle == "") { + console.warn("ABtitle is empty, Defaulting"); + ABTitle = ""; +} else { + ABTitle = tryAbTitle; +} + +const stealthStored = localStorage.getItem('nogg') +function link (_link) { + if (stealthStored == 'on') { + let inFrame try { inFrame = window !== top; } catch (e) { @@ -675,25 +711,25 @@ function link(_link) { if (!popup || popup.closed) { alert("Popups are disabled!"); } else { - const doc = popup.document; - const iframe = doc.createElement("iframe"); - const style = iframe.style; - const img = doc.createElement("link"); - const link = location.href; - img.rel = "icon"; - img.href = - "https://ssl.gstatic.com/images/branding/product/1x/drive_2020q4_32dp.png"; - doc.title = getRandomName(); - var currentLink = _link.slice(0, _link.length - 1); + const doc = popup.document + const iframe = doc.createElement('iframe') + const style = iframe.style + const img = doc.createElement('link') + const link = location.href + img.rel = 'icon' + img.href = ABFavicon + doc.title = ABTitle + var currentLink = _link.slice(0, _link.length - 1) iframe.src = location.origin + "/service/go/" + - __uv$config.encodeUrl(currentLink); - style.position = "fixed"; - style.top = style.bottom = style.left = style.right = 0; - style.border = style.outline = "none"; - style.width = style.height = "100%"; - doc.body.appendChild(iframe); + __uv$config.encodeUrl(currentLink) + style.position = 'fixed' + style.top = style.bottom = style.left = style.right = 0 + style.border = style.outline = 'none' + style.width = style.height = '100%' + doc.body.appendChild(iframe) + doc.head.appendChild(img) } } }, 0200); diff --git a/public/resources/options.js b/public/resources/options.js index 0f41aac..715e9cc 100644 --- a/public/resources/options.js +++ b/public/resources/options.js @@ -47,8 +47,83 @@ function switchTheme() { localStorage.setItem("theme", "light"); } if (selectedOption == "custom") { - let response = prompt("Please enter the code for a custom theme:", ""); - alert("This feature is not ready yet. Please try again later."); + let startCustom = prompt( + "Would you like to have an interactive setup? Y/N", + "" + ); + if (startCustom == "Y" || startCustom == "y") { + alert( + "Welcome to the interactive setup. Please enter the following values. If you don't know what to enter, just press enter. They will default to Dark Mode." + ); + let background = prompt( + "Background color || Possible Types: Keywords, RGB, RBBA, HSL, HSLA, Hexadecimal. || Default Value: #191724", + "" + ); + let navbar = prompt( + "Navbar color || Possible Types: Keywords, RGB, RBBA, HSL, HSLA, Hexadecimal. || Default Value: #26233a", + "" + ); + let navbarHeight = prompt( + "Navbar height || Possible Types: ABSOLUTE: cm, mm, Q, in, pc, pt, px RELATIVE: em, ex, ch, rem, lh, rlh, vw, vh, vb, vi || Default Value: 60px", + "" + ); + let navbarText = prompt( + "Navbar text color || Possible Types: Keywords, RGB, RBBA, HSL, HSLA, Hexadecimal. || Default Value: #7967dd", + "" + ); + let inputText = prompt( + "Input text color || Possible Types: Keywords, RGB, RBBA, HSL, HSLA, Hexadecimal. || Default Value: #e0def4", + "" + ); + let inputPlaceholder = prompt( + "Input placeholder color || Possible Types: Keywords, RGB, RBBA, HSL, HSLA, Hexadecimal. || Default Value: #6e6a86", + "" + ); + let inputBackground = prompt( + "Input background color || Possible Types: Keywords, RGB, RBBA, HSL, HSLA, Hexadecimal. || Default Value: #1f1d2e", + "" + ); + let inputBorder = prompt( + "Input border color || Possible Types: Keywords, RGB, RBBA, HSL, HSLA, Hexadecimal. || Default Value: #eb6f92", + "" + ); + let inputBorderSize = prompt( + "Input border size || Possible Types: ABSOLUTE: cm, mm, Q, in, pc, pt, px RELATIVE: em, ex, ch, rem, lh, rlh, vw, vh, vb, vi || Default Value: 1.3px", + "" + ); + let navbarFont = prompt( + 'Navbar font || Enter a default font name, custom ones will likely not work. || Default Value: "Roboto"', + "" + ); + let navbarLink = prompt( + "Navbar link color || Possible Types: Keywords, RGB, RBBA, HSL, HSLA, Hexadecimal. || Default Value: #e0def4", + "" + ); + let navbarLogoFilter = prompt( + "Navbar logo filter || Adjust the NavBar-Logo-Filter. || Default Value: invert(0%)", + "" + ); + let textColorPrimary = prompt( + "Text color primary || Possible Types: Keywords, RGB, RBBA, HSL, HSLA, Hexadecimal. || Default Value: #e0def4", + "" + ); + localStorage.setItem("theme", "custom"); + changeCSS("--background-primary", background, true); + changeCSS("--navbar-color", navbar, true); + changeCSS("--navbar-height", navbarHeight, true); + changeCSS("--navbar-text-color", navbarText, true); + changeCSS("--input-text-color", inputText, true); + changeCSS("--input-placeholder-color", inputPlaceholder, true); + changeCSS("--input-background-color", inputBackground, true); + changeCSS("--input-border-color", inputBorder, true); + changeCSS("--input-border-size", inputBorderSize, true); + changeCSS("--navbar-link-color", navbarLink, true); + changeCSS("--navbar-font", navbarFont, true); + changeCSS("--navbar-logo-filter", navbarLogoFilter, true); + changeCSS("--text-color-primary", textColorPrimary, true); + } else { + alert("Non-Interactive Setup Not supported yet."); + } } } @@ -159,3 +234,36 @@ function toggleClickoff() { localStorage.setItem("ADVcloak", "on"); } } + +window.onload = function () { + if (localStorage.getItem("ABfaviconURL") === null) { + } else if (localStorage.getItem("ABfaviconURL") == "") { + } else { + document.querySelector("#faviconInput").value = + localStorage.getItem("ABfaviconURL"); + } + if (localStorage.getItem("ABtitle") === null) { + } else if (localStorage.getItem("ABtitle") == "") { + } else { + document.querySelector("#titleInput").value = + localStorage.getItem("ABtitle"); + } +}; + +function saveAbInfo() { + var faviconURL = document.getElementById("faviconInput").value; + var title = document.getElementById("titleInput").value; + localStorage.setItem("ABfaviconURL", faviconURL); + localStorage.setItem("ABtitle", title); + var notification = ` +
Stealth Mode
-Stops extensions from peeping
- - -Clickoff Cloaking
-- When you click off the tab, it will automatically morph to look like - Google Classroom. -
- - -AB Random Tab Name
-- Choose to randomize your Stealth Tab name or not. -
- - Disable - - Enable (recommended) -Search Suggestions
-
- This feature is not finished :(
- come back later!
-
- Version 7.11.4 (Public Release) | Nebula Copyright (c) Nebula Services - 2022 -
- - - + + + + + + + + + + + +Stealth Mode
+Stops extensions from peeping
+ + +Clickoff Cloaking
+When you click off the tab, it will automatically morph to look like Google Classroom.
+ + +Custom AB Tab Info
+Choose a custom Title + Favicon for your AB Tab
+Favicon URL:
+ +Title:
+ + Apply Options + +Search Suggestions
+This feature is not finished :(
come back later!
Bare location
+Choose the location where a bare server is hosted.
+ + + +Version 7.11.4 (Public Release) | Nebula Copyright (c) Nebula Services 2022
+ + + +