Use strings

This commit is contained in:
Ben Sarmiento
2023-12-02 19:18:00 +01:00
parent a8e5744481
commit a89e0ce8b0

View File

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