From 69530937ae68a6294d5828c2f4a3150113f563e0 Mon Sep 17 00:00:00 2001 From: qydysky Date: Mon, 19 Jun 2023 11:16:11 +0000 Subject: [PATCH] =?utf8?q?Improve=20=E4=BF=9D=E5=AD=98=E5=BC=B9=E5=B9=95?= =?utf8?q?=E8=87=B3db=20=E5=85=81=E8=AE=B8=E4=B8=8D=E5=A1=AB=E5=86=99creat?= =?utf8?q?e?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit --- README.md | 2 ++ Reply/F.go | 18 ++++++++++-------- 2 files changed, 12 insertions(+), 8 deletions(-) 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) } } }) -- 2.39.2