Refactor network.patchIceCandidates()

This commit is contained in:
redphx 2024-04-27 17:36:13 +07:00
parent 2469fbde96
commit c7be90abe7

View File

@ -102,10 +102,6 @@ function updateIceCandidates(candidates: any, options: any) {
async function patchIceCandidates(request: Request, consoleAddrs?: {[index: string]: number}) { async function patchIceCandidates(request: Request, consoleAddrs?: {[index: string]: number}) {
// ICE server candidates
const url = (typeof request === 'string') ? request : request.url;
if (url && url.endsWith('/ice') && url.includes('/sessions/') && request.method === 'GET') {
const response = await NATIVE_FETCH(request); const response = await NATIVE_FETCH(request);
const text = await response.clone().text(); const text = await response.clone().text();
@ -127,9 +123,6 @@ async function patchIceCandidates(request: Request, consoleAddrs?: {[index: stri
response.text = () => Promise.resolve(JSON.stringify(obj)); response.text = () => Promise.resolve(JSON.stringify(obj));
return response; return response;
}
return null;
} }
@ -282,9 +275,11 @@ class XhomeInterceptor {
return XhomeInterceptor.#handleLogin(request); return XhomeInterceptor.#handleLogin(request);
} else if (url.endsWith('/titles')) { } else if (url.endsWith('/titles')) {
return XhomeInterceptor.#handleTitles(request); return XhomeInterceptor.#handleTitles(request);
} else if (url && url.endsWith('/ice') && url.includes('/sessions/') && (request as Request).method === 'GET') {
return patchIceCandidates(request, XhomeInterceptor.#consoleAddrs);
} }
return await patchIceCandidates(request, XhomeInterceptor.#consoleAddrs) || NATIVE_FETCH(request); return await NATIVE_FETCH(request);
} }
} }
@ -479,12 +474,6 @@ class XcloudInterceptor {
static async handle(request: RequestInfo | URL, init?: RequestInit) { static async handle(request: RequestInfo | URL, init?: RequestInit) {
let url = (typeof request === 'string') ? request : (request as Request).url; let url = (typeof request === 'string') ? request : (request as Request).url;
// ICE server candidates
const patchedIpv6 = await patchIceCandidates(request as Request);
if (patchedIpv6) {
return patchedIpv6;
}
// Server list // Server list
if (url.endsWith('/v2/login/user')) { if (url.endsWith('/v2/login/user')) {
return XcloudInterceptor.#handleLogin(request, init); return XcloudInterceptor.#handleLogin(request, init);
@ -498,6 +487,8 @@ class XcloudInterceptor {
return XcloudInterceptor.#handleCatalog(request, init); return XcloudInterceptor.#handleCatalog(request, init);
} else if (url.includes('/v2/titles') || url.includes('/mru')) { } else if (url.includes('/v2/titles') || url.includes('/mru')) {
return XcloudInterceptor.#handleTitles(request, init); return XcloudInterceptor.#handleTitles(request, init);
} else if (url && url.endsWith('/ice') && url.includes('/sessions/') && (request as Request).method === 'GET') {
return patchIceCandidates(request as Request);
} }
return NATIVE_FETCH(request, init); return NATIVE_FETCH(request, init);