package nuapi import ( "bytes" "compress/gzip" "context" "errors" "fmt" "os/exec" "github.com/PuerkitoBio/goquery" ) func (api *Api) getWithCookie(ctx context.Context, url string) (*goquery.Document, error) { if api.Cookie == "" { return nil, errors.New("no API cookie set") } curl := exec.CommandContext(ctx, "curl", "-s", url, "-H", fmt.Sprintf("User-Agent: %s", api.UserAgent), "-H", fmt.Sprintf("Cookie: %s", api.Cookie), "-H", fmt.Sprintf("Accept-Encoding: %s", "gzip"), ) data, err := curl.Output() if err != nil { return nil, err } r, err := gzip.NewReader(bytes.NewReader(data)) if err != nil { return nil, err } return goquery.NewDocumentFromReader(r) } func (api *Api) get(ctx context.Context, url string) (*goquery.Document, error) { curl := exec.CommandContext(ctx, "curl", "-s", url, "-H", fmt.Sprintf("User-Agent: %s", api.UserAgent), "-H", fmt.Sprintf("Accept-Encoding: %s", "gzip"), ) data, err := curl.Output() if err != nil { return nil, err } r, err := gzip.NewReader(bytes.NewReader(data)) if err != nil { return nil, err } return goquery.NewDocumentFromReader(r) }