warbot_config.go 1.7 KB

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