From a698c6b4939088cb072ed3c21d539912eaa52e45 Mon Sep 17 00:00:00 2001
From: mtvpls
Date: Thu, 1 Jan 2026 20:57:44 +0800
Subject: [PATCH] =?UTF-8?q?=E7=A7=81=E4=BA=BA=E5=BD=B1=E5=BA=93=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E6=89=AB=E6=8F=8F=E6=A8=A1=E5=BC=8F?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
src/app/admin/page.tsx | 22 ++++++++++++
src/app/api/admin/openlist/route.ts | 4 ++-
src/lib/admin.types.ts | 1 +
src/lib/openlist-refresh.ts | 53 ++++++++++++++++++++---------
4 files changed, 62 insertions(+), 18 deletions(-)
diff --git a/src/app/admin/page.tsx b/src/app/admin/page.tsx
index 6902521..c1125ba 100644
--- a/src/app/admin/page.tsx
+++ b/src/app/admin/page.tsx
@@ -2766,6 +2766,7 @@ const OpenListConfigComponent = ({
const [rootPath, setRootPath] = useState('/');
const [offlineDownloadPath, setOfflineDownloadPath] = useState('/');
const [scanInterval, setScanInterval] = useState(0);
+ const [scanMode, setScanMode] = useState<'torrent' | 'name' | 'hybrid'>('hybrid');
const [videos, setVideos] = useState([]);
const [refreshing, setRefreshing] = useState(false);
const [scanProgress, setScanProgress] = useState<{
@@ -2785,6 +2786,7 @@ const OpenListConfigComponent = ({
setRootPath(config.OpenListConfig.RootPath || '/');
setOfflineDownloadPath(config.OpenListConfig.OfflineDownloadPath || '/');
setScanInterval(config.OpenListConfig.ScanInterval || 0);
+ setScanMode(config.OpenListConfig.ScanMode || 'hybrid');
}
}, [config]);
@@ -2825,6 +2827,7 @@ const OpenListConfigComponent = ({
RootPath: rootPath,
OfflineDownloadPath: offlineDownloadPath,
ScanInterval: scanInterval,
+ ScanMode: scanMode,
}),
});
@@ -3151,6 +3154,25 @@ const OpenListConfigComponent = ({
+
+
+
+
+ 混合模式:先用种子库匹配,失败后降级为名字匹配
+
+
+