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 拆分并发拉取。 +

+
+ +
+