From 5f91643b4df6e2767e1393c54e73de9d9f41cee9 Mon Sep 17 00:00:00 2001 From: Sebastian Date: Sat, 30 Aug 2025 13:36:45 +0200 Subject: [PATCH] Added time to sync and progress respond --- internal/backend/sync.go | 31 +++++++++++++++++++++++-------- 1 file changed, 23 insertions(+), 8 deletions(-) diff --git a/internal/backend/sync.go b/internal/backend/sync.go index c98da7e..8a3db84 100644 --- a/internal/backend/sync.go +++ b/internal/backend/sync.go @@ -5,7 +5,6 @@ import ( "encoding/hex" "errors" "fmt" - "github.com/panjf2000/ants/v2" "io" "io/fs" "log" @@ -18,6 +17,8 @@ import ( "sync" "time" + "github.com/panjf2000/ants/v2" + "github.com/MShekow/directory-checksum/directory_checksum" "github.com/spf13/afero" ) @@ -26,6 +27,7 @@ var Syncing = false var foldersSynced float32 var numberOfFoldersToSync float32 var totalTime time.Duration +var timeSpent time.Duration var allGames []repository.Game var gamesBeforeSync []repository.Game @@ -38,13 +40,19 @@ var gamesRemoved []string var catchedErrors []string var brokenSongs []string -type Response struct { +type SyncResponse struct { GamesAdded []string `json:"games_added"` GamesReAdded []string `json:"games_re_added"` GamesChangedTitle map[string]string `json:"games_changed_title"` GamesChangedContent []string `json:"games_changed_content"` GamesRemoved []string `json:"games_removed"` CatchedErrors []string `json:"catched_errors"` + TotalTime string `json:"total_time"` +} + +type ProgressResponse struct { + Progress string `json:"progress"` + TimeSpent string `json:"time_spent"` } type GameStatus int @@ -72,13 +80,19 @@ func ResetDB() { repo.ClearGames(db.Ctx) } -func SyncProgress() string { - //log.Printf("Progress: %v%%\n", int((foldersSynced/numberOfFoldersToSync)*10)) - log.Printf("Progress: %v/%v %v%%\n", int(foldersSynced), int(numberOfFoldersToSync), int((foldersSynced/numberOfFoldersToSync)*100)) - return fmt.Sprintf("Progress: %v%%", int((foldersSynced/numberOfFoldersToSync)*100)) +func SyncProgress() ProgressResponse { + progress := int((foldersSynced / numberOfFoldersToSync) * 100) + out := time.Time{}.Add(timeSpent) + fmt.Printf("\nTotal time: %v\n", timeSpent) + fmt.Printf("Total time: %v\n", out.Format("15:04:05.00000")) + log.Printf("Progress: %v/%v %v%%\n", int(foldersSynced), int(numberOfFoldersToSync), progress) + return ProgressResponse{ + Progress: fmt.Sprintf("%v", progress), + TimeSpent: out.Format("15:04:05.00000"), + } } -func SyncResult() Response { +func SyncResult() SyncResponse { fmt.Printf("\nGames Before: %d\n", len(gamesBeforeSync)) fmt.Printf("Games After: %d\n", len(gamesAfterSync)) @@ -147,13 +161,14 @@ func SyncResult() Response { fmt.Printf("\nTotal time: %v\n", totalTime) fmt.Printf("Total time: %v\n", out.Format("15:04:05.00000")) - return Response{ + return SyncResponse{ GamesAdded: gamesAdded, GamesReAdded: gamesReAdded, GamesChangedTitle: gamesChangedTitle, GamesChangedContent: gamesChangedContent, GamesRemoved: gamesRemoved, CatchedErrors: catchedErrors, + TotalTime: out.Format("15:04:05.00000"), } }