diff --git a/main.go b/main.go index 6cb2936..4814098 100644 --- a/main.go +++ b/main.go @@ -16,6 +16,7 @@ import ( type config struct { Horn map[string]string `yaml:"horn"` Times []string `yaml:"times"` + Days []string `yaml:"days"` } func (config *config) getConf() *config { @@ -31,7 +32,7 @@ func (config *config) getConf() *config { logger.Error("Unmarshal", logger.Args(":", err)) } - logger.Info("Config loaded", logger.Args("Times", config.Times, "API URL", config.Horn["url"])) + logger.Info("Config loaded", logger.Args("Times", config.Times, "Days", config.Days, "API URL", config.Horn["url"])) return config } @@ -47,7 +48,7 @@ func main() { pterm.DefaultCenter.Println(s) pterm.DefaultCenter.Println("By Cody (" + pterm.LightBlue("https://oki.cx/tree") + ")") - pterm.DefaultCenter.Println("v1.1") + pterm.DefaultCenter.Println("v1.2") pterm.Print("\n") @@ -60,28 +61,34 @@ func main() { for { ctime := time.Now().Format("15:04:05") + cday := time.Now().Weekday() - for _, time := range config.Times { - if time == ctime { - http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} - client := &http.Client{ - Transport: &digest.Transport{ - Username: config.Horn["username"], - Password: config.Horn["password"], - }, - } - req, err := http.NewRequest("GET", config.Horn["url"], nil) - if err != nil { - logger.Error(fmt.Sprintf("%s", err)) - } - resp, err := client.Do(req) - if err != nil { - logger.Error(fmt.Sprintf("%s", err)) - } - if resp.StatusCode != 200 { - logger.Error(fmt.Sprintf("HTTP request failed: %s", resp.Status)) - } else { - logger.Info(fmt.Sprintf("Sending HTTP request to %s", config.Horn["url"]), logger.Args("Reason", "Config File", "Time", ctime, "Status Code", resp.Status)) + for _, day := range config.Days { + if day == cday.String() { + for _, time := range config.Times { + if time == ctime { + http.DefaultTransport.(*http.Transport).TLSClientConfig = &tls.Config{InsecureSkipVerify: true} + client := &http.Client{ + Transport: &digest.Transport{ + Username: config.Horn["username"], + Password: config.Horn["password"], + }, + } + req, err := http.NewRequest("GET", config.Horn["url"], nil) + if err != nil { + logger.Error(fmt.Sprintf("%s", err)) + } + resp, err := client.Do(req) + if err != nil { + logger.Error(fmt.Sprintf("%s", err)) + } + if resp.StatusCode != 200 { + logger.Error(fmt.Sprintf("HTTP request failed: %s", resp.Status)) + } else { + logger.Info(fmt.Sprintf("Sending HTTP request to %s", config.Horn["url"]), + logger.Args("Reason", "Config File", "Time", ctime, "Status Code", resp.Status)) + } + } } } }