From 469f02c5ac50e715d10f9f7ab037e2a970eb3dbb Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Tue, 16 Apr 2024 18:10:14 +0200 Subject: [PATCH] [backend/federation] Set VerifiedFetch in FetchNoteAsync (ISH-262) --- .../ActivityPub/ActivityFetcherService.cs | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityFetcherService.cs b/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityFetcherService.cs index ccdbac66..ba31f854 100644 --- a/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityFetcherService.cs +++ b/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityFetcherService.cs @@ -56,7 +56,7 @@ public class ActivityFetcherService( if (activityIdUri.Host != finalUri.Host) throw GracefulException.UnprocessableEntity("Activity identifier doesn't match final host"); - + logger.LogDebug("Fetching activity {url} as user {id} (attempt 2)", activityIdUri.AbsoluteUri, actor.Id); (activity, finalUri) = await FetchActivityInternal(activityIdUri.AbsoluteUri, actor, keypair); if (activity == null) return []; @@ -190,24 +190,25 @@ public class ActivityFetcherService( throw new GracefulException("Failed to fetch actor"); } - public async Task FetchNoteAsync(string uri, User actor, UserKeypair keypair) + private async Task FetchNoteAsync(string uri, User actor, UserKeypair keypair) { var activity = await FetchActivityAsync(uri, actor, keypair); - return activity.OfType().FirstOrDefault(); + var note = activity.OfType().FirstOrDefault(); + if (note != null) + note.VerifiedFetch = true; + return note; } public async Task FetchNoteAsync(string uri, User actor) { var keypair = await db.UserKeypairs.FirstOrDefaultAsync(p => p.User == actor) ?? throw new Exception("Actor has no keypair"); - var activity = await FetchActivityAsync(uri, actor, keypair); - return activity.OfType().FirstOrDefault(); + return await FetchNoteAsync(uri, actor, keypair); } public async Task FetchNoteAsync(string uri) { var (actor, keypair) = await systemUserSvc.GetInstanceActorWithKeypairAsync(); - var activity = await FetchActivityAsync(uri, actor, keypair); - return activity.OfType().FirstOrDefault(); + return await FetchNoteAsync(uri, actor, keypair); } } \ No newline at end of file