83 lines
1.9 KiB
Go
83 lines
1.9 KiB
Go
package main
|
|
|
|
import (
|
|
"api/router"
|
|
"golang.org/x/sync/errgroup"
|
|
"log"
|
|
)
|
|
|
|
func main() {
|
|
// 初始化全局变量
|
|
router.InitGlobalVariable()
|
|
|
|
var g errgroup.Group
|
|
|
|
// 服务接口
|
|
g.Go(func() error {
|
|
return router.Server().ListenAndServe()
|
|
})
|
|
|
|
if err := g.Wait(); err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
}
|
|
|
|
// package main
|
|
//
|
|
// import (
|
|
// "encoding/base64"
|
|
// "fmt"
|
|
// "log"
|
|
// "regexp"
|
|
// )
|
|
//
|
|
// func decodeGclid(gclid string, splitTimestamp bool) map[int]interface{} {
|
|
// // Base64 URL decode
|
|
// base64Decoded, err := base64.RawURLEncoding.DecodeString(gclid)
|
|
// if err != nil {
|
|
// log.Fatalf("Failed to decode base64 URL: %v", err)
|
|
// }
|
|
//
|
|
// // Regular expression to match the pattern
|
|
// re := regexp.MustCompile(`(?=[\x5\xd\x15\x1d%\-5=EMU\]emu}\x85\x8d\x95\x9d\xa5\xad\xb5\xbd\xc5\xcd\xd5\xd5\xe5\xed\xf5\xfd])([^\x00-\x7f]*[\x00-\x7f])(.{4})|([^\x00-\x7f]*[\x00-\x7f])([^\x80-\xff]*[\x00-\x7f])`)
|
|
// matches := re.FindAllSubmatch(base64Decoded, -1)
|
|
//
|
|
// result := make(map[int]interface{})
|
|
// for _, match := range matches {
|
|
// var key, val int64
|
|
// if len(match[1]) > 0 {
|
|
// for i, c := range match[1] {
|
|
// key += int64(c&0x7f) << (i * 7)
|
|
// }
|
|
// for i, c := range match[2] {
|
|
// val += int64(c) << (i * 8)
|
|
// }
|
|
// } else {
|
|
// for i, c := range match[3] {
|
|
// key += int64(c&0x7f) << (i * 7)
|
|
// }
|
|
// for i, c := range match[4] {
|
|
// val += int64(c&0x7f) << (i * 7)
|
|
// }
|
|
// }
|
|
// result[int(key>>3)] = val
|
|
// }
|
|
//
|
|
// if splitTimestamp {
|
|
// if timestamp, ok := result[1].(int64); ok {
|
|
// seconds := timestamp / 1000000
|
|
// microseconds := timestamp % 1000000
|
|
// result[1] = []int64{seconds, microseconds}
|
|
// }
|
|
// }
|
|
//
|
|
// return result
|
|
// }
|
|
//
|
|
// func main() {
|
|
// gclid := "CKSDxc_qhLkCFQyk4AodO24Arg" // 你的 GCLID 字符串
|
|
//
|
|
// decoded := decodeGclid(gclid, true)
|
|
// fmt.Printf("Decoded GCLID: %+v\n", decoded)
|
|
// }
|