mirror of
https://github.com/MoonTechLab/LunaTV.git
synced 2026-05-22 14:37:30 +08:00
feat: remove storage type in config
This commit is contained in:
@@ -1,7 +1,4 @@
|
|||||||
{
|
{
|
||||||
"cache_time": 7200,
|
"cache_time": 7200,
|
||||||
"api_site": {},
|
"api_site": {}
|
||||||
"storage": {
|
|
||||||
"type": "localstorage"
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -81,8 +81,5 @@
|
|||||||
"api": "https://ikunzyapi.com/api.php/provide/vod",
|
"api": "https://ikunzyapi.com/api.php/provide/vod",
|
||||||
"name": "iKun资源"
|
"name": "iKun资源"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"storage": {
|
|
||||||
"type": "localstorage"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -9,24 +9,14 @@ const nextConfig = {
|
|||||||
swcMinify: true,
|
swcMinify: true,
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 在编译阶段把 storage.type 写入环境变量,供浏览器端动态切换存储方案。
|
* 在编译阶段将 STORAGE_TYPE 写入环境变量,供浏览器端与服务端统一读取。
|
||||||
*/
|
*/
|
||||||
env: (function () {
|
env: (function () {
|
||||||
const fs = require('fs');
|
// 编译阶段优先使用传入的环境变量;默认 localstorage
|
||||||
const path = require('path');
|
const storageType = process.env.STORAGE_TYPE || 'localstorage';
|
||||||
|
|
||||||
let storageType = 'localstorage';
|
|
||||||
try {
|
|
||||||
const json = JSON.parse(
|
|
||||||
fs.readFileSync(path.join(__dirname, 'config.json'), 'utf-8')
|
|
||||||
);
|
|
||||||
storageType = json?.storage?.type ?? 'localstorage';
|
|
||||||
} catch {
|
|
||||||
// ignore – 保持默认值
|
|
||||||
}
|
|
||||||
|
|
||||||
return {
|
return {
|
||||||
NEXT_PUBLIC_STORAGE_TYPE: storageType,
|
STORAGE_TYPE: storageType,
|
||||||
};
|
};
|
||||||
})(),
|
})(),
|
||||||
|
|
||||||
|
|||||||
@@ -74,8 +74,3 @@ export function getApiSites(): ApiSite[] {
|
|||||||
key,
|
key,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
export function getStorageConfig(): StorageConfig {
|
|
||||||
const config = getConfig();
|
|
||||||
return config.storage || { type: 'localstorage' };
|
|
||||||
}
|
|
||||||
|
|||||||
@@ -31,10 +31,8 @@ const PLAY_RECORDS_KEY = 'moontv_play_records';
|
|||||||
|
|
||||||
// ---- 环境变量 ----
|
// ---- 环境变量 ----
|
||||||
const STORAGE_TYPE =
|
const STORAGE_TYPE =
|
||||||
(process.env.NEXT_PUBLIC_STORAGE_TYPE as
|
(process.env.STORAGE_TYPE as 'localstorage' | 'database' | undefined) ||
|
||||||
| 'localstorage'
|
'localstorage';
|
||||||
| 'database'
|
|
||||||
| undefined) || 'localstorage';
|
|
||||||
|
|
||||||
// ---------------- 搜索历史相关常量 ----------------
|
// ---------------- 搜索历史相关常量 ----------------
|
||||||
const SEARCH_HISTORY_KEY = 'moontv_search_history';
|
const SEARCH_HISTORY_KEY = 'moontv_search_history';
|
||||||
|
|||||||
@@ -1,6 +1,9 @@
|
|||||||
/* eslint-disable no-console */
|
/* eslint-disable no-console */
|
||||||
|
|
||||||
import { getStorageConfig } from './config';
|
// storage type 常量: 'localstorage' | 'database',默认 'localstorage'
|
||||||
|
const STORAGE_TYPE =
|
||||||
|
(process.env.STORAGE_TYPE as 'localstorage' | 'database' | undefined) ||
|
||||||
|
'localstorage';
|
||||||
|
|
||||||
// 播放记录数据结构
|
// 播放记录数据结构
|
||||||
export interface PlayRecord {
|
export interface PlayRecord {
|
||||||
@@ -85,9 +88,7 @@ class DatabaseStorage implements IStorage {
|
|||||||
|
|
||||||
// 创建存储实例
|
// 创建存储实例
|
||||||
function createStorage(): IStorage {
|
function createStorage(): IStorage {
|
||||||
const config = getStorageConfig();
|
switch (STORAGE_TYPE) {
|
||||||
|
|
||||||
switch (config.type) {
|
|
||||||
case 'database':
|
case 'database':
|
||||||
return new DatabaseStorage();
|
return new DatabaseStorage();
|
||||||
case 'localstorage':
|
case 'localstorage':
|
||||||
|
|||||||
Reference in New Issue
Block a user