This commit is contained in:
wood chen 2024-09-28 15:45:35 +08:00
parent fd0df99204
commit d496c9924a
4 changed files with 26 additions and 3 deletions

View File

@ -457,3 +457,21 @@ func contains(slice []string, str string) bool {
}
return false
}
func (d *Database) EnsureTablesExist() error {
tables := []string{"keywords", "whitelist", "prompt_replies", "config"}
for _, table := range tables {
var exists bool
err := d.db.QueryRow("SELECT name FROM sqlite_master WHERE type='table' AND name=?", table).Scan(&exists)
if err != nil && err != sql.ErrNoRows {
return err
}
if !exists {
if err := d.createTables(); err != nil {
return err
}
break
}
}
return nil
}

View File

@ -57,6 +57,10 @@ func Init() error {
return fmt.Errorf("迁移现有关键词失败: %v", err)
}
if err := DB.EnsureTablesExist(); err != nil {
return fmt.Errorf("确保数据库表存在失败: %v", err)
}
// 从环境变量中读取调试模式设置
DEBUG_MODE = os.Getenv("DEBUG_MODE") == "true"

View File

@ -28,7 +28,7 @@ func NewLinkFilter() (*LinkFilter, error) {
}
if err := lf.LoadDataFromDatabase(); err != nil {
return nil, err
return nil, fmt.Errorf("failed to load data from database: %v", err)
}
return lf, nil
@ -41,12 +41,12 @@ func (lf *LinkFilter) LoadDataFromDatabase() error {
var err error
lf.Keywords, err = core.DB.GetAllKeywords()
if err != nil {
return err
return fmt.Errorf("failed to get keywords: %v", err)
}
lf.Whitelist, err = core.DB.GetAllWhitelist()
if err != nil {
return err
return fmt.Errorf("failed to get whitelist: %v", err)
}
logger.Printf("Loaded %d Keywords and %d Whitelist entries from database", len(lf.Keywords), len(lf.Whitelist))

View File

@ -116,6 +116,7 @@ func RunMessageHandler() error {
linkFilter, err := link_filter.NewLinkFilter()
if err != nil {
log.Printf("Failed to create LinkFilter: %v", err)
return fmt.Errorf("failed to create LinkFilter: %v", err)
}