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, | |
| }, | |
| }; | |