cookie.go 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677
  1. package browser
  2. import (
  3. gcmd "gbase/cmd"
  4. "github.com/browserutils/kooky/browser/chrome"
  5. "log"
  6. "net/http"
  7. "os"
  8. "path/filepath"
  9. "strings"
  10. )
  11. // @title LoadChromeCookies
  12. // @description 从本地chrome路径加载指定domain的cookies
  13. // @param domain string 需要提起cookie的domain
  14. // @return
  15. func LoadChromeCookies(domain string) ([]*http.Cookie, error) {
  16. var cookies []*http.Cookie
  17. cookiesName := "Cookies"
  18. userHomeDir, _ := os.UserHomeDir()
  19. defaultPath := "AppData/Local/Google/Chrome/User Data/Default/"
  20. cookiesFile := filepath.Join(userHomeDir, defaultPath, cookiesName)
  21. exist, _ := gcmd.FileExists(cookiesFile)
  22. if exist == false {
  23. cookiesFile = filepath.Join(userHomeDir, defaultPath, "Network", cookiesName)
  24. }
  25. println(cookiesFile)
  26. chromeCookies, err := chrome.ReadCookies(cookiesFile)
  27. if err != nil {
  28. log.Printf("ReadCookies error : %v\n", err)
  29. return cookies, err
  30. }
  31. for _, cookie := range chromeCookies {
  32. if strings.Contains(cookie.Domain, domain) == true {
  33. //fmt.Println(cookie)
  34. cookies = append(cookies, &http.Cookie{
  35. Name: cookie.Name,
  36. Value: cookie.Value,
  37. Path: cookie.Path,
  38. Domain: cookie.Domain,
  39. Expires: cookie.Expires,
  40. })
  41. }
  42. }
  43. return cookies, nil
  44. }
  45. // @title LoadChromeCookiesVer1
  46. // @description 从本地chrome路径加载指定domain的cookies
  47. // @param domain string 需要提起cookie的domain
  48. // @return
  49. func LoadChromeCookiesVer1(domain, cookiesPath string) ([]*http.Cookie, error) {
  50. var cookies []*http.Cookie
  51. chromeCookies, err := chrome.ReadCookies(cookiesPath)
  52. if err != nil {
  53. log.Printf("ReadCookies error : %v\n", err)
  54. return cookies, err
  55. }
  56. for _, cookie := range chromeCookies {
  57. if strings.Contains(cookie.Domain, domain) == true {
  58. //fmt.Println(cookie)
  59. cookies = append(cookies, &http.Cookie{
  60. Name: cookie.Name,
  61. Value: cookie.Value,
  62. Path: cookie.Path,
  63. Domain: cookie.Domain,
  64. Expires: cookie.Expires,
  65. })
  66. }
  67. }
  68. return cookies, nil
  69. }