107 lines
3.1 KiB
Go
107 lines
3.1 KiB
Go
package main
|
|
|
|
import (
|
|
"time"
|
|
|
|
"gogs.bullercodeworks.com/brian/boltease"
|
|
)
|
|
|
|
func getDatabase() (*boltease.DB, error) {
|
|
db, err := boltease.Create("aocbot.db", 0644, nil)
|
|
if err != nil {
|
|
return err
|
|
}
|
|
// Make sure that we have a 'users' bucket
|
|
db.MkBucketPath([]string{"users"})
|
|
// Make sure that we have a 'channels' bucket
|
|
db.MkBucketPath([]string{"channels"})
|
|
|
|
return db, nil
|
|
}
|
|
|
|
func (db *boltease.DB) saveUser(usr *User) error {
|
|
var err error
|
|
if err = db.OpenDB(); err != nil {
|
|
return err
|
|
}
|
|
defer db.CloseDB()
|
|
|
|
usr := []string{"users", usr.ID}
|
|
db.SetValue(append(usr, "Name"), usr.Name)
|
|
db.SetBool(append(usr, "Deleted"), usr.Deleted)
|
|
db.SetValue(append(usr, "Status"), usr.Status)
|
|
db.SetValue(append(usr, "Color"), usr.Color)
|
|
db.SetValue(append(usr, "RealName"), usr.RealName)
|
|
db.SetValue(append(usr, "TZ"), usr.TZ)
|
|
db.SetValue(append(usr, "TZLabel"), usr.TZLabel)
|
|
db.SetInt(append(usr, "TZOffset"), usr.TZOffset)
|
|
db.SetBool(append(usr, "IsAdmin"), usr.IsAdmin)
|
|
db.SetBool(append(usr, "IsOwner"), usr.IsOwner)
|
|
db.SetBool(append(usr, "IsPrimaryOwner"), usr.IsPrimaryOwner)
|
|
db.SetBool(append(usr, "IsRestricted"), usr.IsRestricted)
|
|
db.SetBool(append(usr, "IsUltraRestricted"), usr.IsUltraRestricted)
|
|
db.SetBool(append(usr, "IsBot"), usr.IsBot)
|
|
db.SetBool(append(usr, "HasFiles"), usr.HasFiles)
|
|
db.SetTimestamp(append(usr, "LastUpdated"), time.Now())
|
|
return err
|
|
}
|
|
|
|
func (db *boltease.DB) getUser(usrId string) (*User, error) {
|
|
usr := new(User)
|
|
var err error
|
|
if err = db.OpenDB(); err != nil {
|
|
return usr, err
|
|
}
|
|
defer db.CloseDB()
|
|
|
|
upath := []string{"users", usrID}
|
|
if usr.Name, err = db.GetValue(append(upath, "Name")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.Deleted, err = db.GetBool(append(upath, "Deleted")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.Status, err = db.GetValue(append(upath, "Status")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.Color, err = db.GetValue(append(upath, "Color")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.RealName, err = db.GetValue(append(upath, "RealName")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.TZ, err = db.GetValue(append(upath, "TZ")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.TZLabel, err = db.GetValue(append(upath, "TZLabel")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.TZOffset, err = db.GetInt(append(upath, "TZOffset")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.IsAdmin, err = db.GetBool(append(upath, "IsAdmin")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.IsOwner, err = db.GetBool(append(upath, "IsOwner")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.IsPrimaryOwner, err = db.GetBool(append(upath, "IsPrimaryOwner")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.IsRestricted, err = db.GetBool(append(upath, "IsRestricted")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.IsUltraRestricted, err = db.GetBool(append(upath, "IsUltraRestricted")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.IsBot, err = db.GetBool(append(upath, "IsBot")); err != nil {
|
|
return usr, err
|
|
}
|
|
if usr.HasFiles, err = db.GetBool(append(upath, "HasFiles")); err != nil {
|
|
return usr, err
|
|
}
|
|
usr.LastUpdated, err = db.GetTimestamp(append(upath, "LastUpdated"))
|
|
|
|
return usr, err
|
|
}
|