68 lines
1.9 KiB
Go
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(),
|
|
}
|
|
}
|