@@ -7,32 +7,66 @@ import (
7
7
"os"
8
8
"path/filepath"
9
9
10
- twitterscraper "github.com/masa-finance/masa-twitter-scraper"
10
+ twitterscraper "github.com/imperatrona/twitter-scraper"
11
+
12
+ "github.com/sirupsen/logrus"
11
13
)
12
14
13
15
func SaveCookies (scraper * twitterscraper.Scraper , account * TwitterAccount , baseDir string ) error {
16
+ logrus .Debugf ("Saving cookies for user %s" , account .Username )
14
17
cookieFile := filepath .Join (baseDir , fmt .Sprintf ("%s_twitter_cookies.json" , account .Username ))
15
18
cookies := scraper .GetCookies ()
19
+ logrus .Debugf ("Got %d cookies to save" , len (cookies ))
20
+
16
21
data , err := json .Marshal (cookies )
17
22
if err != nil {
18
23
return fmt .Errorf ("error marshaling cookies: %v" , err )
19
24
}
25
+
26
+ logrus .Debugf ("Writing cookies to file: %s" , cookieFile )
20
27
if err = os .WriteFile (cookieFile , data , 0644 ); err != nil {
21
28
return fmt .Errorf ("error saving cookies: %v" , err )
22
29
}
30
+ logrus .Debug ("Successfully saved cookies" )
23
31
return nil
24
32
}
25
33
26
34
func LoadCookies (scraper * twitterscraper.Scraper , account * TwitterAccount , baseDir string ) error {
35
+ logrus .Debugf ("Loading cookies for user %s" , account .Username )
27
36
cookieFile := filepath .Join (baseDir , fmt .Sprintf ("%s_twitter_cookies.json" , account .Username ))
37
+
38
+ logrus .Debugf ("Reading cookie file: %s" , cookieFile )
28
39
data , err := os .ReadFile (cookieFile )
29
40
if err != nil {
30
41
return fmt .Errorf ("error reading cookies: %v" , err )
31
42
}
43
+
32
44
var cookies []* http.Cookie
33
45
if err = json .Unmarshal (data , & cookies ); err != nil {
34
46
return fmt .Errorf ("error unmarshaling cookies: %v" , err )
35
47
}
48
+ logrus .Debugf ("Loaded %d cookies from file" , len (cookies ))
49
+
50
+ // Verify critical cookies are present
51
+ var hasAuthToken , hasCSRFToken bool
52
+ for _ , cookie := range cookies {
53
+ if cookie .Name == "auth_token" {
54
+ hasAuthToken = true
55
+ logrus .Debug ("Found auth_token cookie" )
56
+ }
57
+ if cookie .Name == "ct0" {
58
+ hasCSRFToken = true
59
+ logrus .Debug ("Found CSRF token cookie" )
60
+ }
61
+ }
62
+
63
+ if ! hasAuthToken || ! hasCSRFToken {
64
+ logrus .Debug ("Missing critical authentication cookies" )
65
+ return fmt .Errorf ("missing critical authentication cookies" )
66
+ }
67
+
68
+ logrus .Debug ("Setting cookies in scraper" )
36
69
scraper .SetCookies (cookies )
70
+ logrus .Debug ("Successfully loaded and set cookies" )
37
71
return nil
38
72
}
0 commit comments