improvements to proxy

This commit is contained in:
WardPearce
2026-02-16 20:42:40 +13:00
parent 0f2ce258bb
commit 8a19040294
9 changed files with 37 additions and 22 deletions
+2 -2
View File
@@ -7,8 +7,8 @@ android {
applicationId "us.materialio.app"
minSdkVersion rootProject.ext.minSdkVersion
targetSdkVersion rootProject.ext.targetSdkVersion
versionCode 213
versionName "1.15.5"
versionCode 214
versionName "1.15.6"
testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner"
aaptOptions {
// Files and dirs to omit from the packaged assets dir, modified to accommodate modern web apps.
@@ -78,7 +78,11 @@
<release version="1.15.5" date="2026-2-16">
<release version="1.15.6" date="2026-2-16">
<url>https://github.com/Materialious/Materialious/releases/tag/1.15.6</url>
</release>
<release version="1.15.5" date="2026-2-16">
<url>https://github.com/Materialious/Materialious/releases/tag/1.15.5</url>
</release>
<release version="1.15.4" date="2026-2-16">
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "Materialious",
"version": "1.15.5",
"version": "1.15.6",
"description": "Modern material design for YouTube and Invidious.",
"author": {
"name": "Ward Pearce",
+1 -1
View File
@@ -1,6 +1,6 @@
{
"name": "materialious",
"version": "1.15.5",
"version": "1.15.6",
"private": true,
"scripts": {
"dev": "npm run patch:github && vite dev",
@@ -61,6 +61,8 @@ export async function parseChannelRSS(channelId: string): Promise<void> {
const feedUrl = `https://www.youtube.com/feeds/videos.xml?channel_id=${channelId}`;
const response = await fetch(feedUrl);
if (!response.ok) return;
const text = await response.text();
const parser = new DOMParser();
+1 -1
View File
@@ -342,7 +342,7 @@ export const engineCooldownYTStore: Writable<number> = persist(
'engineCooldownYT'
);
export const engineMaxConcurrentChannelsStore: Writable<number> = persist(
writable(100),
writable(50),
createStorage(),
'engineMaxConcurrentChannels'
);
@@ -32,13 +32,6 @@ for (const dynamicDomain of dynamicAllowDomainsEnvVars) {
}
}
function copyHeader(headerName: string, to: Headers, from: Headers) {
const hdrVal = from.get(headerName);
if (hdrVal) {
to.set(headerName, hdrVal);
}
}
async function proxyRequest(
request: Request,
urlToProxy: string,
@@ -80,13 +73,23 @@ async function proxyRequest(
}
}
const requestHeaders = new Headers();
const requestHeaders = new Headers(request.headers);
for (const key of [
'referer',
'x-forwarded-for',
'x-requested-with',
'sec-ch-ua-mobile',
'sec-ch-ua',
'sec-ch-ua-platform',
'content-length'
]) {
requestHeaders.delete(key);
}
requestHeaders.set('host', urlToProxyObj.host);
requestHeaders.set('origin', urlToProxyObj.origin);
requestHeaders.set('user-agent', USER_AGENT);
copyHeader('range', requestHeaders, request.headers);
const requestOptions: RequestInit = {
method: request.method,
headers: requestHeaders,
@@ -104,11 +107,17 @@ async function proxyRequest(
body = request.body;
}
const response = await fetch(urlToProxy, { ...requestOptions, body });
const responseBody = await response.blob();
const response = await fetch(urlToProxyObj.toString(), { ...requestOptions, body });
return new Response(responseBody, {
status: response.status
const responseHeaders = new Headers(response.headers);
responseHeaders.set('transfer-encoding', 'chunked');
responseHeaders.delete('content-encoding');
responseHeaders.set('access-control-allow-origin', request.headers.get('origin') ?? '');
responseHeaders.set('timing-allow-origin', request.headers.get('origin') ?? '');
return new Response(response.body, {
status: response.status,
headers: responseHeaders
});
}
File diff suppressed because one or more lines are too long
+1 -1
View File
@@ -3,7 +3,7 @@ import os
import re
from datetime import datetime
LATEST_VERSION = "1.15.5"
LATEST_VERSION = "1.15.6"
RELEASE_DATE = datetime.now().strftime("%Y-%-m-%d") # Format: YYYY-M-D
WORKING_DIR = os.path.join(os.path.dirname(os.path.realpath(__file__)), "materialious")