From 7a4b145641d9133dbb7d94165d98f77b625a615c Mon Sep 17 00:00:00 2001 From: Casper Sparre Date: Fri, 20 Feb 2026 18:53:55 +0100 Subject: [PATCH] OFDL: Added output of new counts in DownloadOrchestrationService --- .../Models/Downloads/CreatorDownloadResult.cs | 2 ++ .../Services/DownloadOrchestrationService.cs | 28 ++++++++++++++----- 2 files changed, 23 insertions(+), 7 deletions(-) diff --git a/OF DL.Core/Models/Downloads/CreatorDownloadResult.cs b/OF DL.Core/Models/Downloads/CreatorDownloadResult.cs index d686e1b..0439924 100644 --- a/OF DL.Core/Models/Downloads/CreatorDownloadResult.cs +++ b/OF DL.Core/Models/Downloads/CreatorDownloadResult.cs @@ -17,6 +17,8 @@ public class CreatorDownloadResult public int MessagesCount { get; set; } public int PaidMessagesCount { get; set; } + + public CreatorDownloadResult? NewDownloads { get; set; } } public class UserListResult diff --git a/OF DL.Core/Services/DownloadOrchestrationService.cs b/OF DL.Core/Services/DownloadOrchestrationService.cs index 0549825..a30bef7 100644 --- a/OF DL.Core/Services/DownloadOrchestrationService.cs +++ b/OF DL.Core/Services/DownloadOrchestrationService.cs @@ -160,6 +160,7 @@ public class DownloadOrchestrationService( { Config config = configService.CurrentConfig; CreatorDownloadResult counts = new(); + CreatorDownloadResult newCounts = new(); eventHandler.OnUserStarting(username); Log.Debug($"Scraping Data for {username}"); @@ -185,7 +186,8 @@ public class DownloadOrchestrationService( posts => posts.PaidPosts.Values.ToList(), async (posts, reporter) => await downloadService.DownloadPaidPosts(username, userId, path, users, clientIdBlobMissing, devicePrivateKeyMissing, posts, reporter), - eventHandler); + eventHandler, + n => newCounts.PaidPostCount = n); } if (config.DownloadPosts) @@ -202,7 +204,8 @@ public class DownloadOrchestrationService( posts => posts.Posts.Values.ToList(), async (posts, reporter) => await downloadService.DownloadFreePosts(username, userId, path, users, clientIdBlobMissing, devicePrivateKeyMissing, posts, reporter), - eventHandler); + eventHandler, + n => newCounts.PostCount = n); } if (config.DownloadArchived) @@ -215,7 +218,8 @@ public class DownloadOrchestrationService( archived => archived.ArchivedPosts.Values.ToList(), async (archived, reporter) => await downloadService.DownloadArchived(username, userId, path, users, clientIdBlobMissing, devicePrivateKeyMissing, archived, reporter), - eventHandler); + eventHandler, + n => newCounts.ArchivedCount = n); } if (config.DownloadStreams) @@ -228,7 +232,8 @@ public class DownloadOrchestrationService( streams => streams.Streams.Values.ToList(), async (streams, reporter) => await downloadService.DownloadStreams(username, userId, path, users, clientIdBlobMissing, devicePrivateKeyMissing, streams, reporter), - eventHandler); + eventHandler, + n => newCounts.StreamsCount = n); } if (config.DownloadStories) @@ -252,6 +257,7 @@ public class DownloadOrchestrationService( eventHandler.OnDownloadComplete("Stories", result); counts.StoriesCount = result.TotalCount; + newCounts.StoriesCount = result.NewDownloads; } else { @@ -280,6 +286,7 @@ public class DownloadOrchestrationService( eventHandler.OnDownloadComplete("Highlights", result); counts.HighlightsCount = result.TotalCount; + newCounts.HighlightsCount = result.NewDownloads; } else { @@ -297,7 +304,8 @@ public class DownloadOrchestrationService( messages => messages.Messages.Values.ToList(), async (messages, reporter) => await downloadService.DownloadMessages(username, userId, path, users, clientIdBlobMissing, devicePrivateKeyMissing, messages, reporter), - eventHandler); + eventHandler, + n => newCounts.MessagesCount = n); } if (config.DownloadPaidMessages) @@ -310,10 +318,13 @@ public class DownloadOrchestrationService( paidMessages => paidMessages.PaidMessages.Values.ToList(), async (paidMessages, reporter) => await downloadService.DownloadPaidMessages(username, path, users, clientIdBlobMissing, devicePrivateKeyMissing, paidMessages, reporter), - eventHandler); + eventHandler, + n => newCounts.PaidMessagesCount = n); } eventHandler.OnUserComplete(username, counts); + + counts.NewDownloads = newCounts; return counts; } @@ -612,7 +623,8 @@ public class DownloadOrchestrationService( Func getObjectCount, Func?> getUrls, Func> downloadData, - IDownloadEventHandler eventHandler) + IDownloadEventHandler eventHandler, + Action? newPostAssignmentAction) { T data = await eventHandler.WithStatusAsync($"Getting {contentType}", async statusReporter => await fetchData(statusReporter)); @@ -643,6 +655,8 @@ public class DownloadOrchestrationService( Log.Debug( $"{contentType} Media Already Downloaded: {result.ExistingDownloads} New {contentType} Media Downloaded: {result.NewDownloads}"); + newPostAssignmentAction?.Invoke(result.NewDownloads); + return result.TotalCount; } }