| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package bot_net
- import (
- "context"
- . "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"
- "wartank/kernel"
- . "wartank/kernel/kernel_types"
- )
- /*
- Веб-клиент для выполнения запросов на сервер
- */
- // БотСеть -- веб-клиент для выполнения запросов на веб-сервер
- type БотСеть struct {
- бот ИБот
- соедХттп *bot_http_conn.БотХттпСоед
- логин *bot_net_login.БотСетьЛогин
- еслиОнлайн ИБезопБул
- вебВоркер ИХттпВоркер
- ctx context.Context
- фнОтмена func()
- лог ИЯдроЛог
- }
- // НовБотСеть -- возвращает новый коннект к сети бота
- func НовБотСеть(конт ИБотКонтекст) *БотСеть {
- лог := kernel.НовЛог("ВарБотСеть")
- лог.Инфо("НовБотСеть()\n")
- бот := конт.Получ("юот").(ИБот)
- лог.Инфо("НовБотСеть(): имя=%q\n", бот.Имя())
- ctx, фнОтмена := context.WithCancel(бот.Контекст())
- сам := &БотСеть{
- бот: бот,
- соедХттп: bot_http_conn.НовБотХттпСоед(),
- еслиОнлайн: kernel.НовБезопБул(),
- ctx: ctx,
- фнОтмена: фнОтмена,
- лог: лог,
- }
- конт.Уст("хттпКлиент", сам.соедХттп.ХттпКлиент())
- сам.вебВоркер = http_worker.НовХттпВоркер(конт)
- // Подключаем сетевой логин
- конт.Уст("ботСеть", сам)
- сам.логин = bot_net_login.НовБотСетьЛогин(конт)
- сам.еслиОнлайн.Уст()
- _ = ИБотСеть(сам)
- return сам
- }
- // Бот -- возвращает ссылку на своего бота
- func (сам *БотСеть) Бот() ИБот {
- return сам.бот
- }
- // Контекст -- контекст сети бота
- func (сам *БотСеть) Контекст() context.Context {
- return сам.ctx
- }
- // Отмена -- отменяет контекст сети бота
- func (сам *БотСеть) Отмена() {
- сам.фнОтмена()
- }
- // ЕслиОнлайн -- возвращает признак нахождения в онлайне
- func (сам *БотСеть) ЕслиОнлайн() ИБезопБул {
- return сам.еслиОнлайн
- }
- // ВебВоркер -- возвращает веб-воркер бота
- func (сам *БотСеть) ВебВоркер() ИХттпВоркер {
- return сам.вебВоркер
- }
- // Куки -- возвращает куки для HTTP-коннект
- func (сам *БотСеть) Куки() ИБотКуки {
- return сам.соедХттп.Куки()
- }
|