Spaces:
Sleeping
Sleeping
import dotenv from "dotenv"; | |
// 加载.env文件 | |
dotenv.config(); | |
interface Channel { | |
id: string; | |
name: string; | |
} | |
interface CloudPatterns { | |
baiduPan: RegExp; | |
tianyi: RegExp; | |
aliyun: RegExp; | |
pan115: RegExp; | |
pan123: RegExp; | |
quark: RegExp; | |
yidong: RegExp; | |
} | |
interface Config { | |
jwtSecret: string; | |
telegram: { | |
baseUrl: string; | |
channels: Channel[]; | |
}; | |
cloudPatterns: CloudPatterns; | |
app: { | |
port: number; | |
env: string; | |
}; | |
database: { | |
type: string; | |
path: string; | |
}; | |
jwt: { | |
secret: string; | |
expiresIn: string; | |
}; | |
} | |
// 从环境变量读取频道配置 | |
const getTeleChannels = (): Channel[] => { | |
try { | |
const channelsStr = process.env.TELE_CHANNELS; | |
if (channelsStr) { | |
return JSON.parse(channelsStr); | |
} | |
} catch (error) { | |
console.warn("无法解析 TELE_CHANNELS 环境变量,使用默认配置"); | |
} | |
// 默认配置 | |
return []; | |
}; | |
export const config: Config = { | |
app: { | |
port: parseInt(process.env.PORT || "8009"), | |
env: process.env.NODE_ENV || "development", | |
}, | |
database: { | |
type: "sqlite", | |
path: "./data/database.sqlite", | |
}, | |
jwt: { | |
secret: process.env.JWT_SECRET || "your-secret-key", | |
expiresIn: "6h", | |
}, | |
jwtSecret: process.env.JWT_SECRET || "uV7Y$k92#LkF^q1b!", | |
telegram: { | |
baseUrl: process.env.TELEGRAM_BASE_URL || "https://t.me/s", | |
channels: getTeleChannels(), | |
}, | |
cloudPatterns: { | |
baiduPan: /https?:\/\/(?:pan|yun)\.baidu\.com\/[^\s<>"]+/g, | |
tianyi: /https?:\/\/cloud\.189\.cn\/[^\s<>"]+/g, | |
aliyun: /https?:\/\/\w+\.(?:alipan|aliyundrive)\.com\/[^\s<>"]+/g, | |
// pan115有两个域名 115.com 和 anxia.com 和 115cdn.com | |
pan115: /https?:\/\/(?:115|anxia|115cdn)\.com\/s\/[^\s<>"]+/g, | |
// 修改为匹配所有以123开头的域名 | |
// eslint-disable-next-line no-useless-escape | |
pan123: /https?:\/\/(?:www\.)?123[^\/\s<>"]+\.com\/s\/[^\s<>"]+/g, | |
quark: /https?:\/\/pan\.quark\.cn\/[^\s<>"]+/g, | |
yidong: /https?:\/\/caiyun\.139\.com\/[^\s<>"]+/g, | |
}, | |
}; | |