Smail/plugins/pmail_telegram_push/config/config.go
smail 3c455186b7
Some checks are pending
Security Checks / security (push) Waiting to run
完善忽略规则并在运行配置迁移前建立检查点
2026-09-05 20:16:21 +08:00

68 lines
1.9 KiB
Go

package config
import (
"encoding/json"
"os"
pconfig "git.pcux.cn/xuans/Smail/config"
"github.com/ydzydzydz/pmail_telegram_push/logger"
)
const (
MAIN_CONFIG_FILE = "./config/config.json"
PLUGIN_CONFIG_FILE = "./config/pmail_telegram_push_config.json"
)
// PluginConfig 插件配置
type PluginConfig struct {
TelegramBotToken string `json:"telegram_bot_token"` // Telegram机器人Token
Proxy string `json:"proxy" default:""` // 代理地址
Timeout int `json:"timeout" default:"30"` // 超时时间
Debug bool `json:"debug" default:"false"` // 调试模式
}
// Config 配置
type Config struct {
PluginConfig *PluginConfig
MainConfig *pconfig.Config
}
// readMainConfig 读取主配置文件
func readMainConfig() *pconfig.Config {
content, err := os.ReadFile(MAIN_CONFIG_FILE)
if err != nil {
logger.PluginLogger.Panic().Err(err).Msg("主配置文件读取失败")
}
var mainConfig pconfig.Config
if err := json.Unmarshal(content, &mainConfig); err != nil {
logger.PluginLogger.Panic().Err(err).Msg("主配置文件解析失败")
}
logger.PluginLogger.Info().Msg("主配置文件读取成功")
return &mainConfig
}
// readPluginConfig 读取插件配置文件
func readPluginConfig() *PluginConfig {
content, err := os.ReadFile(PLUGIN_CONFIG_FILE)
if err != nil {
logger.PluginLogger.Panic().Err(err).Msg("插件配置文件读取失败")
}
var pluginConfig PluginConfig
if err := json.Unmarshal(content, &pluginConfig); err != nil {
logger.PluginLogger.Panic().Err(err).Msg("插件配置文件解析失败")
}
if pluginConfig.TelegramBotToken == "" {
logger.PluginLogger.Panic().Msg("telegram bot token is empty")
}
logger.PluginLogger.Info().Msg("插件配置文件读取成功")
return &pluginConfig
}
// ReadConfig 读取配置
func ReadConfig() *Config {
return &Config{
PluginConfig: readPluginConfig(),
MainConfig: readMainConfig(),
}
}