Files
bdgrp_go/db/db.go
2026-09-02 18:16:35 +08:00

48 lines
652 B
Go

package db
import (
"encoding/json"
"os"
"sync"
)
type Database struct {
Users map[string][]map[string]any `json:"Users"`
}
var (
DB Database
mu sync.Mutex
path = "db.json"
)
func Init(servers []string) {
data, err := os.ReadFile(path)
if err == nil {
json.Unmarshal(data, &DB)
}
if DB.Users == nil {
DB.Users = make(map[string][]map[string]any)
}
for _, s := range servers {
if DB.Users[s] == nil {
DB.Users[s] = []map[string]any{}
}
}
Save()
}
func Save() {
mu.Lock()
defer mu.Unlock()
data, _ := json.MarshalIndent(DB, "", " ")
tmp := path + ".tmp"
os.WriteFile(tmp, data, 0644)
os.Rename(tmp, path)
}