mirror of
https://github.com/krau/SaveAny-Bot.git
synced 2026-08-06 21:13:27 +08:00
feat: init commit
This commit is contained in:
33
dao/db.go
Normal file
33
dao/db.go
Normal file
@@ -0,0 +1,33 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"os"
|
||||
"path/filepath"
|
||||
|
||||
"github.com/glebarez/sqlite"
|
||||
"github.com/krau/SaveAny-Bot/config"
|
||||
"github.com/krau/SaveAny-Bot/logger"
|
||||
"github.com/krau/SaveAny-Bot/model"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
var db *gorm.DB
|
||||
|
||||
func Init() {
|
||||
if err := os.MkdirAll(filepath.Dir(config.Cfg.DB.Path), 755); err != nil {
|
||||
logger.L.Fatal("Failed to create data directory: ", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
var err error
|
||||
db, err = gorm.Open(sqlite.Open(config.Cfg.DB.Path), &gorm.Config{})
|
||||
if err != nil {
|
||||
logger.L.Fatal("Failed to open database: ", err)
|
||||
os.Exit(1)
|
||||
}
|
||||
logger.L.Debug("Database connected")
|
||||
db.AutoMigrate(&model.ReceivedFile{}, &model.User{})
|
||||
|
||||
for _, admin := range config.Cfg.Telegram.Admins {
|
||||
CreateUser(int64(admin))
|
||||
}
|
||||
}
|
||||
55
dao/file.go
Normal file
55
dao/file.go
Normal file
@@ -0,0 +1,55 @@
|
||||
package dao
|
||||
|
||||
import "github.com/krau/SaveAny-Bot/model"
|
||||
|
||||
func AddReceivedFile(receivedFile *model.ReceivedFile) error {
|
||||
return db.Create(receivedFile).Error
|
||||
}
|
||||
|
||||
func GetReceivedFileByFileID(fileID string) (*model.ReceivedFile, error) {
|
||||
var receivedFile model.ReceivedFile
|
||||
err := db.Where("file_id = ?", fileID).First(&receivedFile).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &receivedFile, nil
|
||||
}
|
||||
|
||||
func GetReceivedFileByFileUniqueID(fileUniqueID string) (*model.ReceivedFile, error) {
|
||||
var receivedFile model.ReceivedFile
|
||||
err := db.Where("file_unique_id = ?", fileUniqueID).First(&receivedFile).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &receivedFile, nil
|
||||
}
|
||||
|
||||
func GetReceivedFileByChatAndMessageID(chatID int64, messageID int) (*model.ReceivedFile, error) {
|
||||
var receivedFile model.ReceivedFile
|
||||
err := db.Where("chat_id = ? AND message_id = ?", chatID, messageID).First(&receivedFile).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return &receivedFile, nil
|
||||
}
|
||||
|
||||
func GetReceivedFilesByMediaGroupID(mediaGroupID string) ([]model.ReceivedFile, error) {
|
||||
var receivedFiles []model.ReceivedFile
|
||||
err := db.Where("media_group_id = ?", mediaGroupID).Find(&receivedFiles).Error
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
return receivedFiles, nil
|
||||
}
|
||||
|
||||
func UpdateReceivedFile(receivedFile *model.ReceivedFile) error {
|
||||
return db.Save(receivedFile).Error
|
||||
}
|
||||
|
||||
func DeleteReceivedFileByFileID(fileID string) error {
|
||||
return db.Where("file_id = ?", fileID).Delete(&model.ReceivedFile{}).Error
|
||||
}
|
||||
|
||||
func DeleteReceivedFileByFileUniqueID(fileUniqueID string) error {
|
||||
return db.Where("file_unique_id = ?", fileUniqueID).Delete(&model.ReceivedFile{}).Error
|
||||
}
|
||||
22
dao/user.go
Normal file
22
dao/user.go
Normal file
@@ -0,0 +1,22 @@
|
||||
package dao
|
||||
|
||||
import (
|
||||
"github.com/krau/SaveAny-Bot/model"
|
||||
)
|
||||
|
||||
func CreateUser(userID int64) error {
|
||||
if _, err := GetUserByUserID(userID); err == nil {
|
||||
return nil
|
||||
}
|
||||
return db.Create(&model.User{UserID: userID}).Error
|
||||
}
|
||||
|
||||
func GetUserByUserID(userID int64) (*model.User, error) {
|
||||
var user model.User
|
||||
err := db.Where("user_id = ?", userID).First(&user).Error
|
||||
return &user, err
|
||||
}
|
||||
|
||||
func UpdateUser(user *model.User) error {
|
||||
return db.Save(user).Error
|
||||
}
|
||||
Reference in New Issue
Block a user