Skip to content

Commit

Permalink
Merge pull request titaniumnetwork-dev#3 from BinBashBanana/main
Browse files Browse the repository at this point in the history
Better errors for Ultraviolet-Node
  • Loading branch information
e9x committed Nov 2, 2022
2 parents 9715503 + 884405d commit 28d69d9
Show file tree
Hide file tree
Showing 6 changed files with 165 additions and 15 deletions.
52 changes: 52 additions & 0 deletions public/error.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<meta
name="viewport"
content="width=device-width, initial-scale=1.0, shrink-to-fit=no"
/>
<title>Ultraviolet | Error</title>
<meta
name="description"
content="Ultraviolet is a highly sophisticated proxy used for evading internet censorship or accessing websites in a controlled sandbox using the power of service-workers. Unblock sites today!"
/>
<meta
name="theme-color"
media="(prefers-color-scheme: dark)"
content="#434c5e"
/>
<meta name="googlebot" content="noindex, nofollow, nosnippet" />
<base href="/">
<link rel="shortcut icon" content="favicon.ico" />
<link rel="stylesheet" href="index.css" />
</head>

<body>
<div class="logo-wrapper left-margin">
<h1>
Ultraviolet | Error
</h1>
</div>
<div class="desc left-margin">
<p>
The server could not route your request.
</p>
<p class="error"></p>
<input type="button" class="register-sw" value="Register service worker">
</div>

<footer>
<a
title="For privacy implications related to Ultraviolet."
href="https://github.com/titaniumnetwork-development/Ultraviolet/raw/main/LICENSE"
style="margin-left: auto"
>License</a
>
<span>Ultraviolet &copy; TN 2022</span>
</footer>
<script src="uv/uv.bundle.js"></script>
<script src="uv/uv.config.js"></script>
<script src="error.js"></script>
</body>
</html>
39 changes: 39 additions & 0 deletions public/error.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,39 @@
const errorContainer = document.querySelector(".error");
const registerButton = document.querySelector(".register-sw");
let registrarOpen = false;

if (window.location.pathname.startsWith(__uv$config.prefix)) {
errorContainer.textContent += "The service worker is not registered. Click the button below to register the service worker.";
registerButton.style.display = "block";
}

function registrarResponse(response) {
if (response == "success") {
registerButton.style.display = "none";
let span = document.createElement("span");
span.className = "error-green";
span.textContent = "\n\nSuccess. Reloading now...";
errorContainer.appendChild(span);
window.location.reload();
}
if (response == "failure")
errorContainer.textContent += "\n\nFailed to register service worker.";
}

registerButton.onclick = () => {
if (!registrarOpen) {
registrarOpen = true;
let registrarFrame = document.createElement("iframe");
registrarFrame.style.display = "none";
registrarFrame.src = "./register-sw.html";
document.body.appendChild(registrarFrame);
function messageHandler(event) {
window.removeEventListener("message", messageHandler);
registrarFrame.removeAttribute("src");
document.body.removeChild(registrarFrame);
registrarOpen = false;
registrarResponse(event.data);
}
window.addEventListener("message", messageHandler);
}
}
46 changes: 34 additions & 12 deletions public/index.css
Original file line number Diff line number Diff line change
Expand Up @@ -28,14 +28,46 @@ body {
color: white;
}

.logo-wrapper {
.flex-center {
display: flex;
align-items: center;
justify-content: center;
}

.header-center {
align-items: center;
flex-direction: column;
margin-top: 10%;
}

.left-margin {
margin: 0px 16px;
}

.error {
color: #ff6666 !important;
white-space: pre-wrap;
}

.error-green {
color: #66ff66 !important;
}

.register-sw {
color: white;
background: #555555;
cursor: pointer;
outline: none;
border: none;
border-radius: 6px;
padding: 16px 20px;
line-height: 16px;
display: none;
}

.register-sw:active {
background: #333333;
}

.logo {
width: 150px;
}
Expand Down Expand Up @@ -76,16 +108,6 @@ footer a:hover {
text-decoration: underline;
}

form {
display: flex;
justify-content: center;
}

.desc {
display: flex;
justify-content: center;
}

.desc p {
width: 560px;
color: rgba(253, 253, 253, 0.514);
Expand Down
6 changes: 3 additions & 3 deletions public/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@
</head>

<body>
<div title="Ultraviolet Logo" class="logo-wrapper">
<div title="Ultraviolet Logo" class="flex-center logo-wrapper header-center">
<img class="logo" src="uv.png" alt="Ultraviolet" />
<h1
title="Ultraviolet supports YouTube, GeForce NOW and more! Service by TitaniumNetwork."
Expand All @@ -69,15 +69,15 @@
</div>
<div
title="Ultraviolet uses the power of service-workers and more! Unblock many sites today with Ultraviolet!"
class="desc"
class="flex-center desc"
>
<p>
Ultraviolet is highly sophisticated proxy used for evading internet
censorship.
</p>
</div>

<form>
<form class="flex-center">
<input placeholder="Search the web freely" />
</form>
<footer>
Expand Down
15 changes: 15 additions & 0 deletions public/register-sw.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Registering Service Worker...</title>
</head>

<body>
<h1>Registering Service Worker...</h1>
<p id="state"></p>
<script src="uv/uv.bundle.js"></script>
<script src="uv/uv.config.js"></script>
<script src="register-sw.js"></script>
</body>
</html>
22 changes: 22 additions & 0 deletions public/register-sw.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,22 @@
const stateContainer = document.getElementById("state");

function finish(state) {
stateContainer.textContent = state;
console.log("Registering ultraviolet service worker... " + state);
window.parent.postMessage(state, "*");
}

try {
window.navigator.serviceWorker
.register("./sw.js", {
scope: __uv$config.prefix,
})
.then(() => {
finish("success");
})
.catch(() => {
finish("failure");
});
} catch (e) {
finish("failure");
}

0 comments on commit 28d69d9

Please sign in to comment.