Add GetCookies and SetCookies

This commit is contained in:
Alexander Sheiko 2023-05-10 11:42:47 +03:00
parent deb946cf22
commit f0d7735a76
6 changed files with 97 additions and 7 deletions

20
auth.go
View file

@ -6,6 +6,7 @@ import (
"fmt"
"net/http"
"net/http/cookiejar"
"strings"
)
const (
@ -73,6 +74,8 @@ func (s *Scraper) getFlowToken(data map[string]interface{}) (string, error) {
// IsLoggedIn check if scraper logged in
func (s *Scraper) IsLoggedIn() bool {
s.isLogged = true
s.setBearerToken(bearerToken2)
req, err := http.NewRequest("GET", "https://api.twitter.com/1.1/account/verify_credentials.json", nil)
if err != nil {
return false
@ -81,6 +84,7 @@ func (s *Scraper) IsLoggedIn() bool {
err = s.RequestAPI(req, &verify)
if err != nil || verify.Errors != nil {
s.isLogged = false
s.setBearerToken(bearerToken)
} else {
s.isLogged = true
}
@ -190,3 +194,19 @@ func (s *Scraper) Logout() {
s.client.Jar, _ = cookiejar.New(nil)
s.setBearerToken(bearerToken)
}
func (s *Scraper) GetCookies() []*http.Cookie {
var cookies []*http.Cookie
for _, cookie := range s.client.Jar.Cookies(twURL) {
if strings.Contains(cookie.Name, "guest") {
continue
}
cookie.Domain = twURL.Host
cookies = append(cookies, cookie)
}
return cookies
}
func (s *Scraper) SetCookies(cookies []*http.Cookie) {
s.client.Jar.SetCookies(twURL, cookies)
}