From 40bc52d99a6e8f6954d5d40244cc1b24c603a7b6 Mon Sep 17 00:00:00 2001 From: qydysky Date: Sun, 2 Mar 2025 15:02:41 +0800 Subject: [PATCH] =?utf8?q?Fix=20=E5=81=B6=E5=8F=91=E5=BC=82=E5=B8=B8?= =?utf8?q?=E8=B5=84=E6=BA=90=E9=AB=98=E5=8D=A0=E7=94=A8=20=20(#179)?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit * Fix 偶发异常资源高占用 * Improve 优化 --- Reply/F/ass/ass.go | 19 ++++++++++++------- Reply/F/ass/ass_test.go | 4 ++-- Reply/F/comp.go | 2 +- go.mod | 2 +- go.sum | 4 ++-- 5 files changed, 18 insertions(+), 13 deletions(-) diff --git a/Reply/F/ass/ass.go b/Reply/F/ass/ass.go index 70ab0f1..31d6c1e 100644 --- a/Reply/F/ass/ass.go +++ b/Reply/F/ass/ass.go @@ -7,6 +7,7 @@ import ( "iter" "math" "strconv" + "strings" "unicode/utf8" "github.com/dustin/go-humanize" @@ -20,7 +21,7 @@ var ( ) type i interface { - ToAss(savePath string) + ToAss(savePath string, filename ...string) Init(cfg any) } @@ -93,8 +94,8 @@ Format: Layer, Start, End, Style, Name, MarginL, MarginR, MarginV, Effect, Text } } -func (t *Ass) ToAss(savePath string) { - f := file.New(savePath+"0.ass", 0, false) +func (t *Ass) ToAss(savePath string, filename ...string) { + f := file.New(savePath+append(filename, "0.ass")[0], 0, false) defer f.Close() if f.IsExist() { _ = f.Delete() @@ -104,8 +105,12 @@ func (t *Ass) ToAss(savePath string) { var lsd = make([]float64, lsSize) var lso = make([]float64, lsSize) - _, _ = f.Write([]byte(t.header), true) - for line := range loadCsv(savePath) { + var write bool + for line := range loadCsv(savePath, strings.Split(append(filename, "0.ass")[0], `.`)[0]+".csv") { + if !write { + _, _ = f.Write([]byte(t.header), true) + write = true + } danmul := utf8.RuneCountInString(line.Text) danmuSec := (float64(t.showSec*t.fontsize*danmul) / float64(t.fontsize*danmul+playResX)) @@ -142,9 +147,9 @@ func (t *Ass) ToAss(savePath string) { } } -func loadCsv(savePath string) iter.Seq[Data] { +func loadCsv(savePath string, filename ...string) iter.Seq[Data] { return func(yield func(Data) bool) { - csvf := file.New(savePath+"0.csv", 0, false) + csvf := file.New(savePath+append(filename, "0.csv")[0], 0, false) defer csvf.Close() if !csvf.IsExist() { diff --git a/Reply/F/ass/ass_test.go b/Reply/F/ass/ass_test.go index d8bc7ed..aaadf0b 100644 --- a/Reply/F/ass/ass_test.go +++ b/Reply/F/ass/ass_test.go @@ -8,10 +8,10 @@ import ( func TestMain(t *testing.T) { var ass = comp.Get[interface { - ToAss(savePath string) + ToAss(savePath string, filename ...string) Init(cfg any) }](`ass`) - ass.ToAss("./testdata/") + ass.ToAss("./testdata/", "1.ass") } func TestStos(t *testing.T) { diff --git a/Reply/F/comp.go b/Reply/F/comp.go index 4c4d702..f75d2b9 100644 --- a/Reply/F/comp.go +++ b/Reply/F/comp.go @@ -25,7 +25,7 @@ var DanmuCountPerMin = comp.Get[interface { }](`danmuCountPerMin`) var Ass = comp.Get[interface { - ToAss(savePath string) + ToAss(savePath string, filename ...string) Init(cfg any) }](`ass`) diff --git a/go.mod b/go.mod index 4d12711..c520fac 100644 --- a/go.mod +++ b/go.mod @@ -5,7 +5,7 @@ go 1.24 require ( github.com/gotk3/gotk3 v0.6.4 github.com/mdp/qrterminal/v3 v3.2.0 - github.com/qydysky/part v0.28.20250225161111 + github.com/qydysky/part v0.28.20250302064654 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.22.0 // indirect diff --git a/go.sum b/go.sum index 4365d3f..2c42669 100644 --- a/go.sum +++ b/go.sum @@ -46,8 +46,8 @@ github.com/qydysky/biliApi v0.0.0-20240725184407-15076dddb6fb h1:dtSpNF9hLQa09TU github.com/qydysky/biliApi v0.0.0-20240725184407-15076dddb6fb/go.mod h1:om024vfxALQ5vxsbaGoMm8IS0esLYBnEOpJI8FsGoDg= github.com/qydysky/brotli v0.0.0-20240828134800-e9913a6e7ed9 h1:k451T+bpsLr+Dq9Ujo+Qtx0iomRA1XXS5ttlEojvfuQ= github.com/qydysky/brotli v0.0.0-20240828134800-e9913a6e7ed9/go.mod h1:cI8/gy/wjy2Eb+p2IUj2ZuDnC8R5Vrx3O0VMPvMvphA= -github.com/qydysky/part v0.28.20250225161111 h1:34x3k9NeHpP2rfMaq6d5sm3Lru9QdxI3zcXT5JbgUOg= -github.com/qydysky/part v0.28.20250225161111/go.mod h1:MsSAiZMiWQ5pGP5BCEB3OBsoAPaGykNB7vbeY3mKF2w= +github.com/qydysky/part v0.28.20250302064654 h1:DpyB2t8PlwClebx2lDsUakDPNaDAXfOXLTzVH3xCb6k= +github.com/qydysky/part v0.28.20250302064654/go.mod h1:MsSAiZMiWQ5pGP5BCEB3OBsoAPaGykNB7vbeY3mKF2w= 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/shirou/gopsutil v3.21.11+incompatible h1:+1+c1VGhc88SSonWP6foOcLhvnKlUeu/erjjvaPEYiI= -- 2.39.2