package bot_cookie import ( "fmt" "net/http" "sync" ) /* Предоставляет разделяемый объект кукисов для соединения с игровым сервером */ // BotCookie -- кукисы для игрового сервера, ничего не требует для своей работы type BotCookie struct { cookie []*http.Cookie block sync.RWMutex } // NewBotCookie -- возвращает новый *NetCookie func NewBotCookie() *BotCookie { return &BotCookie{} } // Set -- устанавливает кукисы func (sf *BotCookie) Set(cook []*http.Cookie) error { sf.block.Lock() defer sf.block.Unlock() if cook == nil { return fmt.Errorf("NetCookie.Set(): cookie is nil") } sf.cookie = cook cookie := &http.Cookie{ Name: "JSESSIONID", Value: sf.cookie[0].Value, Raw: "JSESSIONID=" + sf.cookie[0].Value + "; _ym_uid=1642083867571238834; _ym_d=1642083867; _ym_isad=2; _ym_visorc=w", } cookie1 := sf.cookie[:0] sf.cookie = cookie1 sf.cookie = append(sf.cookie, cookie) cookie = &http.Cookie{ Name: "_ym_d", Value: "1642083867", } sf.cookie = append(sf.cookie, cookie) cookie = &http.Cookie{ Name: "_ym_isad", Value: "2", } sf.cookie = append(sf.cookie, cookie) cookie = &http.Cookie{ Name: "_ym_visorc", Value: "w", } sf.cookie = append(sf.cookie, cookie) return nil } // Get -- возвращает хранимые кукисы func (sf *BotCookie) Get() []*http.Cookie { return sf.cookie }