]> 127.0.0.1 Git - bili_danmu/.git/commitdiff
Improve 表情使用md5命名
authorqydysky <qydysky@foxmail.com>
Mon, 23 Sep 2024 17:40:43 +0000 (01:40 +0800)
committerqydysky <qydysky@foxmail.com>
Mon, 23 Sep 2024 17:40:43 +0000 (01:40 +0800)
Reply/F/danmuEmotes/danmuEmotes.go

index 22bd3f9eb7d7623b32032ca13658b92e7c313367..bca94ee1f9c4735f6a1bda404568cdb67cbe52cc 100644 (file)
@@ -8,10 +8,9 @@ import (
        c "github.com/qydysky/bili_danmu/CV"
        comp "github.com/qydysky/part/component"
        file "github.com/qydysky/part/file"
+       phash "github.com/qydysky/part/hash"
        log "github.com/qydysky/part/log"
-       ppool "github.com/qydysky/part/pool"
        reqf "github.com/qydysky/part/reqf"
-       pslice "github.com/qydysky/part/slice"
 )
 
 // path
@@ -20,21 +19,21 @@ var (
        Hashr     = comp.NewComp(func(ctx context.Context, s string) (r string, e error) {
                return hashr(s), nil
        })
-       danmuPool = ppool.New(ppool.PoolFunc[pslice.Buf[byte]]{
-               New: func() *pslice.Buf[byte] {
-                       return pslice.New[byte]()
-               },
-               InUse: func(b *pslice.Buf[byte]) bool {
-                       return !b.IsEmpty()
-               },
-               Reuse: func(b *pslice.Buf[byte]) *pslice.Buf[byte] {
-                       return b
-               },
-               Pool: func(b *pslice.Buf[byte]) *pslice.Buf[byte] {
-                       b.Reset()
-                       return b
-               },
-       }, 100)
+       // danmuPool = ppool.New(ppool.PoolFunc[pslice.Buf[byte]]{
+       //      New: func() *pslice.Buf[byte] {
+       //              return pslice.New[byte]()
+       //      },
+       //      InUse: func(b *pslice.Buf[byte]) bool {
+       //              return !b.IsEmpty()
+       //      },
+       //      Reuse: func(b *pslice.Buf[byte]) *pslice.Buf[byte] {
+       //              return b
+       //      },
+       //      Pool: func(b *pslice.Buf[byte]) *pslice.Buf[byte] {
+       //              b.Reset()
+       //              return b
+       //      },
+       // }, 100)
 )
 
 type Danmu struct {
@@ -55,8 +54,7 @@ func saveEmote(ctx context.Context, ptr Danmu) (ret any, err error) {
                                        *ptr.Msg = "[" + *ptr.Msg + emoticon_unique + "]"
                                }
                        }
-                       *ptr.Msg = hashr(*ptr.Msg)
-                       savePath := "emots/" + *ptr.Msg + ".png"
+                       savePath := "emots/" + hashr(*ptr.Msg) + ".png"
                        if !file.New(savePath, 0, true).IsExist() {
                                go func() {
                                        req := c.C.ReqPool.Get()
@@ -91,7 +89,6 @@ func saveEmote(ctx context.Context, ptr Danmu) (ret any, err error) {
                                if e := json.Unmarshal([]byte(extrab), &E); e != nil {
                                        return nil, e
                                } else {
-                                       *ptr.Msg = hashr(*ptr.Msg)
                                        for k, v := range E.Emots {
                                                m, ok := v.(map[string]any)
                                                if !ok {
@@ -138,42 +135,44 @@ func saveEmote(ctx context.Context, ptr Danmu) (ret any, err error) {
 }
 
 func hashr(s string) (r string) {
-       buf := danmuPool.Get()
-       defer danmuPool.Put(buf)
+       return phash.Md5String(s)
 
-       emoteB := false
-       for i := 0; i < len(s); i++ {
-               if !emoteB {
-                       _ = buf.Append([]byte{s[i]})
-                       emoteB = s[i] == '['
-                       continue
-               } else if s[i] == ']' {
-                       _ = buf.Append([]byte{s[i]})
-                       emoteB = false
-                       continue
-               }
-               switch s[i] {
-               case '\\':
-                       _ = buf.Append([]byte("_1"))
-               case '/':
-                       _ = buf.Append([]byte("_2"))
-               case '*':
-                       _ = buf.Append([]byte("_3"))
-               case '<':
-                       _ = buf.Append([]byte("_4"))
-               case '>':
-                       _ = buf.Append([]byte("_5"))
-               case '|':
-                       _ = buf.Append([]byte("_6"))
-               case ':':
-                       _ = buf.Append([]byte(":"))
-               case '?':
-                       _ = buf.Append([]byte("?"))
-               case '"':
-                       _ = buf.Append([]byte("“"))
-               default:
-                       _ = buf.Append([]byte{s[i]})
-               }
-       }
-       return string(buf.GetCopyBuf())
+       // buf := danmuPool.Get()
+       // defer danmuPool.Put(buf)
+
+       // emoteB := false
+       // for i := 0; i < len(s); i++ {
+       //      if !emoteB {
+       //              _ = buf.Append([]byte{s[i]})
+       //              emoteB = s[i] == '['
+       //              continue
+       //      } else if s[i] == ']' {
+       //              _ = buf.Append([]byte{s[i]})
+       //              emoteB = false
+       //              continue
+       //      }
+       //      switch s[i] {
+       //      case '\\':
+       //              _ = buf.Append([]byte("_1"))
+       //      case '/':
+       //              _ = buf.Append([]byte("_2"))
+       //      case '*':
+       //              _ = buf.Append([]byte("_3"))
+       //      case '<':
+       //              _ = buf.Append([]byte("_4"))
+       //      case '>':
+       //              _ = buf.Append([]byte("_5"))
+       //      case '|':
+       //              _ = buf.Append([]byte("_6"))
+       //      case ':':
+       //              _ = buf.Append([]byte(":"))
+       //      case '?':
+       //              _ = buf.Append([]byte("?"))
+       //      case '"':
+       //              _ = buf.Append([]byte("“"))
+       //      default:
+       //              _ = buf.Append([]byte{s[i]})
+       //      }
+       // }
+       // return string(buf.GetCopyBuf())
 }