feat: 首次提交,添加Web界面和Redis支持的数据管理系统

This commit is contained in:
2025-09-01 00:45:37 +08:00
parent 7abb872b2c
commit b9fbe07b70
30 changed files with 4970 additions and 0 deletions

107
db/local.go Normal file
View File

@@ -0,0 +1,107 @@
package db
import (
"encoding/json"
"errors"
"fmt"
"os"
)
var localDB []Token
type Token struct {
Token string `json:"token"`
DedupObject string `json:"dedup_object"`
}
func InitLocalDB() {
start:
data, err := os.ReadFile("./token.json")
if os.IsNotExist(err) {
os.WriteFile("./token.json", []byte("[]"), 0644)
goto start
} else if err != nil {
fmt.Println(err)
}
err = json.Unmarshal(data, &localDB)
if err != nil {
fmt.Println(err)
}
}
func ListToken() []Token {
InitLocalDB()
return localDB
}
func CreateToken(token string, dedupObject string) error {
InitLocalDB()
for _, t := range localDB {
if t.Token == token {
return errors.New("token已经存在")
}
}
a := append(localDB, Token{token, dedupObject})
marshal, err := json.Marshal(a)
if err != nil {
return err
}
if err := os.WriteFile("./token.json", marshal, 0644); err != nil {
return err
}
InitLocalDB()
return nil
}
func UpdateToken(token string, dedupObject string) error {
InitLocalDB()
for i, t := range localDB {
if t.Token == token {
localDB[i].DedupObject = dedupObject
marshal, err := json.Marshal(localDB)
if err != nil {
return err
}
if err := os.WriteFile("./token.json", marshal, 0644); err != nil {
return err
}
return nil
}
}
InitLocalDB()
return errors.New("token not found")
}
func DeleteToken(token string) error {
InitLocalDB()
for i, t := range localDB {
if t.Token == token {
localDB = append(localDB[:i], localDB[i+1:]...)
marshal, err := json.Marshal(localDB)
if err != nil {
return err
}
if err := os.WriteFile("./token.json", marshal, 0644); err != nil {
return err
}
return nil
}
}
InitLocalDB()
return errors.New("token not found")
}
func GetDedupObject(token string) (dedupObject string, err error) {
for i, t := range localDB {
if t.Token == token {
return localDB[i].DedupObject, nil
}
}
return "", errors.New("未找到Token")
}