2024-09-18 03:23:08 +00:00
package main
import (
2024-09-24 05:31:28 +00:00
"api/router"
"golang.org/x/sync/errgroup"
"log"
2024-09-18 03:23:08 +00:00
)
func main ( ) {
2024-09-24 05:31:28 +00:00
// 初始化全局变量
router . InitGlobalVariable ( )
2024-09-18 03:23:08 +00:00
2024-09-24 05:31:28 +00:00
var g errgroup . Group
2024-09-18 03:23:08 +00:00
2024-09-24 05:31:28 +00:00
// 服务接口
g . Go ( func ( ) error {
return router . Server ( ) . ListenAndServe ( )
2024-09-18 03:23:08 +00:00
} )
2024-09-24 05:31:28 +00:00
if err := g . Wait ( ) ; err != nil {
log . Fatal ( err )
2024-09-18 03:23:08 +00:00
}
}
// 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)
// }