From dbd54228414070e22f1defbea35453e23093cc75 Mon Sep 17 00:00:00 2001 From: Ben Sarmiento Date: Thu, 23 Nov 2023 00:22:10 +0100 Subject: [PATCH] Process timestamps properly --- internal/torrent/hooks.go | 8 ++++---- internal/torrent/manager.go | 5 +++-- pkg/realdebrid/types.go | 23 +++++++++++++++-------- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/internal/torrent/hooks.go b/internal/torrent/hooks.go index d149f07..114a6a8 100644 --- a/internal/torrent/hooks.go +++ b/internal/torrent/hooks.go @@ -6,11 +6,12 @@ import ( "os/exec" "github.com/debridmediamanager.com/zurg/internal/config" - "github.com/debridmediamanager.com/zurg/pkg/logutil" + "go.uber.org/zap" ) type ScriptExecutor struct { Script string + Args []string } func (se *ScriptExecutor) Execute() (string, error) { @@ -29,11 +30,10 @@ func (se *ScriptExecutor) Execute() (string, error) { return out.String(), nil } -func OnLibraryUpdateHook(config config.ConfigInterface) { - log := logutil.NewLogger().Named("hooks") - +func OnLibraryUpdateHook(paths []string, config config.ConfigInterface, log *zap.SugaredLogger) { executor := &ScriptExecutor{ Script: config.GetOnLibraryUpdate(), + Args: paths, } output, err := executor.Execute() if err != nil { diff --git a/internal/torrent/manager.go b/internal/torrent/manager.go index a77f815..3de5319 100644 --- a/internal/torrent/manager.go +++ b/internal/torrent/manager.go @@ -329,7 +329,8 @@ func (t *TorrentManager) startRefreshJob() { t.repairAll() t.log.Info("Finished checking for torrents to repair") } - go OnLibraryUpdateHook(t.cfg) + // TODO: pass the changed directories to the hook + go OnLibraryUpdateHook([]string{}, t.cfg, t.log) } } @@ -404,7 +405,7 @@ func hashStringToFh(s string) (fh uint64) { func (t *TorrentManager) getName(name, originalName string) string { // drop the extension from the name - if t.cfg.EnableRetainFolderNameExtension() && strings.Contains(name, originalName) { + if t.cfg.EnableRetainFolderNameExtension() { return name } else { ret := strings.TrimSuffix(originalName, ".mp4") diff --git a/pkg/realdebrid/types.go b/pkg/realdebrid/types.go index 77778d6..b984f5a 100644 --- a/pkg/realdebrid/types.go +++ b/pkg/realdebrid/types.go @@ -3,6 +3,7 @@ package realdebrid import ( "encoding/json" "math" + "strings" ) type FileJSON struct { @@ -22,10 +23,7 @@ type UnrestrictResponse struct { type Torrent struct { ID string `json:"id"` Name string `json:"filename"` - Hash string `json:"hash"` Progress int `json:"-"` - Added string `json:"added"` - Bytes int64 `json:"bytes"` Links []string `json:"links"` } @@ -52,13 +50,13 @@ type TorrentInfo struct { Hash string `json:"hash"` Progress int `json:"-"` Status string `json:"status"` - Added string `json:"added"` - Ended string `json:"ended"` + Added string `json:"-"` + Ended string `json:"-"` Bytes int64 `json:"bytes"` Links []string `json:"links"` - OriginalName string `json:"original_filename"` // from info - OriginalBytes int64 `json:"original_bytes"` // from info - Files []File `json:"files"` // from info + OriginalName string `json:"original_filename"` + OriginalBytes int64 `json:"original_bytes"` + Files []File `json:"files"` Version string `json:"-"` } @@ -66,6 +64,8 @@ func (i *TorrentInfo) UnmarshalJSON(data []byte) error { type Alias TorrentInfo aux := &struct { Progress float64 `json:"progress"` + Added string `json:"added"` + Ended string `json:"ended"` *Alias }{ Alias: (*Alias)(i), @@ -76,6 +76,13 @@ func (i *TorrentInfo) UnmarshalJSON(data []byte) error { } i.Progress = int(math.Round(aux.Progress)) + + i.Added = strings.Replace(aux.Added, "Z", "+01:00", 1) + + if aux.Ended != "" { + i.Ended = strings.Replace(aux.Ended, "Z", "+01:00", 1) + } + return nil }