Process timestamps properly

This commit is contained in:
Ben Sarmiento
2023-11-23 00:22:10 +01:00
parent 215cdcc209
commit dbd5422841
3 changed files with 22 additions and 14 deletions

View File

@@ -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 {

View File

@@ -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")

View File

@@ -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
}