Improve how aero is used

This commit is contained in:
Ryan Wilson
2024-09-24 11:39:37 -04:00
parent 24d80b34e0
commit bb725fcf54
6 changed files with 104 additions and 20 deletions
+29
View File
@@ -0,0 +1,29 @@
import fs from 'fs'
import { notFound } from 'next/navigation'
import { NextRequest } from 'next/server'
export async function GET(_req: NextRequest, { params }: { params: { uv: string } }) {
const requestedFile = params.uv
if (requestedFile === 'aero.config.js') {
const file = fs.readFileSync(process.cwd() + `/src/lib/aero/${requestedFile}`)
const fileBlob = new Blob([file])
return new Response(fileBlob, {
headers: {
'Content-Type': 'application/javascript'
}
})
} else {
try {
const res = await fetch(`https://unpkg.com/browse/aero-proxy@0.0.3/dist/${requestedFile}`)
const file = await res.text()
const fileBlob = new Blob([file])
return new Response(fileBlob, {
headers: {
'Content-Type': 'application/javascript'
}
})
} catch {
notFound()
}
}
}
+22 -9
View File
@@ -22,15 +22,27 @@ export default function Route({ params }: { params: { route: string[] } }) {
useEffect(() => {
if ('serviceWorker' in navigator) {
navigator.serviceWorker
.register('/uv/sw.js', {
scope: '/uv/service'
})
.then(() => {
if (ref.current) {
ref.current.src = '/uv/service/' + encodeXor(formatSearch(atob(decodeURIComponent(route))))
}
})
if (localStorage.getItem("defaultProxy") === "aero")
navigator.serviceWorker
.register('/aero/sw.aero.js', {
scope: '/aero/service'
})
.then(() => {
if (ref.current) {
ref.current.src = '/aero/service/' + formatSearch(atob(decodeURIComponent(route)))
}
})
else {
navigator.serviceWorker
.register('/uv/sw.js', {
scope: '/uv/service'
})
.then(() => {
if (ref.current) {
ref.current.src = '/uv/service/' + encodeXor(formatSearch(atob(decodeURIComponent(route))))
}
})
}
}
}, [])
@@ -39,6 +51,7 @@ export default function Route({ params }: { params: { route: string[] } }) {
if (!ref.current || !ref.current.contentWindow) return
const contentWindow = ref.current.contentWindow as ContentWindow
if (!('__uv$location' in contentWindow)) return
if (!('aeroConfig' in contentWindow)) return
const shortcuts: any[] = store('shortcuts')
if (shortcuts.some((value) => value.url == contentWindow.__uv$location.href)) {
+3 -3
View File
@@ -4,8 +4,8 @@ import { NextRequest } from 'next/server'
export async function GET(_req: NextRequest, { params }: { params: { uv: string } }) {
const requestedFile = params.uv
if (requestedFile === 'uv.config.js') {
const file = fs.readFileSync(process.cwd() + `/src/lib/uv/${requestedFile}`)
if (requestedFile === 'aero.config.js') {
const file = fs.readFileSync(process.cwd() + `/src/lib/aero/${requestedFile}`)
const fileBlob = new Blob([file])
return new Response(fileBlob, {
headers: {
@@ -14,7 +14,7 @@ export async function GET(_req: NextRequest, { params }: { params: { uv: string
})
} else {
try {
const res = await fetch(`https://unpkg.com/@titaniumnetwork-dev/ultraviolet@2.0.0/dist/${requestedFile}`)
const res = await fetch(`https://unpkg.com/browse/aero-proxy@0.0.3/dist/${requestedFile}`)
const file = await res.text()
const fileBlob = new Blob([file])
return new Response(fileBlob, {