From a021658fa998f569a6bf68718e1a817f75f98c78 Mon Sep 17 00:00:00 2001 From: AzenKain Date: Tue, 26 Aug 2025 09:58:30 +0700 Subject: [PATCH] FIX: Fix bug check diff type --- frontend/src/pages/diff/index.tsx | 15 --------------- internal/diff-service/hdiffz.go | 11 +++++++---- pkg/constant/constant.go | 2 +- pkg/sevenzip/sevenzip.go | 13 +++++++++++-- 4 files changed, 19 insertions(+), 22 deletions(-) diff --git a/frontend/src/pages/diff/index.tsx b/frontend/src/pages/diff/index.tsx index b24afa0..17c8067 100644 --- a/frontend/src/pages/diff/index.tsx +++ b/frontend/src/pages/diff/index.tsx @@ -87,19 +87,6 @@ export default function DiffPage() { setDiffDir('') return } - const [isOk, validType, errorType] = await DiffService.CheckTypeHDiff(basePath) - if (!isOk) { - toast.error(errorType) - setDiffCheckResult('error') - setDiffDir('') - return - } - if (validType == "") { - toast.error('Not valid file type') - setDiffCheckResult('error') - setDiffDir('') - return - } setDiffDir(basePath) setDiffCheckResult('success') } else { @@ -134,8 +121,6 @@ export default function DiffPage() { } setProgressUpdate(1) - - if (validType === 'hdiffmap.json') { setStageType('Version Validate') setProgressUpdate(0) diff --git a/internal/diff-service/hdiffz.go b/internal/diff-service/hdiffz.go index 4a6f289..85d71d6 100644 --- a/internal/diff-service/hdiffz.go +++ b/internal/diff-service/hdiffz.go @@ -18,16 +18,16 @@ import ( type DiffService struct{} func (h *DiffService) CheckTypeHDiff(patchPath string) (bool, string, string) { - if ok, err := sevenzip.IsFileIn7z(patchPath, "manifest"); err == nil && ok { - return true, "manifest", "" - } - if ok, err := sevenzip.IsFileIn7z(patchPath, "hdifffiles.txt"); err == nil && ok { return true, "hdifffiles.txt", "" } if ok, err := sevenzip.IsFileIn7z(patchPath, "hdiffmap.json"); err == nil && ok { return true, "hdiffmap.json", "" } + if ok, err := sevenzip.IsFileIn7z(patchPath, "manifest"); err == nil && ok { + return true, "manifest", "" + } + return false, "", "not found hdifffiles.txt or hdiffmap.json" } @@ -155,9 +155,12 @@ func (h *DiffService) DeleteFiles(gamePath string) (bool, string) { } if err := scanner.Err(); err != nil { + file.Close() return false, "no delete files exist" } + file.Close() + for i, file := range deleteFiles { os.Remove(filepath.Join(gamePath, file)) application.Get().Event.Emit("diff:progress", map[string]int{"progress": i, "maxProgress": len(deleteFiles)}) diff --git a/pkg/constant/constant.go b/pkg/constant/constant.go index 53322a8..fa34343 100644 --- a/pkg/constant/constant.go +++ b/pkg/constant/constant.go @@ -10,7 +10,7 @@ const ProxyZipFile = "64bit.zip" const LauncherFile = "firefly-launcher.exe" const TempUrl = "./temp" -const CurrentLauncherVersion = "1.5.0" +const CurrentLauncherVersion = "1.5.1" type ToolFile string diff --git a/pkg/sevenzip/sevenzip.go b/pkg/sevenzip/sevenzip.go index b17c552..587060c 100644 --- a/pkg/sevenzip/sevenzip.go +++ b/pkg/sevenzip/sevenzip.go @@ -21,9 +21,18 @@ func IsFileIn7z(archivePath, fileInside string) (bool, error) { lines := strings.Split(out.String(), "\n") for _, line := range lines { - if strings.Contains(line, fileInside) { - return true, nil + line = strings.TrimSpace(line) + if line == "" { + continue } + parts := strings.Fields(line) + if len(parts) > 0 { + path := parts[len(parts)-1] + if path == fileInside { + return true, nil + } + } + } return false, fmt.Errorf("%s not found in %s", fileInside, archivePath)