// package arena_laborator -- лаборатория на базе package arena_laborator import ( "fmt" "log" "strings" "time" . "wartank/app/lev0/types" ) // АренаЛаборатория на базе type АренаЛаборатория struct { бот ИБот } // НоваяЛаборатория -- возвращает новую лабораторию func НоваяЛаборатория(бот ИБот) (*АренаЛаборатория, error) { if бот == nil { return nil, fmt.Errorf("НоваяЛаборатория(): ИБот == nil") } сам := &АренаЛаборатория{ бот: бот, } return сам, nil } // Пуск -- запуск в работу func (сам *АренаЛаборатория) Пуск() { go сам.пуск() } // Запускает в работу в отдельном потоке func (сам *АренаЛаборатория) пуск() { time.Sleep(time.Millisecond * 4500) for { select { case <-сам.бот.Контекст().Done(): return default: сам.работать() } } } // Основной метод работы func (сам *АренаЛаборатория) работать() { defer time.Sleep(time.Second * 300) if ош := сам.улучшить(); ош != nil { log.Printf("Лаборатория.работать(): ош=\n\t%v\n", ош) return } } // Улучшает параметры лаборатории func (сам *АренаЛаборатория) улучшить() error { // https://wartank.ru/buildings клиент := сам.бот.Сеть().ВебВоркер() фнПостроить := func() error { лстСтр := клиент.Получ("https://wartank.ru/buildings") еслиНашли := false //