Просмотр исходного кода

d02 Добавление восстановления списка ботов

SVI 2 лет назад
Родитель
Сommit
e6f8deb9aa
2 измененных файлов с 17 добавлено и 14 удалено
  1. 8 8
      server/gui/win_main/win_main.go
  2. 9 6
      server/serv_bots/serv_bots.go

+ 8 - 8
server/gui/win_main/win_main.go

@@ -42,7 +42,7 @@ func NewWinMain(serv types.IServer) (*WinMain, error) {
 		lstBots := sf.serv.ServBots().ListBot()
 		for _, bot := range lstBots {
 			sf.botLogin = bot.Name()
-			sf.btnAddClick()
+			sf.addBot()
 		}
 	}
 
@@ -69,6 +69,8 @@ func (sf *WinMain) btnAddClick() {
 		OnSubmit: func() { // optional, handle form submission
 			sf.botLogin = entLogin.Text
 			sf.botPass = entPass.Text
+			winAddBot.Close()
+			go sf.addBot()
 		},
 	}
 	winAddBot.Resize(fyne.NewSize(640, 480))
@@ -78,17 +80,13 @@ func (sf *WinMain) btnAddClick() {
 }
 
 // Добавляет бота на жкран
-func (sf *WinMain)addBot(){
-
-	log.Println("Form submitted:", entLogin.Text)
-
-	log.Println("multiline:", entPass.Text)
-	winAddBot.Close()
+func (sf *WinMain) addBot() {
+	log.Printf("WinMain.addBot(): %q\n", sf.botLogin)
 	btnBot := widget.NewButton(sf.botLogin, sf.btnBotClick())
 	sf.boxLeft.Add(btnBot)
 	err := sf.serv.ServBots().AddBot(sf.botLogin, sf.botPass)
 	if err != nil {
-		log.Printf("WinMain.btnAddclick().OnSubmit(): in add bot to ferma, err=\n\t%v\n", err)
+		log.Printf("WinMain.addBot().OnSubmit(): in add bot to ferma, err=\n\t%v\n", err)
 	}
 }
 
@@ -102,5 +100,7 @@ func (sf *WinMain) btnBotClick() func() {
 
 func (sf *WinMain) btnExitClick() {
 	log.Println("btnExitClick()")
+	sf.Close()
 	sf.app.Quit()
+	sf.serv.CancelApp()
 }

+ 9 - 6
server/serv_bots/serv_bots.go

@@ -5,6 +5,7 @@ import (
 	"encoding/json"
 	"fmt"
 	"log"
+	"strings"
 	"sync"
 
 	"wartank/pkg/types"
@@ -51,11 +52,12 @@ func (sf *ServBots) Load() error {
 	sf.block.Lock()
 	defer sf.block.Unlock()
 	log.Println("ServBots.load()")
-	mapRes, err := sf.store.Find("/bots/list")
+	strList, err := sf.store.Get("/bots/list")
 	if err != nil {
-		return fmt.Errorf("ServBots.load(): in get list bot, err=\n\t%w", err)
+		if !strings.Contains(err.Error(), "not found") {
+			return fmt.Errorf("ServBots.Load(): in get list bot, err=\n\t%w", err)
+		}
 	}
-	strList := mapRes["/bots/list"]
 	lstBot := make([]string, 0)
 	if strList != "" { // Такое может быть при первом запуске
 		err = json.Unmarshal([]byte(strList), &lstBot)
@@ -107,11 +109,12 @@ func (sf *ServBots) AddBot(login, pass string) error {
 	}
 
 	{ // Сохранить бота в базу
-		mapRes, err := sf.store.Find("/bots/list")
+		strList, err := sf.store.Get("/bots/list")
 		if err != nil {
-			return fmt.Errorf("ServBots.AddBot(): in get list bot, err=\n\t%w", err)
+			if !strings.Contains(err.Error(), "not found") {
+				return fmt.Errorf("ServBots.AddBot(): in get list bot, err=\n\t%w", err)
+			}
 		}
-		strList := mapRes["/bots/list"]
 		lstBot := make([]string, 0)
 		if strList != "" { // Такое может быть при первом запуске
 			err = json.Unmarshal([]byte(strList), &lstBot)