Content now loads in a proxied iframe, and the ui looks a fuckton better.
This commit is contained in:
parent
4b267c6a59
commit
bdc5c4d734
10 changed files with 214 additions and 151 deletions
45
public/img/purplewaves.svg
Normal file
45
public/img/purplewaves.svg
Normal file
|
|
@ -0,0 +1,45 @@
|
|||
<svg width="100%" height="100%" preserveAspectRatio="none" id="svg" viewBox="0 0 1440 390" xmlns="http://www.w3.org/2000/svg" class="transition duration-300 ease-in-out delay-150"><style>
|
||||
.path-0{
|
||||
animation:pathAnim-0 4s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
@keyframes pathAnim-0{
|
||||
0%{
|
||||
d: path("M 0,400 L 0,100 C 124.53333333333336,122.66666666666667 249.06666666666672,145.33333333333334 415,143 C 580.9333333333333,140.66666666666666 788.2666666666667,113.33333333333333 966,102 C 1143.7333333333333,90.66666666666667 1291.8666666666668,95.33333333333334 1440,100 L 1440,400 L 0,400 Z");
|
||||
}
|
||||
25%{
|
||||
d: path("M 0,400 L 0,100 C 171.19999999999993,71.6 342.39999999999986,43.2 497,54 C 651.6000000000001,64.8 789.6000000000001,114.80000000000001 944,129 C 1098.3999999999999,143.2 1269.1999999999998,121.6 1440,100 L 1440,400 L 0,400 Z");
|
||||
}
|
||||
50%{
|
||||
d: path("M 0,400 L 0,100 C 186.66666666666669,82.13333333333333 373.33333333333337,64.26666666666667 540,54 C 706.6666666666666,43.733333333333334 853.3333333333333,41.06666666666666 1000,50 C 1146.6666666666667,58.93333333333334 1293.3333333333335,79.46666666666667 1440,100 L 1440,400 L 0,400 Z");
|
||||
}
|
||||
75%{
|
||||
d: path("M 0,400 L 0,100 C 110.13333333333333,74.53333333333333 220.26666666666665,49.06666666666666 393,58 C 565.7333333333333,66.93333333333334 801.0666666666666,110.26666666666668 986,123 C 1170.9333333333334,135.73333333333332 1305.4666666666667,117.86666666666666 1440,100 L 1440,400 L 0,400 Z");
|
||||
}
|
||||
100%{
|
||||
d: path("M 0,400 L 0,100 C 124.53333333333336,122.66666666666667 249.06666666666672,145.33333333333334 415,143 C 580.9333333333333,140.66666666666666 788.2666666666667,113.33333333333333 966,102 C 1143.7333333333333,90.66666666666667 1291.8666666666668,95.33333333333334 1440,100 L 1440,400 L 0,400 Z");
|
||||
}
|
||||
}</style><style class="darkreader darkreader--sync" media="screen"></style><defs><linearGradient id="gradient" x1="0%" y1="53%" x2="100%" y2="47%"><stop offset="5%" stop-color="#702dc2" data-darkreader-inline-stopcolor="" style="--darkreader-inline-stopcolor: #5a249b;"></stop><stop offset="95%" stop-color="#3d097d" data-darkreader-inline-stopcolor="" style="--darkreader-inline-stopcolor: #310764;"></stop></linearGradient></defs><path d="M 0,400 L 0,100 C 124.53333333333336,122.66666666666667 249.06666666666672,145.33333333333334 415,143 C 580.9333333333333,140.66666666666666 788.2666666666667,113.33333333333333 966,102 C 1143.7333333333333,90.66666666666667 1291.8666666666668,95.33333333333334 1440,100 L 1440,400 L 0,400 Z" stroke="none" stroke-width="0" fill="url(#gradient)" fill-opacity="0.53" class="transition-all duration-300 ease-in-out delay-150 path-0" data-darkreader-inline-stroke="" style="--darkreader-inline-stroke: none;"></path><style>
|
||||
.path-1{
|
||||
animation:pathAnim-1 4s;
|
||||
animation-timing-function: linear;
|
||||
animation-iteration-count: infinite;
|
||||
}
|
||||
@keyframes pathAnim-1{
|
||||
0%{
|
||||
d: path("M 0,400 L 0,233 C 170.53333333333336,233.66666666666666 341.0666666666667,234.33333333333331 507,236 C 672.9333333333333,237.66666666666669 834.2666666666667,240.33333333333334 989,240 C 1143.7333333333333,239.66666666666666 1291.8666666666668,236.33333333333331 1440,233 L 1440,400 L 0,400 Z");
|
||||
}
|
||||
25%{
|
||||
d: path("M 0,400 L 0,233 C 202,220.46666666666667 404,207.93333333333334 539,220 C 674,232.06666666666666 742.0000000000001,268.7333333333333 881,275 C 1019.9999999999999,281.2666666666667 1230,257.1333333333333 1440,233 L 1440,400 L 0,400 Z");
|
||||
}
|
||||
50%{
|
||||
d: path("M 0,400 L 0,233 C 181.33333333333337,210.86666666666667 362.66666666666674,188.73333333333332 512,188 C 661.3333333333333,187.26666666666668 778.6666666666665,207.93333333333334 928,219 C 1077.3333333333335,230.06666666666666 1258.6666666666667,231.53333333333333 1440,233 L 1440,400 L 0,400 Z");
|
||||
}
|
||||
75%{
|
||||
d: path("M 0,400 L 0,233 C 195.06666666666666,222.86666666666667 390.1333333333333,212.73333333333332 559,216 C 727.8666666666667,219.26666666666668 870.5333333333333,235.93333333333334 1013,241 C 1155.4666666666667,246.06666666666666 1297.7333333333333,239.53333333333333 1440,233 L 1440,400 L 0,400 Z");
|
||||
}
|
||||
100%{
|
||||
d: path("M 0,400 L 0,233 C 170.53333333333336,233.66666666666666 341.0666666666667,234.33333333333331 507,236 C 672.9333333333333,237.66666666666669 834.2666666666667,240.33333333333334 989,240 C 1143.7333333333333,239.66666666666666 1291.8666666666668,236.33333333333331 1440,233 L 1440,400 L 0,400 Z");
|
||||
}
|
||||
}</style><style class="darkreader darkreader--sync" media="screen"></style><defs><linearGradient id="gradient" x1="0%" y1="53%" x2="100%" y2="47%"><stop offset="5%" stop-color="#702dc2" data-darkreader-inline-stopcolor="" style="--darkreader-inline-stopcolor: #5a249b;"></stop><stop offset="95%" stop-color="#3d097d" data-darkreader-inline-stopcolor="" style="--darkreader-inline-stopcolor: #310764;"></stop></linearGradient></defs><path d="M 0,400 L 0,233 C 170.53333333333336,233.66666666666666 341.0666666666667,234.33333333333331 507,236 C 672.9333333333333,237.66666666666669 834.2666666666667,240.33333333333334 989,240 C 1143.7333333333333,239.66666666666666 1291.8666666666668,236.33333333333331 1440,233 L 1440,400 L 0,400 Z" stroke="none" stroke-width="0" fill="url(#gradient)" fill-opacity="1" class="transition-all duration-300 ease-in-out delay-150 path-1" data-darkreader-inline-stroke="" style="--darkreader-inline-stroke: none;"></path></svg>
|
||||
|
After Width: | Height: | Size: 5.7 KiB |
3
public/img/search.svg
Normal file
3
public/img/search.svg
Normal file
|
|
@ -0,0 +1,3 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" fill="#fff" height="16" width="16" viewBox="0 0 512 512"> <!--!Font Awesome Free 6.5.1 by @fontawesome - https://fontawesome.com License - https://fontawesome.com/license/free Copyright 2024 Fonticons, Inc.-->
|
||||
<path d="M416 208c0 45.9-14.9 88.3-40 122.7L502.6 457.4c12.5 12.5 12.5 32.8 0 45.3s-32.8 12.5-45.3 0L330.7 376c-34.4 25.2-76.8 40-122.7 40C93.1 416 0 322.9 0 208S93.1 0 208 0S416 93.1 416 208zM208 352a144 144 0 1 0 0-288 144 144 0 1 0 0 288z"/>
|
||||
</svg>
|
||||
|
After Width: | Height: | Size: 504 B |
|
|
@ -1,8 +1,8 @@
|
|||
<div id="footer">
|
||||
<div class="footerflex">
|
||||
<div class="footerbrand">
|
||||
<p class="footerlist-heading"><a href="/">Alu's Unblocker</a></p>
|
||||
<p>Made with ❤️ by <a target="_black" href="https://wearr.dev">wearr</a></p>
|
||||
<p class="footerlist-heading"><a href="/">Alu</a></p>
|
||||
<p>Made with ❤️ by <a target="_blank" href="https://wearr.dev">wearr</a></p>
|
||||
</div>
|
||||
<div class="footerlist">
|
||||
<p class="footerlist-heading">Services</p>
|
||||
|
|
@ -18,22 +18,17 @@
|
|||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<p class="copyright">Alu's Unblocker © 2024</p>
|
||||
<p class="copyright">Alu Project © 2024</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<style>
|
||||
#footer {
|
||||
padding-top: 20vw;
|
||||
background-image: url(/img/darkwaves.svg);
|
||||
padding-top: 20vh;
|
||||
background-image: url("/img/purplewaves.svg");
|
||||
background-repeat: no-repeat;
|
||||
background-size: 100vw auto;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 800px) {
|
||||
#footer {
|
||||
display: none;
|
||||
}
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
.footerflex {
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
<div class="top-header">
|
||||
<div id="title-background" class="title-background">
|
||||
<div class="left">
|
||||
<a href="/" class="header-item"> Alu</a>
|
||||
<a href="/" class="header-item">Alu</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<a href="/games/" class="header-item"><i class="fa-solid fa-gamepad-modern"></i> Games</a>
|
||||
|
|
@ -20,7 +20,7 @@
|
|||
}
|
||||
|
||||
.title-background {
|
||||
background-color: #166e85;
|
||||
background-color: #7900e1;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
|
|
@ -31,7 +31,8 @@
|
|||
list-style-type: none;
|
||||
border: none;
|
||||
z-index: 10;
|
||||
transition: 250ms ease-in;
|
||||
border-bottom-left-radius: 5px;
|
||||
border-bottom-right-radius: 5px;
|
||||
}
|
||||
|
||||
.left, .right {
|
||||
|
|
@ -41,14 +42,14 @@
|
|||
}
|
||||
|
||||
.header-item {
|
||||
color: #ffffff;
|
||||
color: #fff;
|
||||
text-decoration: none;
|
||||
font-size: 20px;
|
||||
transition: 250ms ease-in-out;
|
||||
}
|
||||
|
||||
.header-item:hover {
|
||||
color: #b7bcc6;
|
||||
color: #c0c0c0;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 1003px) {
|
||||
|
|
|
|||
|
|
@ -9,16 +9,73 @@
|
|||
|
||||
form.addEventListener('submit', (event) => {
|
||||
event.preventDefault();
|
||||
let loadingContent = document.getElementById('loading-content');
|
||||
loadingContent.style.opacity = 1;
|
||||
let url = input.value.trim();
|
||||
if (!isUrl(url)) url = 'https://www.google.com/search?q=' + url;
|
||||
else if (!(url.startsWith('https://') || url.startsWith('http://'))) url = 'http://' + url;
|
||||
let loadingContent = document.getElementById('loading-content');
|
||||
if (loadingContent) loadingContent.style.opacity = "1";
|
||||
|
||||
console.log("here")
|
||||
|
||||
window.location.href = window.__uv$config.prefix + window.__uv$config.encodeUrl(url);
|
||||
let iframe = document.createElement('iframe');
|
||||
iframe.src = window.__uv$config.prefix + window.__uv$config.encodeUrl(url);
|
||||
iframe.classList.add("proxy-frame");
|
||||
iframe.style.opacity = 0;
|
||||
document.body.appendChild(iframe);
|
||||
iframe.addEventListener('load', () => {
|
||||
loadingContent.style.opacity = 0;
|
||||
iframe.style.opacity = 1;
|
||||
let topBar = document.createElement('div');
|
||||
topBar.classList.add("top-bar");
|
||||
let closeButton = document.createElement('button');
|
||||
closeButton.classList.add("close-button")
|
||||
closeButton.innerText = "Close";
|
||||
closeButton.addEventListener('click', () => {
|
||||
iframe.style.opacity = 0;
|
||||
topBar.style.opacity = 0;
|
||||
setTimeout(() => {
|
||||
iframe.remove();
|
||||
topBar.remove();
|
||||
}, 500);
|
||||
});
|
||||
let urlText = document.createElement('p');
|
||||
urlText.classList.add("url-text");
|
||||
urlText.innerText = url
|
||||
topBar.appendChild(closeButton);
|
||||
topBar.appendChild(urlText);
|
||||
document.body.appendChild(topBar);
|
||||
})
|
||||
});
|
||||
|
||||
// function checkReadyState(iframe) {
|
||||
// // Recursive function that checks if the iframe is ready to be used.
|
||||
// console.log(iframe.contentWindow.document.readyState)
|
||||
// if (iframe.contentWindow.document.readyState === "complete") {
|
||||
// // The iframe is ready to be used.
|
||||
// // We can now add the top bar.
|
||||
// let topBar = document.createElement('div');
|
||||
// topBar.classList.add("top-bar");
|
||||
// let backButton = document.createElement('button');
|
||||
// backButton.classList.add("back-button");
|
||||
// backButton.innerHTML = "Back";
|
||||
// backButton.addEventListener('click', (event) => {
|
||||
// iframe.remove();
|
||||
// topBar.remove();
|
||||
// });
|
||||
// let urlText = document.createElement('p');
|
||||
// urlText.classList.add("url-text");
|
||||
// urlText.innerHTML = iframe.src;
|
||||
// topBar.appendChild(backButton);
|
||||
// topBar.appendChild(urlText);
|
||||
// document.body.appendChild(topBar);
|
||||
// } else {
|
||||
// // The iframe is not ready yet.
|
||||
// // We will wait 100ms and then check again.
|
||||
// setTimeout(() => {
|
||||
// console.log("Not ready...")
|
||||
// checkReadyState(iframe);
|
||||
// }, 100);
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
function isUrl(val = ''){
|
||||
if (/^http(s?):\/\//.test(val) || val.includes('.') && val.substr(0, 1) !== ' ') return true;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,8 @@
|
|||
---
|
||||
import { fade } from 'astro/virtual-modules/transitions.js';
|
||||
import { ViewTransitions } from 'astro:transitions';
|
||||
import Header from '../components/Header.astro';
|
||||
import Footer from '../components/Footer.astro';
|
||||
|
||||
interface Props {
|
||||
title: string;
|
||||
|
|
@ -16,16 +18,20 @@ const { title } = Astro.props;
|
|||
<meta name="description" content="Astro description" />
|
||||
<meta name="viewport" content="width=device-width" />
|
||||
<link rel="icon" type="image/svg+xml" href="/favicon.png" />
|
||||
<link rel="preconnect" href="https://fonts.googleapis.com">
|
||||
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
|
||||
<link href="https://fonts.googleapis.com/css2?family=Varela+Round&display=swap" rel="stylesheet">
|
||||
<meta name="generator" content={Astro.generator} />
|
||||
<title>{title}</title>
|
||||
<ViewTransitions />
|
||||
</head>
|
||||
<body transition:animate={fade({ duration: '0.4s' })}>
|
||||
<slot />
|
||||
<body>
|
||||
<Header></Header>
|
||||
<slot transition:animate={"fade"} />
|
||||
<Footer></Footer>
|
||||
</body>
|
||||
</html>
|
||||
<style is:global>
|
||||
@import url("https://fonts.googleapis.com/css2?family=Varela+Round&display=swap");
|
||||
* {
|
||||
box-sizing: border-box;
|
||||
}
|
||||
|
|
@ -34,17 +40,34 @@ body, html {
|
|||
margin: 0;
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
}
|
||||
|
||||
body {
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
background-color: #46494C;
|
||||
background-color: #080808;
|
||||
max-width: 100vw;
|
||||
margin: 0;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
min-height: 100vh;
|
||||
}
|
||||
body > * {
|
||||
opacity: 1;
|
||||
}
|
||||
/* Create animation to fade in elements */
|
||||
/* body > * {
|
||||
animation: fadeIn ease 0.15s;
|
||||
animation-fill-mode: forwards;
|
||||
animation-delay: 0.15s;
|
||||
}
|
||||
@keyframes fadeIn {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
} */
|
||||
.title-text {
|
||||
color: white;
|
||||
text-align: center;
|
||||
|
|
@ -60,4 +83,39 @@ body {
|
|||
width: 100%;
|
||||
height: 60vh;
|
||||
}
|
||||
.proxy-frame {
|
||||
display: block;
|
||||
position: absolute;
|
||||
z-index: 1000;
|
||||
width: 100vw;
|
||||
height: 90vh;
|
||||
top: 10vh;
|
||||
border: none;
|
||||
background-color: #080808;
|
||||
transition: opacity 250ms ease-in-out
|
||||
}
|
||||
.top-bar {
|
||||
display: flex;
|
||||
justify-content: space-between;
|
||||
align-items: center;
|
||||
padding: 0 1rem;
|
||||
height: 10vh;
|
||||
background-color: #080808;
|
||||
color: white;
|
||||
position: fixed;
|
||||
top: 0;
|
||||
left: 0;
|
||||
width: 100vw;
|
||||
z-index: 100;
|
||||
transition: opacity 250ms ease-in-out;
|
||||
}
|
||||
.close-button {
|
||||
padding: 5px;
|
||||
padding-inline: 40px;
|
||||
border: none;
|
||||
background-color: #252525;
|
||||
color: #c7c7c7;
|
||||
border-radius: 15px;
|
||||
cursor: pointer;
|
||||
}
|
||||
</style>
|
||||
|
|
|
|||
|
|
@ -1,17 +1,14 @@
|
|||
---
|
||||
import Footer from "../components/Footer.astro";
|
||||
import Header from "../components/Header.astro";
|
||||
import Layout from "../layouts/Layout.astro";
|
||||
|
||||
---
|
||||
|
||||
<Layout title="404 | Alu">
|
||||
<Header></Header>
|
||||
<div class="main-content error-page">
|
||||
<h1>404!</h1>
|
||||
<p>The content you have requested could not be found!</p>
|
||||
</div>
|
||||
<Footer></Footer>
|
||||
</Layout>
|
||||
|
||||
<style>
|
||||
|
|
|
|||
|
|
@ -1,12 +1,10 @@
|
|||
---
|
||||
import Layout from "../layouts/Layout.astro";
|
||||
import Header from "../components/Header.astro";
|
||||
import Footer from "../components/Footer.astro";
|
||||
import GameItem from "../components/GameItem.astro";
|
||||
---
|
||||
|
||||
<Layout title="Games | Alu's Unblocker">
|
||||
<Header />
|
||||
<Layout title="Games | Alu">
|
||||
<h1 class="title-text">Games</h1>
|
||||
<div class="grid">
|
||||
<GameItem name="1v1.lol" image="/games/1v1.lol/logo.png"></GameItem>
|
||||
|
|
@ -62,7 +60,6 @@ import GameItem from "../components/GameItem.astro";
|
|||
<GameItem name="World's Hardest Game 2" image="/games/worlds-hardest-game-2/logo.png" slugName="worlds-hardest-game-2"></GameItem>
|
||||
<GameItem name="You are Bezos" image="/games/you-are-bezos/logo.png" slugName="you-are-bezos"></GameItem>
|
||||
</div>
|
||||
<Footer />
|
||||
</Layout>
|
||||
|
||||
<style>
|
||||
|
|
|
|||
|
|
@ -1,22 +1,17 @@
|
|||
---
|
||||
import Layout from '../layouts/Layout.astro';
|
||||
import Header from '../components/Header.astro';
|
||||
import Footer from '../components/Footer.astro';
|
||||
import UVRegistrar from '../components/UVRegistrar.astro';
|
||||
---
|
||||
|
||||
<Layout title="Alu's Unblocker">
|
||||
<Header></Header>
|
||||
<Layout title="Alu">
|
||||
<div class="main-content">
|
||||
<h1 id="title-text" class="title-text">Welcome to Alu</h1>
|
||||
<form>
|
||||
<input placeholder="Enter a URL...">
|
||||
</form>
|
||||
<p id="loading-content">Loading Content...</p>
|
||||
<h1 class="title-text">Welcome to Alu</h1>
|
||||
<form class="url-input-form" id="url-input-form">
|
||||
<input class="url-input" type="text" placeholder="Search...">
|
||||
<div id="loading-content">Loading...</div>
|
||||
</form>
|
||||
</div>
|
||||
<UVRegistrar></UVRegistrar>
|
||||
|
||||
<Footer></Footer>
|
||||
</Layout>
|
||||
|
||||
<style>
|
||||
|
|
@ -24,27 +19,44 @@ form {
|
|||
width: 30%;
|
||||
}
|
||||
|
||||
form > input {
|
||||
background-color: #393b3e;
|
||||
.title-text {
|
||||
font-size: 38px;
|
||||
}
|
||||
|
||||
.url-input-form {
|
||||
border: none;
|
||||
padding: 0;
|
||||
}
|
||||
|
||||
.url-input {
|
||||
display: block;
|
||||
background: transparent url("/img/search.svg") no-repeat 13px center;
|
||||
}
|
||||
|
||||
.url-input {
|
||||
background-color: #080808;
|
||||
color: #D8DEE9;
|
||||
border: 5px solid white;
|
||||
border: 3px solid white;
|
||||
border-radius: 30px;
|
||||
padding: 15px;
|
||||
width: 100%;
|
||||
text-align: center;
|
||||
transition: 400ms ease-out;
|
||||
outline: none;
|
||||
font-family: 'Varela Round', sans-serif;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
form > input::placeholder {
|
||||
.url-input::placeholder {
|
||||
color: #D8DEE9;
|
||||
}
|
||||
|
||||
#loading-content {
|
||||
color: white;
|
||||
padding: 3px;
|
||||
padding: 8px;
|
||||
position: relative;
|
||||
opacity: 0;
|
||||
transition: 250ms ease-in-out;
|
||||
text-align: center;
|
||||
}
|
||||
</style>
|
||||
|
|
@ -1,102 +0,0 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="en">
|
||||
<head>
|
||||
<meta charset="UTF-8">
|
||||
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
||||
<meta name="theme-color" content="#81A1C1">
|
||||
<title>Alu's Unblocker</title>
|
||||
<link rel="icon" href="./img/icon.svg">
|
||||
<link rel="apple-touch-icon" href="./apple-touch-icon.png"/>
|
||||
<link rel="manifest" href="/manifest.json">
|
||||
<script src="./js/site/loadScript.js"></script>
|
||||
<link rel="stylesheet" href="./css/index.css">
|
||||
<link rel="stylesheet" href="https://site-assets.fontawesome.com/releases/v6.4.2/css/all.css">
|
||||
<script>
|
||||
if (localStorage.getItem('windowCloak') == "1") {
|
||||
var x = window.open('')
|
||||
x.document.write(`<iframe src="${window.location.href}" style="position: absolute; top: 0; left: 0; right: 0; bottom: 0; width: 100%; height: 100%;"></iframe>`);
|
||||
x.document.write('<script src="./settings_frame.js">')
|
||||
window.close();
|
||||
}
|
||||
</script>
|
||||
</head>
|
||||
<body id="body" data-barba="wrapper">
|
||||
<script src="./js/site/toggles.js"></script>
|
||||
<script src="./js/site/main.js"></script>
|
||||
<script src="./js/site/header.js"></script>
|
||||
<script src="./js/site/themes.js"></script>
|
||||
<script src="/bundle.js" defer></script>
|
||||
<div id="main">
|
||||
<div class="top-header">
|
||||
<div id="title-background" class="title-background">
|
||||
<div class="left">
|
||||
<a href="/" class="header-item"> Alu</a>
|
||||
</div>
|
||||
<div class="right">
|
||||
<a href="/games/" class="header-item"><i class="fa-solid fa-gamepad-modern"></i> Games</a>
|
||||
<a href="/settings/" class="header-item"><i class="fa-solid fa-gear"></i> Settings</a>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="main-content" data-barba="container" data-barba-namespace="home">
|
||||
<h1 id="title-text" class="title-text">Welcome to Alu</h1>
|
||||
<form>
|
||||
<input placeholder="Enter a URL...">
|
||||
</form>
|
||||
<p id="loading-content">Loading Content...</p>
|
||||
</div>
|
||||
<script src="/uv/uv.bundle.js"></script>
|
||||
<script src="/uv/uv.config.js"></script>
|
||||
<script>
|
||||
const form = document.querySelector('form');
|
||||
const input = document.querySelector('input');
|
||||
|
||||
window.navigator.serviceWorker.register('/sw.js', {
|
||||
scope: __uv$config.prefix
|
||||
})
|
||||
|
||||
form.addEventListener('submit', (event) => {
|
||||
event.preventDefault();
|
||||
let url = input.value.trim();
|
||||
if (!isUrl(url)) url = 'https://www.google.com/search?q=' + url;
|
||||
else if (!(url.startsWith('https://') || url.startsWith('http://'))) url = 'http://' + url;
|
||||
document.getElementById('loading-content').style.opacity = "1"
|
||||
|
||||
window.location.href = __uv$config.prefix + __uv$config.encodeUrl(url);
|
||||
});
|
||||
|
||||
function isUrl(val = ''){
|
||||
if (/^http(s?):\/\//.test(val) || val.includes('.') && val.substr(0, 1) !== ' ') return true;
|
||||
return false;
|
||||
};
|
||||
</script>
|
||||
<div id="footer">
|
||||
<div class="footerflex">
|
||||
<div class="footerbrand">
|
||||
<h3><a href="/">Alu's Unblocker</a></h3>
|
||||
<p>Made with ❤️ by <a target="_black" href="https://wearr.dev">wearr</a></p>
|
||||
</div>
|
||||
<div class="footerlist">
|
||||
<h3>Services</h3>
|
||||
<ul>
|
||||
<li><a target="_blank" rel=”noopener noreferrer” href="https://github.com/titaniumnetwork-dev/Ultraviolet">Ultraviolet</a></li>
|
||||
<li><a target="_blank" rel=”noopener noreferrer” href="https://github.com/binary-person/rammerhead">Rammerhead</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="footerlist">
|
||||
<h3>Socials</h3>
|
||||
<ul>
|
||||
<li><a target="_blank" rel=”noopener noreferrer” href="https://github.com/titaniumnetwork-dev/Holy-Unblocker">GitHub</a></li>
|
||||
<div class="tooltip">
|
||||
<span class="tooltiptext" id="discord-tooltip">Copy</span>
|
||||
<li><a onclick="copyDiscord();" onmouseout="outFunc();" class="discord-text">Discord</a></li>
|
||||
</div>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
<p class="copyright">Alu's Unblocker © 2024</p>
|
||||
</div>
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
Loading…
Add table
Reference in a new issue