From a89e0ce8b08f04a8c8a66a0d258e793df9aac116 Mon Sep 17 00:00:00 2001 From: Ben Sarmiento Date: Sat, 2 Dec 2023 19:18:00 +0100 Subject: [PATCH] Use strings --- internal/torrent/types.go | 33 +++++++++++++++------------------ 1 file changed, 15 insertions(+), 18 deletions(-) diff --git a/internal/torrent/types.go b/internal/torrent/types.go index 0919675..c67834e 100644 --- a/internal/torrent/types.go +++ b/internal/torrent/types.go @@ -2,6 +2,7 @@ package torrent import ( oldjson "encoding/json" + "strings" "github.com/debridmediamanager/zurg/pkg/realdebrid" jsoniter "github.com/json-iterator/go" @@ -39,17 +40,19 @@ func (t *Torrent) MarshalJSON() ([]byte, error) { } temp.SelectedFilesJson = selectedFilesJson - downloadedIDsJson, err := json.Marshal(t.DownloadedIDs.List()) - if err != nil { - return nil, err + if t.DownloadedIDs.IsEmpty() { + temp.DownloadedIDsJson = []byte("\"\"") + } else { + downloadedIDsStr := "\"" + strings.Join(t.DownloadedIDs.List(), ",") + "\"" + temp.DownloadedIDsJson = []byte(downloadedIDsStr) } - temp.DownloadedIDsJson = downloadedIDsJson - inProgressIDsJson, err := json.Marshal(t.InProgressIDs.List()) - if err != nil { - return nil, err + if t.InProgressIDs.IsEmpty() { + temp.InProgressIDsJson = []byte("\"\"") + } else { + inProgressIDsStr := "\"" + strings.Join(t.InProgressIDs.List(), ",") + "\"" + temp.InProgressIDsJson = []byte(inProgressIDsStr) } - temp.InProgressIDsJson = inProgressIDsJson return json.Marshal(temp) } @@ -75,21 +78,15 @@ func (t *Torrent) UnmarshalJSON(data []byte) error { } } - if len(temp.DownloadedIDsJson) > 0 { - var downloadedIDs []string - if err := json.Unmarshal(temp.DownloadedIDsJson, &downloadedIDs); err != nil { - return err - } + if len(temp.DownloadedIDsJson) > 2 { + downloadedIDs := strings.Split(string(temp.DownloadedIDsJson), ",") t.DownloadedIDs = strset.New(downloadedIDs...) } else { t.DownloadedIDs = strset.New() } - if len(temp.InProgressIDsJson) > 0 { - var inProgressIDs []string - if err := json.Unmarshal(temp.InProgressIDsJson, &inProgressIDs); err != nil { - return err - } + if len(temp.InProgressIDsJson) > 2 { + inProgressIDs := strings.Split(string(temp.InProgressIDsJson), ",") t.InProgressIDs = strset.New(inProgressIDs...) } else { t.InProgressIDs = strset.New()