]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
Improve plugin v0.8.5 v0.8.6 v0.8.7
authorqydysky <qydysky@foxmail.com>
Mon, 24 Apr 2023 13:30:18 +0000 (21:30 +0800)
committerqydysky <qydysky@foxmail.com>
Mon, 24 Apr 2023 13:30:18 +0000 (21:30 +0800)
README.md
Reply/F.go
Reply/Reply.go
bili_danmu.go
go.mod
go.sum
plugin/plugin.go

index e04266c9b4607b3446696920963a33fc407804ec..41f2bd00a77145f0beade7afa4ee6863c1fc7680 100644 (file)
--- a/README.md
+++ b/README.md
 ### 说明
 本项目使用github action自动构建,构建过程详见[yml](https://github.com/qydysky/bili_danmu/blob/master/.github/workflows/go.yml)
 
+#### 保存弹幕至sqlite
+配置文件中`保存弹幕至sqlite`,如果设置了文件路径,如`a.sqlite3`,将会在工作目录生成`a.sqlite3`,并记录弹幕。
+这是一个插件,构建方式可能变化,请查看[SaveDanmuToSqlite3](https://pkg.go.dev/github.com/qydysky/bili_danmu_plugin#SaveDanmuToSqlite3)
+
 #### 指定房间录制回调
 配置文件添加了如下配置
 ```json
index 1439ef05a1831e2a521592c9c6e3be374767dce0..40c971a4025996061d9358900e136bc3e4ad9e76 100644 (file)
@@ -19,10 +19,8 @@ import (
        "time"
 
        // "runtime"
-       "database/sql"
 
        "golang.org/x/text/encoding/simplifiedchinese"
-       _ "modernc.org/sqlite"
 
        "github.com/dustin/go-humanize"
        c "github.com/qydysky/bili_danmu/CV"
@@ -34,7 +32,6 @@ import (
        file "github.com/qydysky/part/file"
        limit "github.com/qydysky/part/limit"
        msgq "github.com/qydysky/part/msgq"
-       psql "github.com/qydysky/part/sqlite"
        psync "github.com/qydysky/part/sync"
        sys "github.com/qydysky/part/sys"
        websocket "github.com/qydysky/part/websocket"
@@ -1549,59 +1546,3 @@ func (t *DanmuReLiveTriger) Check(uid, msg string) {
                }
        }
 }
-
-// 保存弹幕至sqlite
-type SaveDanmuToSqlite3 struct {
-       db   *sql.DB
-       init sync.Once
-}
-
-var saveDanmuToSqlite3 SaveDanmuToSqlite3
-
-func (t *SaveDanmuToSqlite3) Init(c *c.Common) {
-       t.init.Do(func() {
-               if v, ok := c.K_v.LoadV(`保存弹幕至sqlite`).(string); ok && v != "" {
-                       if db, e := sql.Open("sqlite", v); e != nil {
-                               panic(e)
-                       } else {
-                               t.db = db
-                       }
-
-                       ctx := context.Background()
-                       tx := psql.BeginTx[any](t.db, ctx, &sql.TxOptions{})
-                       tx = tx.Do(psql.SqlFunc[any]{
-                               Ty:         psql.Execf,
-                               Ctx:        ctx,
-                               Query:      "create table danmu (created text, createdunix text, msg text, color text, auth text, uid text, roomid text)",
-                               SkipSqlErr: true,
-                       })
-                       if e := tx.Fin(); e != nil {
-                               panic(e)
-                       }
-               }
-       })
-}
-
-func (t *SaveDanmuToSqlite3) SaveToSqlite3(item Danmu_item) {
-       if t.db != nil {
-               ctx := context.Background()
-               tx := psql.BeginTx[any](t.db, ctx, &sql.TxOptions{})
-               tx = tx.Do(psql.SqlFunc[any]{
-                       Ty:    psql.Execf,
-                       Ctx:   ctx,
-                       Query: "insert into danmu values (?, ?, ?, ?, ?, ?, ?)",
-                       Args:  []any{time.Now().Format(time.DateTime), time.Now().Unix(), item.msg, item.color, item.auth, item.uid, item.roomid},
-                       AfterEF: func(_ *any, result sql.Result, txE error) (_ *any, stopErr error) {
-                               if v, e := result.RowsAffected(); e != nil {
-                                       return nil, e
-                               } else if v != 1 {
-                                       return nil, errors.New("插入数量错误")
-                               }
-                               return nil, nil
-                       },
-               })
-               if e := tx.Fin(); e != nil {
-                       flog.Base_add("保存弹幕至sqlite").L(`E: `, e)
-               }
-       }
-}
index 2d0773a9a7bc51a7db056cf8c1e0ea3e4ce535aa..d3b2cee0fd920ec50b20a9af35a0eba8b457ee93 100644 (file)
@@ -14,6 +14,7 @@ import (
        F "github.com/qydysky/bili_danmu/F"
        ws_msg "github.com/qydysky/bili_danmu/Reply/ws_msg"
        send "github.com/qydysky/bili_danmu/Send"
+       plugin "github.com/qydysky/bili_danmu/plugin"
        p "github.com/qydysky/part"
        mq "github.com/qydysky/part/msgq"
        pstrings "github.com/qydysky/part/strings"
@@ -1091,11 +1092,18 @@ func (replyF) danmu(s string) {
 
        msglog := msglog.Log_show_control(false)
 
-       { //附加功能 弹幕机 封禁 弹幕合并
-               //保存弹幕至sqlite
-               saveDanmuToSqlite3.Init(c.C)
-               saveDanmuToSqlite3.SaveToSqlite3(item)
-               //对指定弹幕重新录制
+       { // 附加功能 弹幕机 封禁 弹幕合并
+               // 传送Danmu
+               plugin.Plugin.Push_tag(`Danmu`, plugin.Danmu{
+                       Msg:    item.msg,
+                       Color:  item.color,
+                       Border: item.border,
+                       Mode:   item.mode,
+                       Auth:   item.auth,
+                       Uid:    item.uid,
+                       Roomid: item.roomid,
+               })
+               // 对指定弹幕重新录制
                danmuReLiveTriger.Init(c.C)
                danmuReLiveTriger.Check(item.uid, item.msg)
                go Danmujif(item.msg)
index eb42acacdcf8c6329adfbff0636d085f1c5d616a..618b52905fa02efe763bdb5cfec14932018e31a1 100644 (file)
@@ -15,6 +15,7 @@ import (
        reply "github.com/qydysky/bili_danmu/Reply"
        send "github.com/qydysky/bili_danmu/Send"
        Cmd "github.com/qydysky/bili_danmu/cmd"
+       plugin "github.com/qydysky/bili_danmu/plugin"
        sys "github.com/qydysky/part/sys"
 
        msgq "github.com/qydysky/part/msgq"
@@ -75,6 +76,7 @@ func Start() {
                if c.C.K_v.Len() == 0 {
                        panic("未能加载配置")
                }
+               plugin.Plugin.Push_tag(`Event`, plugin.LoadKv)
        }
 
        {
diff --git a/go.mod b/go.mod
index e8ec54e62911967ecc41e1167096085974f0b24d..adab188c52a1cf2baf751f97c8d98afebb181474 100644 (file)
--- a/go.mod
+++ b/go.mod
@@ -6,7 +6,7 @@ require (
        github.com/gofrs/uuid v4.4.0+incompatible
        github.com/gotk3/gotk3 v0.6.1
        github.com/mdp/qrterminal/v3 v3.0.0
-       github.com/qydysky/part v0.24.14
+       github.com/qydysky/part v0.24.16
        github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e
        github.com/skratchdot/open-golang v0.0.0-20200116055534-eef842397966
        golang.org/x/text v0.9.0
@@ -14,21 +14,7 @@ require (
 
 require golang.org/x/exp v0.0.0-20230420155640-133eef4313cb
 
-require (
-       github.com/google/uuid v1.3.0 // indirect
-       github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 // indirect
-       github.com/mattn/go-isatty v0.0.17 // indirect
-       github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec // indirect
-       lukechampine.com/uint128 v1.2.0 // indirect
-       modernc.org/cc/v3 v3.40.0 // indirect
-       modernc.org/ccgo/v3 v3.16.13 // indirect
-       modernc.org/libc v1.22.4 // indirect
-       modernc.org/mathutil v1.5.0 // indirect
-       modernc.org/memory v1.5.0 // indirect
-       modernc.org/opt v0.1.3 // indirect
-       modernc.org/strutil v1.1.3 // indirect
-       modernc.org/token v1.0.1 // indirect
-)
+require github.com/pmezard/go-difflib v1.0.0 // indirect
 
 require (
        github.com/andybalholm/brotli v1.0.5
@@ -38,7 +24,6 @@ require (
        github.com/gorilla/websocket v1.5.0 // indirect
        github.com/klauspost/compress v1.16.4 // indirect
        github.com/miekg/dns v1.1.53 // indirect
-       github.com/pmezard/go-difflib v1.0.0 // indirect
        github.com/shirou/gopsutil v3.21.11+incompatible // indirect
        github.com/thedevsaddam/gojsonq/v2 v2.5.2 // indirect
        github.com/tklauser/go-sysconf v0.3.11 // indirect
@@ -49,6 +34,5 @@ require (
        golang.org/x/sys v0.7.0 // indirect
        golang.org/x/tools v0.8.0 // indirect
        gopkg.in/yaml.v3 v3.0.1 // indirect
-       modernc.org/sqlite v1.22.0
        rsc.io/qr v0.2.0 // indirect
 )
diff --git a/go.sum b/go.sum
index 7c887f924de6d99f392c659e0ef10ed021e96a2e..6ff0420ef7206088740a36deccab5baa9477e48a 100644 (file)
--- a/go.sum
+++ b/go.sum
@@ -8,20 +8,14 @@ github.com/go-ole/go-ole v1.2.6 h1:/Fpf6oFPoeFik9ty7siob0G6Ke8QvQEuVcuChpwXzpY=
 github.com/go-ole/go-ole v1.2.6/go.mod h1:pprOEPIfldk/42T2oK7lQ4v4JSDwmV0As9GaiUsvbm0=
 github.com/gofrs/uuid v4.4.0+incompatible h1:3qXRTX8/NbyulANqlc0lchS1gqAVxRgsuW1YrTJupqA=
 github.com/gofrs/uuid v4.4.0+incompatible/go.mod h1:b2aQJv3Z4Fp6yNu3cdSllBxTCLRxnplIgP/c0N/04lM=
-github.com/google/uuid v1.3.0 h1:t6JiXgmwXMjEs8VusXIJk2BXHsn+wx8BZdTaoZ5fu7I=
-github.com/google/uuid v1.3.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo=
 github.com/gorilla/websocket v1.5.0 h1:PPwGk2jz7EePpoHN/+ClbZu8SPxiqlu12wZP/3sWmnc=
 github.com/gorilla/websocket v1.5.0/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE=
 github.com/gotk3/gotk3 v0.6.1 h1:GJ400a0ecEEWrzjBvzBzH+pB/esEMIGdB9zPSmBdoeo=
 github.com/gotk3/gotk3 v0.6.1/go.mod h1:/hqFpkNa9T3JgNAE2fLvCdov7c5bw//FHNZrZ3Uv9/Q=
-github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51 h1:Z9n2FFNUXsshfwJMBgNA0RU6/i7WVaAegv3PtuIHPMs=
-github.com/kballard/go-shellquote v0.0.0-20180428030007-95032a82bc51/go.mod h1:CzGEWj7cYgsdH8dAjBGEr58BoE7ScuLd+fwFZ44+/x8=
 github.com/klauspost/compress v1.16.4 h1:91KN02FnsOYhuunwU4ssRe8lc2JosWmizWa91B5v1PU=
 github.com/klauspost/compress v1.16.4/go.mod h1:ntbaceVETuRiXiv4DpjP66DpAtAGkEQskQzEyD//IeE=
 github.com/mattn/go-colorable v0.1.2/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE=
 github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s=
-github.com/mattn/go-isatty v0.0.17 h1:BTarxUcIeDqL27Mc+vyvdWYSL28zpIhv3RoTdsLMPng=
-github.com/mattn/go-isatty v0.0.17/go.mod h1:kYGgaQfpe5nmfYZH+SKPsOc2e4SrIfOl2e/yFXSvRLM=
 github.com/mdp/qrterminal v1.0.1/go.mod h1:Z33WhxQe9B6CdW37HaVqcRKzP+kByF3q/qLxOGe12xQ=
 github.com/mdp/qrterminal/v3 v3.0.0 h1:ywQqLRBXWTktytQNDKFjhAvoGkLVN3J2tAFZ0kMd9xQ=
 github.com/mdp/qrterminal/v3 v3.0.0/go.mod h1:NJpfAs7OAm77Dy8EkWrtE4aq+cE6McoLXlBqXQEwvE0=
@@ -29,13 +23,8 @@ github.com/miekg/dns v1.1.53 h1:ZBkuHr5dxHtB1caEOlZTLPo7D3L3TWckgUUs/RHfDxw=
 github.com/miekg/dns v1.1.53/go.mod h1:uInx36IzPl7FYnDcMeVWxj9byh7DutNykX4G9Sj60FY=
 github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM=
 github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4=
-github.com/qydysky/part v0.24.13 h1:wB9d4/Z+yZddtoIIv/WXlFQqofsiBHVCa2oF2M1oO0w=
-github.com/qydysky/part v0.24.13/go.mod h1:AQJH+BYeN30eKXjkDqGEtw0vx3wVGplBeOMLSyleEDo=
-github.com/qydysky/part v0.24.14 h1:paT6krJrmiPIIJEnIaW6bEsjmepscrNywreCTvNUnik=
-github.com/qydysky/part v0.24.14/go.mod h1:Yr436pl0qgq9MWDQ2yk7R3ga9P80WWjTRaUNTJrGv/w=
-github.com/remyoudompheng/bigfft v0.0.0-20200410134404-eec4a21b6bb0/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
-github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec h1:W09IVJc94icq4NjY3clb7Lk8O1qJ8BdBEF8z0ibU0rE=
-github.com/remyoudompheng/bigfft v0.0.0-20230129092748-24d4a6f8daec/go.mod h1:qqbHyh8v60DhA7CoWK5oRCqLrMHRGoxYCSS9EjAz6Eo=
+github.com/qydysky/part v0.24.16 h1:w+dqb0pacS8bYkLi8pb0wY0sz4q5TCsdEmiO0g9EYeM=
+github.com/qydysky/part v0.24.16/go.mod h1:vZgRwVF/3s1R07lJO3lbnyfFaY/3xeLkkaeFCPpzjlI=
 github.com/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI=
 github.com/shirou/gopsutil v3.21.11+incompatible/go.mod h1:5b4v6he4MtMOwMlS0TUMTu2PcXUg8+E1lC7eC3UO/RA=
 github.com/skip2/go-qrcode v0.0.0-20200617195104-da1b6568686e h1:MRM5ITcdelLK2j1vwZ3Je0FKVCfqOLp5zO6trqMLYs0=
@@ -60,7 +49,6 @@ golang.org/x/net v0.9.0/go.mod h1:d48xBJpPfHeWQsugry2m+kC02ZBRGRgulfHnEXEuWns=
 golang.org/x/sync v0.1.0 h1:wsuoTGHzEhffawBOhz5CYhcrV4IdKZbEyZjBMuTp12o=
 golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY=
 golang.org/x/sys v0.0.0-20190916202348-b4ddaad3f8a3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs=
-golang.org/x/sys v0.0.0-20220811171246-fbc7d0a398ab/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.2.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
 golang.org/x/sys v0.7.0 h1:3jlCCIQZPdOYu1h8BkNvLz8Kgwtae2cagcG/VamtZRU=
 golang.org/x/sys v0.7.0/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg=
@@ -71,25 +59,5 @@ golang.org/x/tools v0.8.0/go.mod h1:JxBZ99ISMI5ViVkT1tr6tdNmXeTrcpVSD3vZ1RsRdN4=
 gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0=
 gopkg.in/yaml.v3 v3.0.1 h1:fxVm/GzAzEWqLHuvctI91KS9hhNmmWOoWu0XTYJS7CA=
 gopkg.in/yaml.v3 v3.0.1/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM=
-lukechampine.com/uint128 v1.2.0 h1:mBi/5l91vocEN8otkC5bDLhi2KdCticRiwbdB0O+rjI=
-lukechampine.com/uint128 v1.2.0/go.mod h1:c4eWIwlEGaxC/+H1VguhU4PHXNWDCDMUlWdIWl2j1gk=
-modernc.org/cc/v3 v3.40.0 h1:P3g79IUS/93SYhtoeaHW+kRCIrYaxJ27MFPv+7kaTOw=
-modernc.org/cc/v3 v3.40.0/go.mod h1:/bTg4dnWkSXowUO6ssQKnOV0yMVxDYNIsIrzqTFDGH0=
-modernc.org/ccgo/v3 v3.16.13 h1:Mkgdzl46i5F/CNR/Kj80Ri59hC8TKAhZrYSaqvkwzUw=
-modernc.org/ccgo/v3 v3.16.13/go.mod h1:2Quk+5YgpImhPjv2Qsob1DnZ/4som1lJTodubIcoUkY=
-modernc.org/libc v1.22.4 h1:wymSbZb0AlrjdAVX3cjreCHTPCpPARbQXNz6BHPzdwQ=
-modernc.org/libc v1.22.4/go.mod h1:jj+Z7dTNX8fBScMVNRAYZ/jF91K8fdT2hYMThc3YjBY=
-modernc.org/mathutil v1.5.0 h1:rV0Ko/6SfM+8G+yKiyI830l3Wuz1zRutdslNoQ0kfiQ=
-modernc.org/mathutil v1.5.0/go.mod h1:mZW8CKdRPY1v87qxC/wUdX5O1qDzXMP5TH3wjfpga6E=
-modernc.org/memory v1.5.0 h1:N+/8c5rE6EqugZwHii4IFsaJ7MUhoWX07J5tC/iI5Ds=
-modernc.org/memory v1.5.0/go.mod h1:PkUhL0Mugw21sHPeskwZW4D6VscE/GQJOnIpCnW6pSU=
-modernc.org/opt v0.1.3 h1:3XOZf2yznlhC+ibLltsDGzABUGVx8J6pnFMS3E4dcq4=
-modernc.org/opt v0.1.3/go.mod h1:WdSiB5evDcignE70guQKxYUl14mgWtbClRi5wmkkTX0=
-modernc.org/sqlite v1.22.0 h1:Uo+wEWePCspy4SAu0w2VbzUHEftOs7yoaWX/cYjsq84=
-modernc.org/sqlite v1.22.0/go.mod h1:cxbLkB5WS32DnQqeH4h4o1B0eMr8W/y8/RGuxQ3JsC0=
-modernc.org/strutil v1.1.3 h1:fNMm+oJklMGYfU9Ylcywl0CO5O6nTfaowNsh2wpPjzY=
-modernc.org/strutil v1.1.3/go.mod h1:MEHNA7PdEnEwLvspRMtWTNnp2nnyvMfkimT1NKNAGbw=
-modernc.org/token v1.0.1 h1:A3qvTqOwexpfZZeyI0FeGPDlSWX5pjZu9hF4lU+EKWg=
-modernc.org/token v1.0.1/go.mod h1:UGzOrNV1mAFSEB63lOFHIpNRUVMvYTc6yu1SMY/XTDM=
 rsc.io/qr v0.2.0 h1:6vBLea5/NRMVTz8V66gipeLycZMl/+UlFmk8DvqQ6WY=
 rsc.io/qr v0.2.0/go.mod h1:IF+uZjkb9fqyeF/4tlBoynqmQxUoPfWEKh921coOuXs=
index 2b00217b93b5e4922486078058f33516c7ad5557..4ce4c5aa4834d7763a557990cee2bbd837f14194 100644 (file)
@@ -1,6 +1,13 @@
 package plugin
 
-import msgq "github.com/qydysky/part/msgq"
+import (
+       msgq "github.com/qydysky/part/msgq"
+)
+
+// Event
+const (
+       LoadKv = iota
+)
 
 var Plugin msgq.Msgq