增加电视直播刷新间隔配置

This commit is contained in:
mtvpls
2026-05-06 09:57:31 +08:00
parent 6d9e092448
commit cb47150eb2
5 changed files with 119 additions and 7 deletions
+1
View File
@@ -97,6 +97,7 @@ export interface AdminConfig {
from: 'config' | 'custom';
disabled?: boolean;
}[];
LiveRefreshIntervalHours?: number; // 电视直播全局刷新间隔(小时),默认12小时
LiveConfig?: {
key: string;
name: string;
+12
View File
@@ -5,6 +5,17 @@ import { db } from '@/lib/db';
import { AdminConfig } from './admin.types';
const BUILTIN_DANMAKU_API_BASE = 'https://mtvpls-danmu.netlify.app/87654321';
const DEFAULT_LIVE_REFRESH_INTERVAL_HOURS = 12;
function normalizeLiveRefreshIntervalHours(refreshIntervalHours?: number): number {
const normalizedInterval = Number(refreshIntervalHours);
if (!Number.isFinite(normalizedInterval) || normalizedInterval <= 0) {
return DEFAULT_LIVE_REFRESH_INTERVAL_HOURS;
}
return Math.floor(normalizedInterval);
}
export interface ApiSite {
key: string;
@@ -545,6 +556,7 @@ export function configSelfCheck(adminConfig: AdminConfig): AdminConfig {
if (!adminConfig.LiveConfig || !Array.isArray(adminConfig.LiveConfig)) {
adminConfig.LiveConfig = [];
}
adminConfig.LiveRefreshIntervalHours = normalizeLiveRefreshIntervalHours(adminConfig.LiveRefreshIntervalHours);
// 用户信息已迁移到新版数据库
// 这里只保留站长用户用于兼容性,其他用户从数据库读取
+22
View File
@@ -5,6 +5,28 @@ import { db } from '@/lib/db';
const defaultUA = 'AptvPlayer/1.4.10';
export const DEFAULT_LIVE_REFRESH_INTERVAL_HOURS = 12;
let lastGlobalLiveRefreshTime = 0;
export function getLiveRefreshIntervalHours(refreshIntervalHours?: number): number {
const normalizedInterval = Number(refreshIntervalHours);
if (!Number.isFinite(normalizedInterval) || normalizedInterval <= 0) {
return DEFAULT_LIVE_REFRESH_INTERVAL_HOURS;
}
return Math.floor(normalizedInterval);
}
export function getLastGlobalLiveRefreshTime(): number {
return lastGlobalLiveRefreshTime;
}
export function setLastGlobalLiveRefreshTime(timestamp: number): void {
lastGlobalLiveRefreshTime = timestamp;
}
export interface LiveChannels {
channelNumber: number;
channels: {