|
@@ -33,7 +33,7 @@ type ВарБот struct {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// ЗагрузитьВарБот -- загружает бота из базы
|
|
// ЗагрузитьВарБот -- загружает бота из базы
|
|
|
-func ЗагрузитьВарБот(сервер types.ИСервер, номер alias.БотНомер) (*ВарБот, error) {
|
|
|
|
|
|
|
+func ЗагрузитьВарБот(сервер types.ИСервер, номер alias.БотНомер) (types.ИБот, error) {
|
|
|
{ // Предусловия
|
|
{ // Предусловия
|
|
|
if сервер == nil {
|
|
if сервер == nil {
|
|
|
return nil, fmt.Errorf("ЗагрузитьВарБот(): IApp is nil")
|
|
return nil, fmt.Errorf("ЗагрузитьВарБот(): IApp is nil")
|
|
@@ -60,18 +60,14 @@ func ЗагрузитьВарБот(сервер types.ИСервер, номе
|
|
|
if err != nil {
|
|
if err != nil {
|
|
|
return nil, fmt.Errorf("ЗагрузитьВарБот(): in make core for bot '%v', err=\n\t%w", номер, err)
|
|
return nil, fmt.Errorf("ЗагрузитьВарБот(): in make core for bot '%v', err=\n\t%w", номер, err)
|
|
|
}
|
|
}
|
|
|
- // go сам.рестарт()
|
|
|
|
|
|
|
+ go сам.рестарт()
|
|
|
return сам, nil
|
|
return сам, nil
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Каждые два часа перезапускает себя
|
|
// Каждые два часа перезапускает себя
|
|
|
func (сам *ВарБот) рестарт() {
|
|
func (сам *ВарБот) рестарт() {
|
|
|
time.Sleep(time.Hour * 2)
|
|
time.Sleep(time.Hour * 2)
|
|
|
- сам.Закончить()
|
|
|
|
|
- сам, ош := ЗагрузитьВарБот(сам.сервер, сам.конфиг.Номер_)
|
|
|
|
|
- if ош != nil {
|
|
|
|
|
- panic(fmt.Errorf("ВарБот.рестарт(): при загрузке своего тела, ош=\n\t%w", ош))
|
|
|
|
|
- }
|
|
|
|
|
|
|
+ сам.сервер.Отменить()
|
|
|
log.Printf("ВарБот.рестарт(): бот %q перезагружен\n", сам.конфиг.Логин_)
|
|
log.Printf("ВарБот.рестарт(): бот %q перезагружен\n", сам.конфиг.Логин_)
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -174,15 +170,15 @@ func (сам *ВарБот) Пароль() string {
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Пуск -- запускает бот в работу
|
|
// Пуск -- запускает бот в работу
|
|
|
-func (сам *ВарБот) Пуск() (err error) {
|
|
|
|
|
|
|
+func (сам *ВарБот) Пуск() {
|
|
|
if сам.еслиРаботает.Получ() {
|
|
if сам.еслиРаботает.Получ() {
|
|
|
- return nil
|
|
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
if err := сам.ангар.Пуск(); err != nil {
|
|
if err := сам.ангар.Пуск(); err != nil {
|
|
|
- return fmt.Errorf("WarBot.Run(): bot(%q) in run angar, err=\n\t%w", сам.Имя(), err)
|
|
|
|
|
|
|
+ log.Printf("WarBot.Run(): bot(%q) in run angar, err=\n\t%v\n", сам.Имя(), err)
|
|
|
|
|
+ return
|
|
|
}
|
|
}
|
|
|
сам.еслиРаботает.Уст()
|
|
сам.еслиРаботает.Уст()
|
|
|
- return nil
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
// Error -- возвращает финальную ошибку работы, если была
|
|
// Error -- возвращает финальную ошибку работы, если была
|