package utils import ( "fmt" "io" "net/http" "os" ) func GenInputFile(day int) string { var d string if day < 10 { d = fmt.Sprintf("0%d", day) } else { d = fmt.Sprintf("%d", day) } pwd, _ := os.Getwd() path := fmt.Sprintf("%s/day%s/input.txt", pwd, d) fi, _ := os.Stat(path) if fi != nil { return path } fmt.Printf("Creating new input file %v...", path) f, err := os.Create(path) if err != nil { fmt.Println(err) } else { defer f.Close() data := readHttp(2023, day) _, err := f.WriteString(data) if err != nil { fmt.Println(err) } } return path } func readHttp(year, day int) string { fmt.Println("Fetching data into file...") url := fmt.Sprintf("https://adventofcode.com/%d/day/%d/input", year, day) session := os.Getenv("sessionAoC") req, err := http.NewRequest("GET", url, nil) if err != nil { panic(err) } req.AddCookie(&http.Cookie{Name: "session", Value: session}) client := &http.Client{} resp, err := client.Do(req) if err != nil { panic(err) } body, err := io.ReadAll(resp.Body) if err != nil { panic(err) } return string(body) }