|
|
@@ -27,7 +27,7 @@ type Бот struct {
|
|
|
ангар ИАнгар
|
|
|
сеть ИБотСеть
|
|
|
еслиРаботает ИБезопБул
|
|
|
- еслиАвтозапуск ИБезопБул
|
|
|
+ еслиАвтозапуск ИБезопБулНаблюд
|
|
|
конфиг *bot_config.БотКонфиг // Конфиг бота для хранения в базе
|
|
|
кнт context.Context // Контекст бота
|
|
|
фтОтмена func() // Функция отменя контекста бота
|
|
|
@@ -41,7 +41,7 @@ func ЗагрузитьВарБот(конт ИЯдроКонтекст, ном
|
|
|
лог.Инфо("ЗагрузитьВарБот()\n")
|
|
|
лог.Паника(номер == 0, "ЗагрузитьВарБот(): номер пустой")
|
|
|
стрНомер := fmt.Sprint(номер)
|
|
|
- log.Printf("ЗагрузитьВарБот(): номер=%q\n", стрНомер)
|
|
|
+ лог.Инфо("ЗагрузитьВарБот(): номер=%q\n", стрНомер)
|
|
|
хран := конт.Получ("kernStore").(ИЯдроХранилище)
|
|
|
binData, err := хран.Get("/bots/" + стрНомер)
|
|
|
if err != nil {
|
|
|
@@ -62,7 +62,7 @@ func ЗагрузитьВарБот(конт ИЯдроКонтекст, ном
|
|
|
func (сам *Бот) рестарт() {
|
|
|
time.Sleep(time.Hour * 2)
|
|
|
сам.прилож.Отменить()
|
|
|
- log.Printf("ВарБот.рестарт(): бот %q перезагружен\n", сам.конфиг.Логин_)
|
|
|
+ сам.лог.Инфо("рестарт(): бот %q перезагружен\n", сам.конфиг.Логин_)
|
|
|
}
|
|
|
|
|
|
// НовВарБот -- возвращает новый WarBot
|
|
|
@@ -71,7 +71,7 @@ func НовВарБот(конт ИЯдроКонтекст, номер АБот
|
|
|
лог.Инфо("НовВарБот()\n")
|
|
|
лог.Паника(логин == "", "НовВарБот(): логин пустой")
|
|
|
лог.Паника(пароль == "", "НовВарБот(): пароль пустой")
|
|
|
- log.Printf("НовВарБот(): name=%q\n", логин)
|
|
|
+ лог.Инфо("НовВарБот(): name=%q\n", логин)
|
|
|
config := &bot_config.БотКонфиг{
|
|
|
ЕслиАвтозапуск_: еслиАвто,
|
|
|
Логин_: логин,
|
|
|
@@ -79,7 +79,7 @@ func НовВарБот(конт ИЯдроКонтекст, номер АБот
|
|
|
Номер_: номер,
|
|
|
}
|
|
|
сам := создатьЯдроВарБот(конт, config)
|
|
|
- сам.сохр()
|
|
|
+ сам.сохрКонфиг()
|
|
|
_ = ИБот(сам)
|
|
|
return сам
|
|
|
}
|
|
|
@@ -93,17 +93,17 @@ func создатьЯдроВарБот(конт ИЯдроКонтекст, к
|
|
|
приложение := конт.Получ("приложение").(ИПриложение)
|
|
|
контБот := kernel.НовКонтекст()
|
|
|
сам := &Бот{
|
|
|
- конт: контБот,
|
|
|
- прилож: приложение,
|
|
|
- хран: конт.Получ("kernStore").(ИЯдроХранилище),
|
|
|
- стата: tank_stat.НовТанкСтат(конт),
|
|
|
- еслиРаботает: kernel.НовБезопБул(),
|
|
|
- еслиАвтозапуск: kernel.НовБезопБул(),
|
|
|
- конфиг: конфиг,
|
|
|
- кнт: ctx,
|
|
|
- фтОтмена: fnCancel,
|
|
|
- лог: лог,
|
|
|
+ конт: контБот,
|
|
|
+ прилож: приложение,
|
|
|
+ хран: конт.Получ("kernStore").(ИЯдроХранилище),
|
|
|
+ стата: tank_stat.НовТанкСтат(конт),
|
|
|
+ еслиРаботает: kernel.НовБезопБул(),
|
|
|
+ конфиг: конфиг,
|
|
|
+ кнт: ctx,
|
|
|
+ фтОтмена: fnCancel,
|
|
|
+ лог: лог,
|
|
|
}
|
|
|
+ сам.еслиАвтозапуск = kernel.НовБезопБулНаблюд(сам.Имя(), сам.автозапускИзм)
|
|
|
сам.конт.Уст("бот", сам)
|
|
|
сам.конт.Уст("приложение", приложение)
|
|
|
var err error
|
|
|
@@ -118,13 +118,8 @@ func создатьЯдроВарБот(конт ИЯдроКонтекст, к
|
|
|
return сам
|
|
|
}
|
|
|
|
|
|
-// Сервер -- возвращает ссылку на объект сервера
|
|
|
-func (сам *Бот) Сервер() ИПриложение {
|
|
|
- return сам.прилож
|
|
|
-}
|
|
|
-
|
|
|
-// ЕслиПуск -- возвращает признак, что бот подключен
|
|
|
-func (сам *Бот) ЕслиПуск() bool {
|
|
|
+// ЕслиРабота -- возвращает признак, что бот подключен
|
|
|
+func (сам *Бот) ЕслиРабота() bool {
|
|
|
return сам.еслиРаботает.Получ()
|
|
|
}
|
|
|
|
|
|
@@ -172,24 +167,16 @@ func (сам *Бот) Сеть() ИБотСеть {
|
|
|
return сам.сеть
|
|
|
}
|
|
|
|
|
|
-// АвтоИграЕсли -- возвращает признак автоматического запуска бота
|
|
|
-func (сам *Бот) АвтоИграЕсли() bool {
|
|
|
- return сам.еслиАвтозапуск.Получ()
|
|
|
-}
|
|
|
-
|
|
|
-// АвтоИграУст -- устанавливает признак автоматического запуска бота
|
|
|
-func (сам *Бот) АвтоИграУст() {
|
|
|
- log.Printf("WarBot.SetAutoGame()")
|
|
|
- сам.еслиАвтозапуск.Уст()
|
|
|
- сам.конфиг.ЕслиАвтозапуск_ = true
|
|
|
- сам.сохрКонфиг()
|
|
|
+// Автозапуск -- возвращает признак автоматического запуска бота
|
|
|
+func (сам *Бот) Автозапуск() ИБезопБулНаблюд {
|
|
|
+ return сам.еслиАвтозапуск
|
|
|
}
|
|
|
|
|
|
-// АвтоИграСброс -- сбрасывает признак автоматического запуска бота
|
|
|
-func (сам *Бот) АвтоИграСброс() {
|
|
|
- log.Printf("WarBot.ResetAutoGame()")
|
|
|
- сам.еслиАвтозапуск.Уст()
|
|
|
- сам.конфиг.ЕслиАвтозапуск_ = false
|
|
|
+// Обратный вызов автоматического запуска бота
|
|
|
+func (сам *Бот) автозапускИзм(знач bool) {
|
|
|
+ сам.лог.Отладка("Бот.автозапускИзм()")
|
|
|
+ // сам.еслиАвтозапуск.Уст()
|
|
|
+ сам.конфиг.ЕслиАвтозапуск_ = знач
|
|
|
сам.сохрКонфиг()
|
|
|
}
|
|
|
|
|
|
@@ -197,10 +184,9 @@ func (сам *Бот) АвтоИграСброс() {
|
|
|
func (сам *Бот) сохрКонфиг() {
|
|
|
log.Printf("ВарБот.сохрКонфиг()")
|
|
|
strConf := сам.конфиг.Marshall()
|
|
|
- err := сам.хран.Set("/bots/"+сам.Имя(), strConf)
|
|
|
- if err != nil {
|
|
|
- log.Printf("ВарБот.сохрКонфиг(): err=\n\t%v\n", err)
|
|
|
- }
|
|
|
+ стрНомер := fmt.Sprint(сам.Номер())
|
|
|
+ err := сам.хран.Set("/bots/"+стрНомер, strConf)
|
|
|
+ сам.лог.Паника(err != nil, "ВарБот.сохрКонфиг(): err=\n\t%v\n", err)
|
|
|
}
|
|
|
|
|
|
// Контекст -- возвращает контекст бота
|
|
|
@@ -213,13 +199,6 @@ func (сам *Бот) Закончить() {
|
|
|
сам.фтОтмена()
|
|
|
}
|
|
|
|
|
|
-// Сохраняет себя в базу
|
|
|
-func (сам *Бот) сохр() {
|
|
|
- стрНомер := fmt.Sprint(сам.Номер())
|
|
|
- err := сам.хран.Set("/bots/"+стрНомер, сам.конфиг.Marshall())
|
|
|
- сам.лог.Паника(err != nil, "ВарБот.сохр(): err=\n\t%v\n", err)
|
|
|
-}
|
|
|
-
|
|
|
// КонтБот -- возвращает контекст бота
|
|
|
func (сам *Бот) КонтБот() ИБотКонтекст {
|
|
|
return сам.конт
|