feat: 添加 Discord 渠道支持

- 新增 Discord API 封装类 (discordAPI.js)
- 支持 Discord 文件上传(10MB 限制,超过自动切换其他渠道)
- 支持 Discord 文件读取和代理 URL(国内访问)
- 前端添加 Discord 渠道配置 UI(负载均衡、表单验证)
- 支持环境变量配置:DISCORD_BOT_TOKEN, DISCORD_CHANNEL_ID, DISCORD_PROXY_URL
- 修复 sysConfig.js 中 Discord 渠道过滤
This commit is contained in:
axibayuit
2025-12-30 15:08:19 +08:00
parent 8d139ca78d
commit 24d88fd9a1
19 changed files with 401 additions and 6 deletions

View File

@@ -172,10 +172,53 @@ export async function getUploadConfig(db, env) {
s3.loadBalance = s3LoadBalance
// =====================读取 Discord 渠道配置=====================
const discord = {}
const discordChannels = []
discord.channels = discordChannels
// 从环境变量读取 Discord 配置
if (env.DISCORD_BOT_TOKEN) {
discordChannels.push({
id: 1,
name: 'Discord_env',
type: 'discord',
savePath: 'environment variable',
botToken: env.DISCORD_BOT_TOKEN,
channelId: env.DISCORD_CHANNEL_ID,
proxyUrl: env.DISCORD_PROXY_URL || '', // 可选的代理 URL
enabled: true,
fixed: true,
})
}
for (const dc of settingsKV.discord?.channels || []) {
// 如果 savePath 是 environment variable修改可变参数
if (dc.savePath === 'environment variable') {
// 如果环境变量未删除,进行覆盖操作
if (discordChannels[0]) {
discordChannels[0].enabled = dc.enabled
discordChannels[0].proxyUrl = dc.proxyUrl
}
continue
}
// id 自增
dc.id = discordChannels.length + 1
discordChannels.push(dc)
}
// 负载均衡
const discordLoadBalance = settingsKV.discord?.loadBalance || {
enabled: false,
channels: [],
}
discord.loadBalance = discordLoadBalance
settings.telegram = telegram
settings.cfr2 = cfr2
settings.s3 = s3
settings.discord = discord
return settings;
}