fix uv and dynamic dual support

This commit is contained in:
ashtom
2023-10-14 23:14:29 -04:00
parent ddf41558a2
commit d12f783053
12 changed files with 55 additions and 68 deletions
+22 -2
View File
@@ -1,12 +1,32 @@
[
{
"name": "Tiktok",
"image": "/assets/img/tiktok.png",
"source": "/service/hvtrs8%2F-wuw%2Ctkkvoi.aoo%2Fgn-"
},
{
"name": "Twitch",
"image": "/assets/img/twitch.png",
"source": "/uv/service/hvtrs8%2F-wuw%2Ctuivcj.vv-"
"source": "/service/hvtrs8%2F-wuw%2Ctuivcj.vv-"
},
{
"name": "Twitter",
"image": "/assets/img/twitter.png",
"source": "/service/hvtrs8%2F-tuivtgr%2Ccmm-"
},
{
"name": "Youtube",
"image": "/assets/img/youtube.png",
"source": "/uv/service/hvtrs8%2F-wuw%2Cymuvu%60e%2Ccmm-"
"source": "/service/hvtrs8%2F-wuw%2Cymuvu%60e%2Ccmm-"
},
{
"name": "Spotify",
"image": "/assets/img/spotify.png",
"source": "/service/hvtrs8%2F-orel.qpmtkf%7B.aoo%2F"
},
{
"name": "GeForce Now",
"image": "/assets/img/gnow.png",
"source": "/service/hvtrs8%2F-pna%7B.eedopcgnmw%2Ccmm-mcln%2F"
}
]
-32
View File
@@ -1,32 +0,0 @@
[
{
"name": "Tiktok",
"image": "/assets/img/tiktok.png",
"source": "/service/hvtrs8%2F-wuw%2Ctkkvoi.aoo%2Fgn-"
},
{
"name": "Twitch",
"image": "/assets/img/twitch.png",
"source": "/service/hvtrs8%2F-wuw%2Ctuivcj.vv-"
},
{
"name": "Twitter",
"image": "/assets/img/twitter.png",
"source": "/service/hvtrs8%2F-tuivtgr%2Ccmm-"
},
{
"name": "Youtube",
"image": "/assets/img/youtube.png",
"source": "/service/hvtrs8%2F-wuw%2Cymuvu%60e%2Ccmm-"
},
{
"name": "Spotify",
"image": "/assets/img/spotify.png",
"source": "/service/hvtrs8%2F-orel.qpmtkf%7B.aoo%2F"
},
{
"name": "GeForce Now",
"image": "/assets/img/gnow.png",
"source": "/service/hvtrs8%2F-pna%7B.eedopcgnmw%2Ccmm-mcln%2F"
}
]
+1 -1
View File
@@ -255,7 +255,7 @@ button:hover {
.slider:before {
position: absolute;
content: "";
content: '';
height: 2.6vh;
width: 2.6vh;
left: 0.4vh;
+2 -4
View File
@@ -1,5 +1,5 @@
import PolarisError from './error.js';
import { workerLoaded, loadWorker, chosenProxy } from './wpm.js';
import { workerLoaded, loadWorker } from './wpm.js';
const tiltEffectSettings = {
max: 8, // max tilt rotation (degrees (deg))
@@ -14,11 +14,9 @@ const load = () => {
apps.forEach(app => {
const el = document.createElement('div');
el.classList = 'app';
el.innerHTML = `<img src="${app.image}"><h3>${app.name}</h3>`;
el.innerHTML = `<img src='${app.image}'><h3>${app.name}</h3>`;
document.querySelector('.apps').appendChild(el);
//if (app.source.startsWith('/service')) app.source = `/${chosenProxy}${app.source}`;
el.addEventListener('click', async () => {
if (!workerLoaded) await loadWorker();
localStorage.setItem('frameData', JSON.stringify({
+1 -1
View File
@@ -13,7 +13,7 @@ const load = () => {
cheats.forEach(cheat => {
const el = document.createElement('div');
el.classList = 'game';
el.innerHTML = `<img src="${cheat.image}"><h3>${cheat.name}</h3>`;
el.innerHTML = `<img src='${cheat.image}'><h3>${cheat.name}</h3>`;
document.querySelector('.games').appendChild(el);
el.addEventListener('click', () => {
+2 -4
View File
@@ -1,5 +1,5 @@
import PolarisError from './error.js';
import { workerLoaded, loadWorker, chosenProxy } from './wpm.js';
import { workerLoaded, loadWorker } from './wpm.js';
const tiltEffectSettings = {
max: 8, // max tilt rotation (degrees (deg))
@@ -44,11 +44,9 @@ function renderGames(gamesToRender) {
gamesToRender.forEach(game => {
const el = document.createElement('div');
el.classList = 'game';
el.innerHTML = `<img loading="lazy" src="${game.image}"><h3>${game.name}</h3>`;
el.innerHTML = `<img loading='lazy' src='${game.image}'><h3>${game.name}</h3>`;
gamesContainer.appendChild(el);
if (game.source.startsWith('/service')) game.source = `/${chosenProxy}${game.source}`;
el.addEventListener('click', async () => {
if (!workerLoaded) await loadWorker();
localStorage.setItem('frameData', JSON.stringify({
+2 -2
View File
@@ -1,4 +1,4 @@
import { workerLoaded, loadWorker, chosenProxy } from './wpm.js';
import { workerLoaded, loadWorker } from './wpm.js';
const load = () => {
let xor = {
@@ -27,7 +27,7 @@ const load = () => {
((!query.value.startsWith('http://') && !query.value.startsWith('https://')) ? 'https://' + query.value : query.value) :
'https://www.google.com/search?q=' + encodeURIComponent(query.value);
location.href = `/${chosenProxy}/service/${xor.encode(url)}`;
location.href = `/service/${xor.encode(url)}`;
});
}
+9 -9
View File
@@ -24,8 +24,8 @@ class Settings {
document.querySelector('#domain').addEventListener('input', () => {
if (document.querySelector('#domain').value) {
this.set('cloak_website', document.querySelector('#domain').value);
document.querySelector('link[rel="shortcut icon"]').href = 'https://www.google.com/s2/favicons?domain=' + document.querySelector('#domain').value;
} else document.querySelector('link[rel="shortcut icon"]').href = '/favicon.ico';
document.querySelector('link[rel=\'shortcut icon\']').href = 'https://www.google.com/s2/favicons?domain=' + document.querySelector('#domain').value;
} else document.querySelector('link[rel=\'shortcut icon\']').href = '/favicon.ico';
});
if (this.get('cloak_title')) {
@@ -35,12 +35,12 @@ class Settings {
if (this.get('cloak_website')) {
document.querySelector('#domain').value = this.get('cloak_website');
document.querySelector('link[rel="shortcut icon"]').href = 'https://www.google.com/s2/favicons?domain=' + this.get('cloak_website');
document.querySelector('link[rel=\'shortcut icon\']').href = 'https://www.google.com/s2/favicons?domain=' + this.get('cloak_website');
}
} else fetch('/assets/JSON/cloaks.json').then(res => res.json()).then(cloaks => {
if (cloaks[this.get('cloak')]) {
document.title = cloaks[this.get('cloak')].title;
document.querySelector('link[rel="shortcut icon"]').href = cloaks[this.get('cloak')].icon;
document.querySelector('link[rel=\'shortcut icon\']').href = cloaks[this.get('cloak')].icon;
} else if (this.get('cloak') !== 'none') new PolarisError(`The cloak ${this.get('cloak')} does not exist`);
});
}
@@ -61,19 +61,19 @@ class Settings {
document.querySelector('#domain').addEventListener('input', () => {
if (document.querySelector('#domain').value) {
this.set('cloak_website', document.querySelector('#domain').value);
document.querySelector('link[rel="shortcut icon"]').href = 'https://www.google.com/s2/favicons?domain=' + document.querySelector('#domain').value;
} else document.querySelector('link[rel="shortcut icon"]').href = '/favicon.ico';
document.querySelector('link[rel=\'shortcut icon\']').href = 'https://www.google.com/s2/favicons?domain=' + document.querySelector('#domain').value;
} else document.querySelector('link[rel=\'shortcut icon\']').href = '/favicon.ico';
});
} else if (document.querySelector('#cloak_select').value == 'none') {
this.set('cloak', document.querySelector('#cloak_select').value);
document.title = 'Polaris';
document.querySelector('link[rel="shortcut icon"]').href = '/favicon.ico';
document.querySelector('link[rel=\'shortcut icon\']').href = '/favicon.ico';
document.querySelector('#custom_cloak').classList.add('hidden');
} else {
if (cloaks[document.querySelector('#cloak_select').value]) {
document.title = cloaks[document.querySelector('#cloak_select').value].title;
document.querySelector('link[rel="shortcut icon"]').href = cloaks[document.querySelector('#cloak_select').value].icon;
document.querySelector('link[rel=\'shortcut icon\']').href = cloaks[document.querySelector('#cloak_select').value].icon;
this.set('cloak', document.querySelector('#cloak_select').value);
} else new PolarisError(`The cloak ${document.querySelector('#cloak_select').value} does not exist`);
@@ -127,7 +127,7 @@ class Settings {
window.history.pushState({}, '', '#settings');
}
document.querySelectorAll('[data-attr="sidebar_trigger"]').forEach(el => {
document.querySelectorAll('[data-attr=\'sidebar_trigger\']').forEach(el => {
el.addEventListener('click', (e) => {
if (document.querySelector('.sidebar').classList.contains('active')) {
document.querySelector('.sidebar').classList.remove('active');
+14 -10
View File
@@ -1,21 +1,25 @@
let workerLoaded = false;
let chosenProxy = 'uv'; // 'dynamic';
let chosenProxy = 'uv'; // 'uv' or 'dynamic';
let loadWorker = async () => {
let loadWorker = async (worker) => {
let allWorkers = await navigator.serviceWorker.getRegistrations();
allWorkers.forEach(worker => worker.unregister());
await navigator.serviceWorker.register(`/${chosenProxy}-sw.js`, {
scope: `/${chosenProxy}/service`,
});
}
allWorkers.forEach(worker => {
if (!worker.active?.scriptURL?.includes(chosenProxy)) worker.unregister();
});
await navigator.serviceWorker.register(`/${worker || chosenProxy}-sw.js`, {
scope: `/service/`,
});
};t
(async () => {
await loadWorker();
workerLoaded = true;
})();
window.loadWorker = loadWorker;
export {
workerLoaded,
loadWorker,
chosenProxy
}
loadWorker
};
-1
View File
@@ -8,7 +8,6 @@ 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);
})());
});
+1 -1
View File
@@ -1,7 +1,7 @@
// See documentation for more information
self.__dynamic$config = {
prefix: '/dynamic/service/',
prefix: '/service/',
encoding: 'xor',
mode: 'production',
logLevel: 0,
+1 -1
View File
@@ -1,7 +1,7 @@
// This file overwrites the stock UV config.js
self.__uv$config = {
prefix: "/uv/service/",
prefix: "/service/",
bare: "/bare/",
encodeUrl: Ultraviolet.codec.xor.encode,
decodeUrl: Ultraviolet.codec.xor.decode,