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) // }