loader/http.go
func NewHTTPSource(r *http.Response) (*HTTPSource, error) {
	body, err := ioutil.ReadAll(r.Body)
	if err != nil {
		return nil, err
	}

	s := &HTTPSource{
		bytes.NewBuffer(body),
		time.Time{},
	}

	if lastmodStr := r.Header.Get("Last-Modified"); lastmodStr != "" {
		t, err := time.Parse(http.TimeFormat, lastmodStr)
		if err != nil {
			fmt.Printf("failed to parse: %s\n", err)
			t = time.Now()
		}
		s.LastModifiedTime = t
	} else {
		s.LastModifiedTime = time.Now()
	}

	return s, nil
}
func NewHTTPSource(r *http.Response) (*HTTPSource, error) {
	body, err := ioutil.ReadAll(r.Body)
	if err != nil {
		return nil, err
	}

	s := &HTTPSource{
		bytes.NewBuffer(body),
		time.Time{},
	}

	if lastmodStr := r.Header.Get("Last-Modified"); lastmodStr != "" {
		t, err := time.Parse(http.TimeFormat, lastmodStr)
		if err != nil {
			fmt.Printf("failed to parse: %s\n", err)
			t = time.Now()
		}
		s.LastModifiedTime = t
	} else {
		s.LastModifiedTime = time.Now()
	}

	return s, nil
}
// NewHTTPSource creates a new HTTPSource instance