Ejemplo n.º 1
0
Archivo: domlist.go Proyecto: h8liu/d8
func LoadList(path string, eout io.Writer) ([]*domain.Domain, error) {
	fin, e := os.Open(path)
	if e != nil {
		return nil, e
	}
	defer fin.Close()

	ret := make([]*domain.Domain, 0, 5000)

	lineno := 0
	s := bufio.NewScanner(fin)
	for s.Scan() {
		lineno++
		line := strings.TrimSpace(s.Text())
		if line == "" {
			continue
		}

		d, e := domain.Parse(line)
		if e != nil {
			fmt.Fprintf(eout, "%s:%d: '%s': %v", path, lineno, line, e)
		} else {
			ret = append(ret, d)
		}
	}

	if s.Err() != nil {
		return ret, e
	}

	return ret, nil
}
Ejemplo n.º 2
0
Archivo: console.go Proyecto: h8liu/d8
func (self *Console) ip(doms []string) {
	for _, s := range doms {
		d, e := domain.Parse(s)
		if e != nil {
			self.printError(e)
			continue
		}

		_, e = self.Term.T(tasks.NewIPs(d))
		self.printError(e)
	}
}
Ejemplo n.º 3
0
Archivo: main.go Proyecto: h8liu/d8
func single() {
	c, e := client.New()
	noError(e)
	t := term.New(c)
	t.Log = nil
	t.Out = os.Stdout

	for _, s := range os.Args[1:] {
		d, e := domain.Parse(s)
		if e != nil {
			fmt.Fprintln(os.Stderr, e)
			continue
		}
		fmt.Printf("// %v\n", d)

		_, e = t.T(tasks.NewInfo(d))
		if e != nil {
			fmt.Fprintln(os.Stderr, e)
		}
	}
}
Ejemplo n.º 4
0
Archivo: server.go Proyecto: h8liu/d8
func (s *Server) Crawl(req *Request, err *string) error {
	if !checkName(req.Name) {
		*err = "bad job name"
		return nil
	}

	var doms []*domain.Domain

	for _, d := range req.Domains {
		dom, e := domain.Parse(d)
		if e != nil {
			*err = e.Error()
			return nil
		}
		doms = append(doms, dom)
	}

	j := newJob(req.Name, doms, req.Callback)
	j.archive = s.archive
	go j.run()

	*err = "" // no error
	return nil
}