Skip to content

Commit 7959d3a

Browse files
author
Meyn
committed
Fix Slskd client deserialization
1 parent 035e9fb commit 7959d3a

2 files changed

Lines changed: 9 additions & 4 deletions

File tree

Tubifarry/Download/Clients/Soulseek/SlskdClient.cs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -135,7 +135,7 @@ private async Task CleanStaleDirectoriesAsync(string directoryPath)
135135
return;
136136
}
137137

138-
List<JsonElement>? downloads = JsonSerializer.Deserialize<List<JsonElement>>(response.Content);
138+
List<JsonElement>? downloads = JsonSerializer.Deserialize<List<JsonElement>>(response.Content, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
139139
bool hasRemainingDownloads = false;
140140
downloads?.ForEach(user =>
141141
{
@@ -177,11 +177,10 @@ private async Task UpdateDownloadItemsAsync()
177177
{
178178
HttpRequest request = BuildHttpRequest("/api/v0/transfers/downloads/");
179179
HttpResponse response = await ExecuteAsync(request);
180-
181180
if (response.StatusCode != HttpStatusCode.OK)
182181
throw new DownloadClientException($"Failed to fetch downloads. Status Code: {response.StatusCode}");
183182

184-
List<JsonElement>? downloads = JsonSerializer.Deserialize<List<JsonElement>>(response.Content);
183+
List<JsonElement>? downloads = JsonSerializer.Deserialize<List<JsonElement>>(response.Content, new JsonSerializerOptions { PropertyNameCaseInsensitive = true });
185184
HashSet<string> currentDownloadIds = new();
186185

187186
downloads?.ForEach(user =>

Tubifarry/Download/Clients/Soulseek/SlskdModels.cs

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,11 @@ public SlskdDownloadItem(ReleaseInfo releaseInfo)
4444
{
4545
_logger = NzbDroneLogger.GetLogger(this);
4646
ReleaseInfo = releaseInfo;
47-
FileData = JsonSerializer.Deserialize<List<SlskdFileData>>(ReleaseInfo.Source) ?? new();
47+
FileData = JsonSerializer.Deserialize<List<SlskdFileData>>(ReleaseInfo.Source, new JsonSerializerOptions { PropertyNameCaseInsensitive = true }) ?? new();
4848
_lastUpdateTime = DateTime.UtcNow;
4949
_lastDownloadedSize = 0;
5050
ID = GetStableMD5Id(FileData.Select(file => file.Filename));
51+
_logger.Trace($"Created SlskdDownloadItem with ID: {ID}");
5152
_downloadClientItem = new() { DownloadId = ID, CanBeRemoved = true, CanMoveFiles = true };
5253
}
5354

@@ -91,7 +92,12 @@ public DownloadClientItem GetDownloadClientItem(OsPath downloadPath, TimeSpan? t
9192
_downloadClientItem.Title = ReleaseInfo.Title;
9293

9394
if (SlskdDownloadDirectory?.Files == null)
95+
{
96+
_logger.Debug($"No files in SlskdDownloadDirectory for {ID}");
9497
return _downloadClientItem;
98+
}
99+
100+
_logger.Trace($"GetDownloadClientItem called for {ID}");
95101

96102
long totalSize = SlskdDownloadDirectory.Files.Sum(file => file.Size);
97103
long remainingSize = SlskdDownloadDirectory.Files.Sum(file => file.BytesRemaining);

0 commit comments

Comments
 (0)