package bot_net import ( . "gitp78su.ipnodns.ru/svi/kern" . "gitp78su.ipnodns.ru/svi/kern/krn/ktypes" . "wartank/app/lev0/types" "wartank/app/lev3/bot/bot_net/bot_http_conn" "wartank/app/lev3/bot/bot_net/bot_net_login" "wartank/app/lev3/bot/bot_net/http_worker" ) /* Веб-клиент для выполнения запросов на сервер */ // БотСеть -- веб-клиент для выполнения запросов на веб-сервер type БотСеть struct { бот ИБот соедХттп *bot_http_conn.БотХттпСоед логин *bot_net_login.БотСетьЛогин еслиОнлайн ISafeBool вебВоркер ИХттпВоркер ctx ILocalCtx лог ILogBuf } // НовБотСеть -- возвращает новый коннект к сети бота func НовБотСеть(конт ILocalCtx) *БотСеть { лог := NewLogBuf() лог.Info("НовБотСеть()\n") бот := конт.Get("бот").Val().(ИБот) лог.Info("НовБотСеть(): имя=%q\n", бот.Имя()) ctx := NewLocalCtx(конт.Ctx()) сам := &БотСеть{ бот: бот, соедХттп: bot_http_conn.НовБотХттпСоед(), еслиОнлайн: NewSafeBool(), ctx: ctx, лог: лог, } конт.Set("хттпКлиент", сам.соедХттп.ХттпКлиент(), "HTTP-клиент для запросов") конт.Set("ботСеть", сам, "Сеть бота") сам.вебВоркер = http_worker.НовХттпВоркер(конт) // Подключаем сетевой логин сам.логин = bot_net_login.НовБотСетьЛогин(конт) сам.еслиОнлайн.Set() _ = ИБотСеть(сам) return сам } // Бот -- возвращает ссылку на своего бота func (сам *БотСеть) Бот() ИБот { return сам.бот } // Контекст -- контекст сети бота func (сам *БотСеть) Контекст() ILocalCtx { return сам.ctx } // ЕслиОнлайн -- возвращает признак нахождения в онлайне func (сам *БотСеть) ЕслиОнлайн() ISafeBool { return сам.еслиОнлайн } // ВебВоркер -- возвращает веб-воркер бота func (сам *БотСеть) ВебВоркер() ИХттпВоркер { return сам.вебВоркер } // Куки -- возвращает куки для HTTP-коннект func (сам *БотСеть) Куки() ИБотКуки { return сам.соедХттп.Куки() }