From 24b3335e3be4da7852fba88c7019291d0130cc76 Mon Sep 17 00:00:00 2001
From: mtvpls
Date: Sun, 17 May 2026 16:02:59 +0800
Subject: [PATCH] =?UTF-8?q?=E5=A4=B8=E5=85=8B=E5=A2=9E=E5=8A=A0=E5=A4=9A?=
=?UTF-8?q?=E7=BA=BF=E7=A8=8B=E6=92=AD=E6=94=BE?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/app/admin/page.tsx | 24 ++
src/app/api/admin/netdisk/route.ts | 1 +
src/app/api/netdisk/quark/proxy/route.ts | 368 ++++++++++++---------
src/lib/admin.types.ts | 1 +
src/lib/config.ts | 5 +
src/lib/netdisk/quark-multithread-proxy.ts | 179 ++++++++++
src/lib/netdisk/quark-session-cache.ts | 9 +-
src/lib/netdisk/quark-session-resolver.ts | 1 +
src/lib/netdisk/quark.client.ts | 40 +++
9 files changed, 466 insertions(+), 162 deletions(-)
create mode 100644 src/lib/netdisk/quark-multithread-proxy.ts
diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx
index 07955f0..8dda348 100644
--- a/src/app/admin/page.tsx
+++ b/src/app/admin/page.tsx
@@ -3937,6 +3937,7 @@ const NetDiskConfigComponent = ({
const [cookie, setCookie] = useState('');
const [savePath, setSavePath] = useState('/');
const [quarkPlayMode, setQuarkPlayMode] = useState<'direct_first' | 'transcode_first'>('transcode_first');
+ const [quarkMultiThreadPlayback, setQuarkMultiThreadPlayback] = useState(false);
const [mobileEnabled, setMobileEnabled] = useState(false);
const [mobileAuthorization, setMobileAuthorization] = useState('');
const [baiduEnabled, setBaiduEnabled] = useState(false);
@@ -3961,6 +3962,7 @@ const NetDiskConfigComponent = ({
setCookie(quark?.Cookie || '');
setSavePath(quark?.SavePath || '/');
setQuarkPlayMode(quark?.PlayMode === 'direct_first' ? 'direct_first' : 'transcode_first');
+ setQuarkMultiThreadPlayback(Boolean(quark?.MultiThreadPlayback));
setMobileEnabled(mobile?.Enabled || false);
setMobileAuthorization(mobile?.Authorization || '');
setBaiduEnabled(config?.NetDiskConfig?.Baidu?.Enabled || false);
@@ -3991,6 +3993,7 @@ const NetDiskConfigComponent = ({
Cookie: cookie,
SavePath: savePath,
PlayMode: quarkPlayMode,
+ MultiThreadPlayback: quarkMultiThreadPlayback,
},
Mobile: {
Enabled: mobileEnabled,
@@ -4327,6 +4330,27 @@ const NetDiskConfigComponent = ({
+
+
+
+ 多线程播放
+
+
+ 开启后,代理会把播放器请求的 Range 拆分并发拉取。
+
+
+
+
+