improvements to proxy
This commit is contained in:
@@ -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,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,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();
|
||||
|
||||
@@ -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
@@ -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")
|
||||
|
||||
Reference in New Issue
Block a user