warbot_config.go 1.3 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. // package warbot_config -- конфиг бота для хранения в базе
  2. package warbot_config
  3. import (
  4. "encoding/json"
  5. "fmt"
  6. "sync"
  7. )
  8. // ВарБотКонфиг -- конфиг бота для хранения в базе
  9. type ВарБотКонфиг struct {
  10. ЕслиАвтозапуск_ bool `json:"is_auto_run,omitempty"` // Признак автостарта при загрузке
  11. Логин_ string `json:"login"` // Логин бота
  12. Пароль_ string `json:"password"` // Пароль бота
  13. блок sync.RWMutex
  14. }
  15. // Marshall -- сериализует конфиг в JSON
  16. func (сам *ВарБотКонфиг) Marshall() string {
  17. binData, _ := json.Marshal(сам)
  18. return string(binData)
  19. }
  20. // Unmarshall -- десериализует себя из байтового потока
  21. func (сам *ВарБотКонфиг) Unmarshall(strData string) error {
  22. err := json.Unmarshal([]byte(strData), сам)
  23. if err != nil {
  24. return fmt.Errorf("WarBotConfig.Unmarshall(): err=\n\t%w", err)
  25. }
  26. return nil
  27. }
  28. // Логин -- возвращает логин
  29. func (сам *ВарБотКонфиг) Логин() string {
  30. сам.блок.RLock()
  31. defer сам.блок.RUnlock()
  32. return сам.Логин_
  33. }