From: qydysky Date: Mon, 19 Jun 2023 11:16:11 +0000 (+0000) Subject: Improve 保存弹幕至db 允许不填写create X-Git-Tag: v0.9.15~8 X-Git-Url: http://127.0.0.1:8081/?a=commitdiff_plain;h=69530937ae68a6294d5828c2f4a3150113f563e0;p=bili_danmu%2F.git Improve 保存弹幕至db 允许不填写create --- diff --git a/README.md b/README.md index bea45ad..8f1db2d 100644 --- a/README.md +++ b/README.md @@ -117,6 +117,8 @@ sqlite3: } ``` +字段`create`可以为空字符串,此时将不会在初次接收到弹幕时执行`create`语句,你必须要预先创建好表。 + 数据实例: |created|createdunix|msg|color|auth|uid|roomid| diff --git a/Reply/F.go b/Reply/F.go index 91a7c87..c250e11 100644 --- a/Reply/F.go +++ b/Reply/F.go @@ -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) } } })