package proxy import ( "io" "net/http" "github.com/rs/zerolog" ) // Scrape actions type Scrape struct { Domain string // Domain name Proxies chan string // Proxy channel Logger zerolog.Logger // Global logger Verbose bool // Verbose mode } func (s *Scrape) Fetch() { // Send GET request resp, err := http.Get(s.Domain) if err != nil { if s.Verbose { s.Logger.Debug().Msg(err.Error()) } s.Proxies <- "" return } // Read HTTP body body, err := io.ReadAll(resp.Body) if err != nil { if s.Verbose { s.Logger.Debug().Msg(err.Error()) } s.Proxies <- "" return } // Send proxies & log it s.Proxies <- string(body) s.Logger.Info().Str("domain", s.Domain).Msg("Fetched proxies from") }