29 lines
617 B
Go
29 lines
617 B
Go
package geziyor
|
|
|
|
import (
|
|
"github.com/PuerkitoBio/goquery"
|
|
"net/http"
|
|
"net/url"
|
|
)
|
|
|
|
// Response type wraps http.Response
|
|
// Contains parsed response data and Geziyor functions.
|
|
type Response struct {
|
|
*http.Response
|
|
Body []byte
|
|
DocHTML *goquery.Document
|
|
Meta map[string]interface{}
|
|
Request *Request
|
|
}
|
|
|
|
// JoinURL joins base response URL and provided relative URL.
|
|
func (r *Response) JoinURL(relativeURL string) string {
|
|
parsedRelativeURL, err := url.Parse(relativeURL)
|
|
if err != nil {
|
|
return ""
|
|
}
|
|
|
|
joinedURL := r.Response.Request.URL.ResolveReference(parsedRelativeURL)
|
|
return joinedURL.String()
|
|
}
|