From cfc9e236971c851c9780941d9bb97b6056aa38a0 Mon Sep 17 00:00:00 2001 From: Vladimir V Maksimov Date: Sun, 14 Jun 2026 11:06:23 +0300 Subject: [PATCH] =?UTF-8?q?refactor:=20=D0=B2=D1=8B=D0=BD=D0=B5=D1=81?= =?UTF-8?q?=D1=82=D0=B8=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3=20=D0=B2=20?= =?UTF-8?q?config.go,=20=D0=B4=D0=BE=D0=B1=D0=B0=D0=B2=D0=B8=D1=82=D1=8C?= =?UTF-8?q?=20=D1=81=D0=B5=D0=BA=D1=86=D0=B8=D0=B8=20pachca/email?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Sonnet 4.6 --- config.go | 48 ++++++++++++++++++++++++++++++++++++++++++++++++ main.go | 28 ---------------------------- 2 files changed, 48 insertions(+), 28 deletions(-) create mode 100644 config.go diff --git a/config.go b/config.go new file mode 100644 index 0000000..4d156f8 --- /dev/null +++ b/config.go @@ -0,0 +1,48 @@ +package main + +import ( + "os" + + "gopkg.in/yaml.v3" +) + +// Config — структура для чтения YAML-файла +type Config struct { + ListenAddresses []string `yaml:"listen_addresses"` + LogDir string `yaml:"log_dir"` + Telegram *ConfigTelegram `yaml:"telegram"` + Pachca *ConfigPachca `yaml:"pachca"` + Email *ConfigEmail `yaml:"email"` +} + +type ConfigTelegram struct { + Token string `yaml:"token"` + GroupID int64 `yaml:"group_id"` + DisableIPV6 *bool `yaml:"disable_ipv6"` // nil → true +} + +type ConfigPachca struct { + WebhookURL string `yaml:"webhook_url"` // входящий вебхук Pachca +} + +type ConfigEmail struct { + SMTPAddr string `yaml:"smtp_addr"` + Username string `yaml:"username"` + Password string `yaml:"password"` + From string `yaml:"from"` + To []string `yaml:"to"` + Subject string `yaml:"subject"` // "" → "HTTP Logger" +} + +// loadConfig читает YAML-конфиг из файла +func loadConfig(path string) (*Config, error) { + data, err := os.ReadFile(path) + if err != nil { + return nil, err + } + var cfg Config + if err := yaml.Unmarshal(data, &cfg); err != nil { + return nil, err + } + return &cfg, nil +} diff --git a/main.go b/main.go index 3202845..0a1cac5 100644 --- a/main.go +++ b/main.go @@ -6,27 +6,12 @@ import ( "log" "net" "net/http" - "os" "strings" "time" - "gopkg.in/yaml.v3" - "gitea.mediatoday.ru/mt/notify" ) -// Config — структура для чтения YAML-файла -type Config struct { - ListenAddresses []string `yaml:"listen_addresses"` - LogDir string `yaml:"log_dir"` - Telegram *ConfigTelegraam `yaml:"telegram"` -} - -type ConfigTelegraam struct { - Token string `yaml:"token"` - GroupID int64 `yaml:"group_id"` -} - func GetRemoteAddr(r *http.Request) string { // Сначала смотрим X-Forwarded-For if xff := r.Header.Get("X-Forwarded-For"); xff != "" { @@ -138,16 +123,3 @@ func main() { // Блокируем main, чтобы программа не завершилась select {} } - -// loadConfig читает YAML-конфиг из файла -func loadConfig(path string) (*Config, error) { - data, err := os.ReadFile(path) - if err != nil { - return nil, err - } - var cfg Config - if err := yaml.Unmarshal(data, &cfg); err != nil { - return nil, err - } - return &cfg, nil -}