|
|
@@ -8,6 +8,7 @@ import (
|
|
|
"strings"
|
|
|
"time"
|
|
|
"wartank/pkg/alias"
|
|
|
+ "wartank/pkg/components/kernel/logger"
|
|
|
"wartank/pkg/components/safe_bool"
|
|
|
"wartank/pkg/types"
|
|
|
"wartank/server/serv_bots/warbot/angar"
|
|
|
@@ -32,35 +33,28 @@ type ВарБот struct {
|
|
|
}
|
|
|
|
|
|
// ЗагрузитьВарБот -- загружает бота из базы
|
|
|
-func ЗагрузитьВарБот(сервер types.ИСервер, номер alias.БотНомер) (types.ИБот, error) {
|
|
|
- { // Предусловия
|
|
|
- if сервер == nil {
|
|
|
- return nil, fmt.Errorf("ЗагрузитьВарБот(): IApp is nil")
|
|
|
- }
|
|
|
- if номер == 0 {
|
|
|
- return nil, fmt.Errorf("ЗагрузитьВарБот(): номер пустой")
|
|
|
- }
|
|
|
- }
|
|
|
+func ЗагрузитьВарБот(сервер types.ИСервер, номер alias.БотНомер) *ВарБот {
|
|
|
+ лог := logger.НовЛоггер("ВарБот")
|
|
|
+ лог.Инфо("ЗагрузитьВарБот()\n")
|
|
|
+ лог.Паника(сервер == nil, "ЗагрузитьВарБот(): ИСервер ==nil")
|
|
|
+ лог.Паника(номер == 0, "ЗагрузитьВарБот(): номер пустой")
|
|
|
стрНомер := fmt.Sprint(номер)
|
|
|
log.Printf("ЗагрузитьВарБот(): номер=%q\n", стрНомер)
|
|
|
store := сервер.Хранилище()
|
|
|
binData, err := store.Получ("/bots/" + стрНомер)
|
|
|
if err != nil {
|
|
|
if !strings.Contains(err.Error(), "not found") {
|
|
|
- return nil, fmt.Errorf("ЗагрузитьВарБот(): in load bot '%v' from store, err=\n\t%w", номер, err)
|
|
|
+ лог.Паника(true, "ЗагрузитьВарБот(): in load bot '%v' from store, err=\n\t%v\n", номер, err)
|
|
|
}
|
|
|
- return nil, fmt.Errorf("ЗагрузитьВарБот(): bot '%v' not found in store", номер)
|
|
|
+ лог.Паника(err != nil, "ЗагрузитьВарБот(): in load bot '%v' from store, err=\n\t%v\n", номер, err)
|
|
|
}
|
|
|
конфиг := &warbot_config.ВарБотКонфиг{}
|
|
|
- if err = конфиг.Unmarshal(binData); err != nil {
|
|
|
- return nil, fmt.Errorf("ЗагрузитьВарБот(): in unmarshal WarBotConfig(%v) from store, err=\n\t%w", номер, err)
|
|
|
- }
|
|
|
+ конфиг.Unmarshal(binData)
|
|
|
сам, err := создатьЯдроВарБот(сервер, конфиг)
|
|
|
- if err != nil {
|
|
|
- return nil, fmt.Errorf("ЗагрузитьВарБот(): in make core for bot '%v', err=\n\t%w", номер, err)
|
|
|
- }
|
|
|
+ лог.Паника(err!=nil, "ЗагрузитьВарБот(): in make core for bot '%v', err=\n\t%v\n", номер, err)
|
|
|
go сам.рестарт()
|
|
|
- return сам, nil
|
|
|
+ _ = types.ИБот(сам)
|
|
|
+ return сам
|
|
|
}
|
|
|
|
|
|
// Каждые два часа перезапускает себя
|