write base server
This commit is contained in:
47
db/db.go
Normal file
47
db/db.go
Normal file
@@ -0,0 +1,47 @@
|
||||
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)
|
||||
}
|
||||
Reference in New Issue
Block a user