]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
Improve 保存弹幕至db 允许不填写create
authorqydysky <qydysky@foxmail.com>
Mon, 19 Jun 2023 11:16:11 +0000 (11:16 +0000)
committerqydysky <qydysky@foxmail.com>
Mon, 19 Jun 2023 11:16:11 +0000 (11:16 +0000)
README.md
Reply/F.go

index bea45ad39d2823c224edc1c143c129e61555f43e..8f1db2d4ad32f55f95716e2708c2e8236fe68980 100644 (file)
--- a/README.md
+++ b/README.md
@@ -117,6 +117,8 @@ sqlite3:
 }
 ```
 
+字段`create`可以为空字符串,此时将不会在初次接收到弹幕时执行`create`语句,你必须要预先创建好表。
+
 数据实例:
 
 |created|createdunix|msg|color|auth|uid|roomid|
index 91a7c879ef33fd5b496acca22e08aac2f2459725..c250e1197bff65da8e7fa96b8e72be82ebac0bb0 100644 (file)
@@ -1680,7 +1680,7 @@ func (t *SaveDanmuToDB) init(c *c.Common) {
                        create, createok = v["create"].(string)
                        t.insert, insertok = v["insert"].(string)
 
-                       if dbname == "" || url == "" || create == "" || t.insert == "" || !dbnameok || !urlok || !createok || !insertok {
+                       if dbname == "" || url == "" || t.insert == "" || !dbnameok || !urlok || !insertok {
                                return
                        }
 
@@ -1692,14 +1692,16 @@ func (t *SaveDanmuToDB) init(c *c.Common) {
                                db.SetConnMaxLifetime(time.Minute * 3)
                                db.SetMaxOpenConns(10)
                                db.SetMaxIdleConns(10)
-                               tx := psql.BeginTx[any](db, context.Background())
-                               tx.Do(psql.SqlFunc[any]{Query: create, SkipSqlErr: true})
-                               if _, e := tx.Fin(); e != nil {
-                                       c.Log.Base_add("保存弹幕至db").L(`E: `, e)
-                               } else {
-                                       c.Log.Base_add("保存弹幕至db").L(`I: `, dbname)
-                                       t.db = db
+                               t.db = db
+                               if createok {
+                                       tx := psql.BeginTx[any](db, context.Background())
+                                       tx.Do(psql.SqlFunc[any]{Query: create, SkipSqlErr: true})
+                                       if _, e := tx.Fin(); e != nil {
+                                               c.Log.Base_add("保存弹幕至db").L(`E: `, e)
+                                               return
+                                       }
                                }
+                               c.Log.Base_add("保存弹幕至db").L(`I: `, dbname)
                        }
                }
        })