mirror of
https://github.com/woodchen-ink/Q58Bot.git
synced 2025-07-19 14:22:05 +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
|
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)
|
return fmt.Errorf("迁移现有关键词失败: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if err := DB.EnsureTablesExist(); err != nil {
|
||||||
|
return fmt.Errorf("确保数据库表存在失败: %v", err)
|
||||||
|
}
|
||||||
|
|
||||||
// 从环境变量中读取调试模式设置
|
// 从环境变量中读取调试模式设置
|
||||||
DEBUG_MODE = os.Getenv("DEBUG_MODE") == "true"
|
DEBUG_MODE = os.Getenv("DEBUG_MODE") == "true"
|
||||||
|
|
||||||
|
@ -28,7 +28,7 @@ func NewLinkFilter() (*LinkFilter, error) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if err := lf.LoadDataFromDatabase(); err != nil {
|
if err := lf.LoadDataFromDatabase(); err != nil {
|
||||||
return nil, err
|
return nil, fmt.Errorf("failed to load data from database: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
return lf, nil
|
return lf, nil
|
||||||
@ -41,12 +41,12 @@ func (lf *LinkFilter) LoadDataFromDatabase() error {
|
|||||||
var err error
|
var err error
|
||||||
lf.Keywords, err = core.DB.GetAllKeywords()
|
lf.Keywords, err = core.DB.GetAllKeywords()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return fmt.Errorf("failed to get keywords: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
lf.Whitelist, err = core.DB.GetAllWhitelist()
|
lf.Whitelist, err = core.DB.GetAllWhitelist()
|
||||||
if err != nil {
|
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))
|
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()
|
linkFilter, err := link_filter.NewLinkFilter()
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
log.Printf("Failed to create LinkFilter: %v", err)
|
||||||
return fmt.Errorf("failed to create LinkFilter: %v", err)
|
return fmt.Errorf("failed to create LinkFilter: %v", err)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user