fix uv and dynamic dual support
This commit is contained in:
@@ -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"
|
||||
}
|
||||
]
|
||||
|
||||
@@ -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"
|
||||
}
|
||||
]
|
||||
@@ -255,7 +255,7 @@ button:hover {
|
||||
|
||||
.slider:before {
|
||||
position: absolute;
|
||||
content: "";
|
||||
content: '';
|
||||
height: 2.6vh;
|
||||
width: 2.6vh;
|
||||
left: 0.4vh;
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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', () => {
|
||||
|
||||
@@ -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({
|
||||
|
||||
@@ -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)}`;
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -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
@@ -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
|
||||
};
|
||||
@@ -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,7 +1,7 @@
|
||||
// See documentation for more information
|
||||
|
||||
self.__dynamic$config = {
|
||||
prefix: '/dynamic/service/',
|
||||
prefix: '/service/',
|
||||
encoding: 'xor',
|
||||
mode: 'production',
|
||||
logLevel: 0,
|
||||
|
||||
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user