fix requestV1 requestV1 error

This commit is contained in:
nite07 2025-02-27 08:16:18 +11:00
parent 0b35c2ca09
commit d2eb26d4ac

View File

@ -2,6 +2,7 @@ package flaresolverr
import ( import (
"encoding/json" "encoding/json"
"fmt"
"net/http" "net/http"
"strings" "strings"
"time" "time"
@ -43,36 +44,45 @@ func (f *Flaresolverr) requestV1(req *V1RequestBase) (*V1ResponseBase, error) {
if err != nil { if err != nil {
return nil, err return nil, err
} }
if resp.StatusCode() != 200 {
return nil, fmt.Errorf("request failed: status code: %v", resp.StatusCode())
}
var res V1ResponseBase var res V1ResponseBase
err = json.Unmarshal(resp.Body(), &res) err = json.Unmarshal(resp.Body(), &res)
if err != nil { if err != nil {
return nil, err return nil, err
} }
if res.Solution != nil && res.Solution.RawCookies != nil { if res.Solution != nil {
for _, cookie := range res.Solution.RawCookies { if res.Solution.RawCookies != nil {
sec := int64(cookie.Expires) for _, cookie := range res.Solution.RawCookies {
nsec := int64((cookie.Expires - float64(sec)) * 1e9) sec := int64(cookie.Expires)
res.Solution.Cookies = append(res.Solution.Cookies, &http.Cookie{ nsec := int64((cookie.Expires - float64(sec)) * 1e9)
Name: cookie.Name, res.Solution.Cookies = append(res.Solution.Cookies, &http.Cookie{
Value: cookie.Value, Name: cookie.Name,
Expires: time.Unix(sec, nsec), Value: cookie.Value,
Domain: cookie.Domain, Expires: time.Unix(sec, nsec),
Path: cookie.Path, Domain: cookie.Domain,
Secure: cookie.Secure, Path: cookie.Path,
HttpOnly: cookie.HttpOnly, Secure: cookie.Secure,
}) HttpOnly: cookie.HttpOnly,
})
}
}
if res.Solution.RawResponse != nil {
switch v := res.Solution.RawResponse.(type) {
case string:
res.Solution.Response = res.Solution.RawResponse.(string)
case map[string]any:
jsonBytes, err := json.Marshal(v)
if err != nil {
return nil, err
}
res.Solution.Response = string(jsonBytes)
}
} }
} }
switch v := res.Solution.RawResponse.(type) {
case string:
res.Solution.Response = res.Solution.RawResponse.(string)
case map[string]any:
jsonBytes, err := json.Marshal(v)
if err != nil {
return nil, err
}
res.Solution.Response = string(jsonBytes)
}
return &res, nil return &res, nil
} }