From 52722d0666ba1a70f166158716a02514e538ba51 Mon Sep 17 00:00:00 2001 From: Sewer56 Date: Thu, 27 Feb 2025 14:30:17 +0000 Subject: [PATCH] Changed: Collection Download no Longer Sets Files Updated Timestamp --- .../Extensions/FragmentExtensions.cs | 6 ++++-- .../NexusModsLibrary.Collections.cs | 2 +- .../NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs | 2 +- .../NexusMods.Networking.NexusWebApi/RunUpdateCheck.cs | 2 +- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/Extensions/FragmentExtensions.cs b/src/Networking/NexusMods.Networking.NexusWebApi/Extensions/FragmentExtensions.cs index e3498f0516..2d209b0bb3 100644 --- a/src/Networking/NexusMods.Networking.NexusWebApi/Extensions/FragmentExtensions.cs +++ b/src/Networking/NexusMods.Networking.NexusWebApi/Extensions/FragmentExtensions.cs @@ -67,7 +67,7 @@ public static EntityId Resolve(this IModFileFragment modFileFragment, IDb db, IT /// /// Resolves the IModFragment to an entity in the database, inserting or updating as necessary. /// - public static EntityId Resolve(this IModFragment modFragment, IDb db, ITransaction tx) + public static EntityId Resolve(this IModFragment modFragment, IDb db, ITransaction tx, bool setFilesTimestamp = false) { var nexusModResolver = GraphQLResolver.Create(db, tx, NexusModsModPageMetadata.Uid, UidForMod.FromV2Api(modFragment.Uid)); nexusModResolver.Add(NexusModsModPageMetadata.Name, modFragment.Name); @@ -80,7 +80,9 @@ public static EntityId Resolve(this IModFragment modFragment, IDb db, ITransacti if (Uri.TryCreate(modFragment.ThumbnailUrl, UriKind.Absolute, out var thumbnailUri)) nexusModResolver.Add(NexusModsModPageMetadata.ThumbnailUri, thumbnailUri); - nexusModResolver.Add(NexusModsModPageMetadata.DataUpdatedAt, DateTimeOffset.UtcNow); + if (setFilesTimestamp) + nexusModResolver.Add(NexusModsModPageMetadata.DataUpdatedAt, DateTimeOffset.UtcNow); + return nexusModResolver.Id; } diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.Collections.cs b/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.Collections.cs index 82c73e750a..738cc5b634 100644 --- a/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.Collections.cs +++ b/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.Collections.cs @@ -229,7 +229,7 @@ private static ResolvedEntitiesLookup ResolveModFiles( var uidForMod = UidForMod.FromV2Api(file.Mod.Uid); if (!modPageIds.TryGetValue(uidForMod, out var modEntityId)) { - modEntityId = file.Mod.Resolve(db, tx); + modEntityId = file.Mod.Resolve(db, tx, setFilesTimestamp: false); modPageIds[uidForMod] = modEntityId; } diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs b/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs index 32f45f7c83..bab9a85e94 100644 --- a/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs +++ b/src/Networking/NexusMods.Networking.NexusWebApi/NexusModsLibrary.cs @@ -72,7 +72,7 @@ public NexusModsLibrary(IServiceProvider serviceProvider) modInfo.EnsureNoErrors(); EntityId first = default; foreach (var node in modInfo.Data!.LegacyMods.Nodes) - first = node.Resolve(_connection.Db, tx); + first = node.Resolve(_connection.Db, tx, setFilesTimestamp: true); await ResolveAllFilesInModPage(uid, tx, first, cancellationToken); diff --git a/src/Networking/NexusMods.Networking.NexusWebApi/RunUpdateCheck.cs b/src/Networking/NexusMods.Networking.NexusWebApi/RunUpdateCheck.cs index 1b5fd87027..2f583f0595 100644 --- a/src/Networking/NexusMods.Networking.NexusWebApi/RunUpdateCheck.cs +++ b/src/Networking/NexusMods.Networking.NexusWebApi/RunUpdateCheck.cs @@ -129,7 +129,7 @@ private static async Task UpdateModPage(IDb db, ITransaction tx, INexusGraphQLCl var modInfo = await gqlClient.ModInfo.ExecuteAsync((int)uid.GameId.Value, (int)uid.ModId.Value, cancellationToken); modInfo.EnsureNoErrors(); foreach (var node in modInfo.Data!.LegacyMods.Nodes) - node.Resolve(db, tx); + node.Resolve(db, tx, setFilesTimestamp: true); // Update Mod Files var filesByUid = await gqlClient.ModFiles.ExecuteAsync(modIdString, gameIdString, cancellationToken);