diff --git a/TinfoilVibeServer.sln.DotSettings.user b/TinfoilVibeServer.sln.DotSettings.user index c13272f..36c18d7 100644 --- a/TinfoilVibeServer.sln.DotSettings.user +++ b/TinfoilVibeServer.sln.DotSettings.user @@ -87,6 +87,8 @@ ForceIncluded ForceIncluded ForceIncluded + ForceIncluded + ForceIncluded ForceIncluded ForceIncluded ForceIncluded diff --git a/TinfoilVibeServer/Services/IndexBuilderService.cs b/TinfoilVibeServer/Services/IndexBuilderService.cs index c00b2b3..e56b97e 100644 --- a/TinfoilVibeServer/Services/IndexBuilderService.cs +++ b/TinfoilVibeServer/Services/IndexBuilderService.cs @@ -119,9 +119,11 @@ public sealed class IndexBuilderService: IHostedService var fileName =Uri.EscapeDataString($"{name}[{titleId}][v{versionNumberParsed}][{patchOrApp}].nsp"); var url = $"{baseUri.ToString().TrimEnd('/')}/{fileName}"; - if (Uri.IsWellFormedUriString(url, UriKind.Absolute)) + var isWellFormed = Uri.TryCreate(url, UriKind.Absolute, out Uri? parsedUri); + + if (isWellFormed && parsedUri != null) { - fileDtos.Add(new FileDto(url, e.Size)); + fileDtos.Add(new FileDto(parsedUri.AbsoluteUri, e.Size)); } else { diff --git a/TinfoilVibeServer/Services/SnapshotService.cs b/TinfoilVibeServer/Services/SnapshotService.cs index 35486f1..81e400d 100644 --- a/TinfoilVibeServer/Services/SnapshotService.cs +++ b/TinfoilVibeServer/Services/SnapshotService.cs @@ -508,7 +508,8 @@ public sealed class SnapshotService : IDisposable, ISnapshotService, IHostedServ _logger.LogWarning("Duplicate hash found in snapshot: {Hash}, {OldPath}, {newPath}", fileEntry.Hash, value, fileEntry.Path); } - if (!File.Exists(fileEntry.Path)) + var nspOrArchivePath = fileEntry.Path.Split(ArchivePathSeparator)[0]; + if (!File.Exists(nspOrArchivePath)) { _logger.LogWarning("Nonexistent entry found: {Path}", fileEntry.Path); continue;