bot_config.go 1.7 KB

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