Fix Safari playback recovery and episode progress memory
This commit is contained in:
@@ -20,6 +20,7 @@ export interface AdminConfig {
|
||||
DanmakuSourceType?: 'builtin' | 'custom';
|
||||
DanmakuApiBase: string;
|
||||
DanmakuApiToken: string;
|
||||
DanmakuAutoLoadDefault?: boolean; // 是否默认自动加载弹幕(用户可在本地覆盖)
|
||||
// TMDB配置
|
||||
TMDBApiKey?: string;
|
||||
TMDBProxy?: string;
|
||||
|
||||
@@ -255,6 +255,7 @@ async function getInitConfig(configFile: string, subConfig: {
|
||||
process.env.DANMAKU_API_BASE ||
|
||||
(hasCustomDanmakuEnv ? 'http://localhost:9321' : BUILTIN_DANMAKU_API_BASE),
|
||||
DanmakuApiToken: process.env.DANMAKU_API_TOKEN || '87654321',
|
||||
DanmakuAutoLoadDefault: true,
|
||||
// TMDB配置
|
||||
TMDBApiKey: process.env.TMDB_API_KEY || '',
|
||||
TMDBProxy: process.env.TMDB_PROXY || '',
|
||||
@@ -450,6 +451,7 @@ export function configSelfCheck(adminConfig: AdminConfig): AdminConfig {
|
||||
DanmakuSourceType: 'builtin',
|
||||
DanmakuApiBase: BUILTIN_DANMAKU_API_BASE,
|
||||
DanmakuApiToken: '87654321',
|
||||
DanmakuAutoLoadDefault: true,
|
||||
PansouApiUrl: '',
|
||||
PansouUsername: '',
|
||||
PansouPassword: '',
|
||||
@@ -482,6 +484,9 @@ export function configSelfCheck(adminConfig: AdminConfig): AdminConfig {
|
||||
if (!adminConfig.SiteConfig.DanmakuApiToken) {
|
||||
adminConfig.SiteConfig.DanmakuApiToken = '87654321';
|
||||
}
|
||||
if (adminConfig.SiteConfig.DanmakuAutoLoadDefault === undefined) {
|
||||
adminConfig.SiteConfig.DanmakuAutoLoadDefault = true;
|
||||
}
|
||||
// 确保评论开关存在
|
||||
if (adminConfig.SiteConfig.EnableComments === undefined) {
|
||||
adminConfig.SiteConfig.EnableComments = false;
|
||||
|
||||
+15
-4
@@ -787,9 +787,21 @@ export async function savePlayRecord(
|
||||
body: JSON.stringify({ key, record }),
|
||||
});
|
||||
} catch (err) {
|
||||
await handleDatabaseOperationFailure('playRecords', err);
|
||||
triggerGlobalError('保存播放记录失败');
|
||||
throw err;
|
||||
// 播放记录以用户体验为优先:保留已经写入的本地缓存,避免切集后记忆进度被回滚。
|
||||
console.warn('同步播放记录到数据库失败,保留本地缓存:', err);
|
||||
|
||||
// 后台再尝试补一次,不打断当前播放流程。
|
||||
window.setTimeout(() => {
|
||||
fetchWithAuth('/api/playrecords', {
|
||||
method: 'POST',
|
||||
headers: {
|
||||
'Content-Type': 'application/json',
|
||||
},
|
||||
body: JSON.stringify({ key, record }),
|
||||
}).catch((retryErr) => {
|
||||
console.warn('播放记录后台重试失败:', retryErr);
|
||||
});
|
||||
}, 3000);
|
||||
}
|
||||
return;
|
||||
}
|
||||
@@ -2245,4 +2257,3 @@ export async function saveEpisodeFilterConfig(
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user