This commit is contained in:
Dean @ Skool
2024-01-05 12:22:13 -05:00
8 changed files with 36 additions and 26 deletions
+9 -6
View File
@@ -8,7 +8,7 @@
<link rel="stylesheet" href="/assets/css/main.css">
<title>404 Error | Polaris</title>
<title>Loading... | Polaris</title>
</head>
<body>
@@ -20,11 +20,10 @@
</p>
</div>
<script src="/uv/uv.bundle.js"></script>
<script src="/uv/uv.config.js"></script>
<script type="module">
import { loadProxyWorker } from '/assets/js/utils.js';
import { loadProxyWorker, storage } from '/assets/js/utils.js';
const settingsStorage = storage('settings');
try { document.body.dataset.theme = JSON.parse(localStorage.getItem('settings')).theme || 'system-default'; }
catch {
@@ -34,12 +33,16 @@
}));
}
loadProxyWorker('uv')
if (location.pathname.slice(1).startsWith(settingsStorage.get('proxy') || 'uv')) loadProxyWorker(settingsStorage.get('proxy') || 'uv')
.then(e => location.reload())
.catch(e => {
document.querySelector('h1').textContent = 'Error';
document.querySelector('p').textContent = 'Failed to load proxy';
});
else {
document.documentElement.innerHTML = await (await fetch('/404')).text();
await import('/assets/js/main.js');
}
</script>
<!--el:{{mode === 'dev'}}:development-->
+2 -1
View File
@@ -275,7 +275,8 @@ app.get('/asset/:token', async (req, res, next) => {
}
});
app.get('/uv/service/*', async (req, res) => res.end(await rewriter.html(fs.readFileSync(path.join(__dirname, '../pages/uv_404.html')))));
app.get('/uv/service/*', async (req, res) => res.end(await rewriter.html(fs.readFileSync(path.join(__dirname, '../pages/proxy_404.html')))));
app.get('/dynamic/service/*', async (req, res) => res.end(await rewriter.html(fs.readFileSync(path.join(__dirname, '../pages/proxy_404.html')))));
app.use(async (req, res, next) => {
if (req.path === '/index') res.redirect('/');
+1 -2
View File
@@ -10,8 +10,8 @@ body[data-theme='dark'] {
--scrollbar-color: #ffffff59;
--solid: #1b2735;
--hover: #757575;
background: radial-gradient(at center bottom, rgb(27, 39, 53) 0%, rgb(9, 10, 15) 100%);
;
background-repeat: no-repeat;
}
@@ -247,7 +247,6 @@ body[data-theme='violet'] {
--solid: #1b2735;
--hover: #757575;
background: radial-gradient(at center bottom, rgb(27, 39, 53) 0%, rgb(9, 10, 15) 100%);
;
background-repeat: no-repeat;
}
}
+4
View File
@@ -50,6 +50,10 @@ class Settings {
});
}
document.querySelector('#proxy_select').addEventListener('change', () => settingsStorage.set('proxy', document.querySelector('#proxy_select').value));
if (settingsStorage.get('proxy')) document.querySelector('#proxy_select').value = settingsStorage.get('proxy');
fetch('/assets/JSON/cloaks.json').then(res => res.json()).then(cloaks => {
document.querySelector('#cloak_select').addEventListener('change', () => {
if (document.querySelector('#cloak_select').value == 'custom') {
+4 -3
View File
@@ -1,6 +1,7 @@
import { loadProxyWorker, encoder } from './utils.js';
import { loadProxyWorker, encoder, storage } from './utils.js';
const params = new URLSearchParams(location.search);
const settingsStorage = storage('settings');
window.history.replaceState({}, '', location.pathname);
@@ -14,9 +15,9 @@ if (params.get('load')) {
sessionStorage.setItem('loaddata', JSON.stringify(parsedData));
if (parsedData.proxied) {
await loadProxyWorker('uv');
await loadProxyWorker(settingsStorage.get('proxy') || 'uv');
document.querySelector('#loadframe').src = '/uv/service/' + encoder['xor'].encode(parsedData.target);
document.querySelector('#loadframe').src = `/${settingsStorage.get('proxy') || 'uv'}/service/${encoder['xor'].encode(parsedData.target)}`;
} else document.querySelector('#loadframe').src = parsedData.target;
document.querySelector('#loadframe').addEventListener('load', () => {
+4 -4
View File
@@ -1,16 +1,16 @@
self.__dynamic$config = {
prefix: '/service/',
prefix: '/dynamic/service/',
encoding: 'xor',
mode: 'production',
logLevel: 0,
bare: {
version: 2,
path: '/bare/',
path: '/bare/'
},
tab: {
title: 'Service',
icon: null,
ua: null,
ua: null
},
assets: {
prefix: '/dynamic/',
@@ -19,7 +19,7 @@ self.__dynamic$config = {
client: 'dynamic.client.js',
worker: 'dynamic.worker.js',
config: 'dynamic.config.js',
inject: null,
inject: null
}
},
block: [
+4 -8
View File
@@ -1,13 +1,9 @@
importScripts('/dynamic/dynamic.config.js');
importScripts('/dynamic/dynamic.worker.js');
const dynamic = new Dynamic();
const sw = new Dynamic();
self.dynamic = dynamic;
self.addEventListener('fetch', event => {
event.respondWith((async function () {
if (await dynamic.route(event)) return await dynamic.fetch(event);
return await fetch(event.request);
})());
self.addEventListener('fetch', async (event) => {
/*if (await sw.route(event)) */event.respondWith(sw.fetch(event));
//else event.respondWith(fetch(event.request));
});
+8 -2
View File
@@ -7,8 +7,7 @@
<h3>Panic Key</h3>
<input class="settings-input" type="text" name="Panic Key" id="panic_key" value="Click and press any key"
readonly />
<input class="settings-input" type="text" name="Panic Key" id="panic_key" value="Click and press any key" readonly />
<button class="settings-button" id="reset_panic">Reset</button>
<br>
@@ -47,6 +46,13 @@
<input class="settings-input" type="text" placeholder="eg: google.com" id="domain" />
</div>
<h3>Proxy</h3>
<select id="proxy_select">
<option value="uv">Ultraviolet</option>
<option value="dynamic" disabled>Dynamic</option>
</select>
<h2>Export/Import Data</h2>
<p>Coming soon!</p>