mirror of
https://github.com/woodchen-ink/Q58Bot.git
synced 2025-07-18 05:42:06 +08:00
fix
This commit is contained in:
parent
fd0df99204
commit
d496c9924a
@ -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
|
||||
}
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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))
|
||||
|
@ -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)
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user