main.go 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package main
  2. import (
  3. "bufio"
  4. "fmt"
  5. "gcore/core"
  6. "github.com/sqweek/dialog"
  7. "golang.org/x/text/encoding/simplifiedchinese"
  8. "os"
  9. "os/exec"
  10. "strconv"
  11. )
  12. type Charset string
  13. const (
  14. UTF8 = Charset("UTF-8")
  15. GB18030 = Charset("GB18030")
  16. )
  17. func init() {
  18. //devConf := &xnet.DevConf{
  19. // AppKey: "ding8svryas6vm6ze5xh",
  20. // AppSecret: "YF77J3t-bORqtZxNH7-RY8Q3znrgpsZDpTiXDqLj-Ns8XRIDZLn6fIwpukOQ1P1o",
  21. // GetTokenUrl: "https://oapi.dingtalk.com/gettoken",
  22. // GetDeptUserListUrl: "https://oapi.dingtalk.com/topapi/user/listsimple",
  23. // Params: map[string]string{},
  24. // Headers: map[string]string{},
  25. // Cookie: []*http.Cookie{},
  26. // DeptId: 554750022,
  27. //}
  28. //if err := devConf.GetToken(); err != nil {
  29. // log.Fatalln(err)
  30. //}
  31. //
  32. //println(devConf.Token)
  33. //
  34. //deptUserList, _ := devConf.GetDeptUserList()
  35. //fmt.Printf("%v\n", deptUserList)
  36. //workData,_:=core.GetWorkData(30)
  37. //fmt.Printf("%v\n", workData)
  38. //ret := core.GetChromeUserDataDir()
  39. //fmt.Printf("ret=>%v\n", ret)
  40. chromeExePath, _ := core.GetChromeExePath()
  41. exists, _ := core.FileExists(chromeExePath)
  42. if exists == false {
  43. dialog.Message("请先安装chrome(谷歌)浏览器再运行本程序!!").Title("提示").Error()
  44. return
  45. }
  46. args := os.Args
  47. chromePort := 9200
  48. if len(args) > 1 {
  49. chromePort, _ = strconv.Atoi(args[1])
  50. }
  51. params := []string{
  52. "--disable-gpu",
  53. "--window-size=1920,1080",
  54. //" --headless",
  55. fmt.Sprintf("--remote-debugging-port=%v", chromePort),
  56. }
  57. cmd := exec.Command(chromeExePath, params...)
  58. stdout, err := cmd.StdoutPipe()
  59. if err != nil {
  60. fmt.Println(err)
  61. return
  62. }
  63. cmd.Start()
  64. in := bufio.NewScanner(stdout)
  65. for in.Scan() {
  66. cmdRe := ConvertByte2String(in.Bytes(), "GB18030")
  67. fmt.Println(cmdRe)
  68. }
  69. cmd.Wait()
  70. }
  71. func ConvertByte2String(byte []byte, charset Charset) string {
  72. var str string
  73. switch charset {
  74. case GB18030:
  75. var decodeBytes, _ = simplifiedchinese.GB18030.NewDecoder().Bytes(byte)
  76. str = string(decodeBytes)
  77. case UTF8:
  78. fallthrough
  79. default:
  80. str = string(byte)
  81. }
  82. return str
  83. }
  84. func main() {
  85. }