87 lines
1.9 KiB
Go
87 lines
1.9 KiB
Go
|
package main
|
||
|
|
||
|
import "time"
|
||
|
|
||
|
type SiteData struct {
|
||
|
Title string
|
||
|
Port int
|
||
|
SessionName string
|
||
|
ServerDir string
|
||
|
SessionSecret string
|
||
|
|
||
|
LastSave time.Time
|
||
|
}
|
||
|
|
||
|
func NewSiteData() *SiteData {
|
||
|
ret := new(SiteData)
|
||
|
ret.Title = "BCW Comic Feed"
|
||
|
ret.Port = 8080
|
||
|
ret.SessionName = "bcw-comic-feed"
|
||
|
ret.ServerDir = "./"
|
||
|
return ret
|
||
|
}
|
||
|
|
||
|
func (m *model) LoadSiteData() {
|
||
|
m.Site = m.GetSite()
|
||
|
}
|
||
|
|
||
|
func (m *model) SaveSite() error {
|
||
|
var err error
|
||
|
if err = m.bolt.OpenDB(); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
defer m.bolt.CloseDB()
|
||
|
bkt := []string{"site"}
|
||
|
if err = m.bolt.SetValue(bkt, "title", m.Site.Title); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
if err = m.bolt.SetInt(bkt, "port", m.Site.Port); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
if err = m.bolt.SetValue(bkt, "session-name", m.Site.SessionName); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
if err = m.bolt.SetValue(bkt, "session-secret", m.Site.SessionSecret); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
if err = m.bolt.SetValue(bkt, "server-dir", m.Site.ServerDir); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
if err = m.bolt.SetTimestamp(bkt, "last-save", m.Site.LastSave); err != nil {
|
||
|
return err
|
||
|
}
|
||
|
return nil
|
||
|
}
|
||
|
|
||
|
func (m *model) GetSite() *SiteData {
|
||
|
s := NewSiteData()
|
||
|
var err error
|
||
|
if err = m.bolt.OpenDB(); err != nil {
|
||
|
return s
|
||
|
}
|
||
|
defer m.bolt.CloseDB()
|
||
|
bkt := []string{"site"}
|
||
|
var wrkStr string
|
||
|
var wrkInt int
|
||
|
var wrkTm time.Time
|
||
|
if wrkStr, err = m.bolt.GetValue(bkt, "title"); err == nil {
|
||
|
s.Title = wrkStr
|
||
|
}
|
||
|
if wrkInt, err = m.bolt.GetInt(bkt, "port"); err == nil {
|
||
|
s.Port = wrkInt
|
||
|
}
|
||
|
if wrkStr, err = m.bolt.GetValue(bkt, "session-name"); err == nil {
|
||
|
s.SessionName = wrkStr
|
||
|
}
|
||
|
if wrkStr, err = m.bolt.GetValue(bkt, "session-secret"); err == nil {
|
||
|
s.SessionSecret = wrkStr
|
||
|
}
|
||
|
if wrkStr, err = m.bolt.GetValue(bkt, "server-dir"); err == nil {
|
||
|
s.ServerDir = wrkStr
|
||
|
}
|
||
|
if wrkTm, err = m.bolt.GetTimestamp(bkt, "last-save"); err == nil {
|
||
|
s.LastSave = wrkTm
|
||
|
}
|
||
|
return s
|
||
|
}
|