[backend/federation] Refactor ActivityRenderer

This commit is contained in:
Laura Hausmann 2024-06-21 14:28:29 +02:00
parent efa2cdc9c7
commit a253e83176
No known key found for this signature in database
GPG key ID: D044E84C5BE01605
2 changed files with 14 additions and 23 deletions

View file

@ -43,7 +43,7 @@ public class ActivityRenderer(
To = [new ASObjectBase($"{Constants.ActivityStreamsNs}#Public")]
};
public ASDelete RenderDelete(ASActor actor, ASObject obj) => new()
public static ASDelete RenderDelete(ASActor actor, ASObject obj) => new()
{
Id = $"{obj.Id}#Delete",
Actor = actor.Compact(),
@ -57,13 +57,6 @@ public class ActivityRenderer(
Object = RenderFollow(userRenderer.RenderLite(follower), userRenderer.RenderLite(followee), requestId)
};
public ASAccept RenderAccept(ASActor actor, ASObject obj) => new()
{
Id = GenerateActivityId(),
Actor = actor.Compact(),
Object = obj
};
public ASLike RenderLike(NoteLike like)
{
if (like.Note.UserHost == null)
@ -92,19 +85,17 @@ public class ActivityRenderer(
Content = reaction.Reaction
};
if (emoji != null)
if (emoji == null) return res;
var name = emoji.Host == null ? emoji.Name : $"{emoji.Name}@{emoji.Host}";
var e = new ASEmoji
{
var name = emoji.Host == null ? emoji.Name : $"{emoji.Name}@{emoji.Host}";
Id = emoji.GetPublicUriOrNull(config.Value),
Name = name,
Image = new ASImage { Url = new ASLink(emoji.PublicUrl) }
};
var e = new ASEmoji
{
Id = emoji.GetPublicUriOrNull(config.Value),
Name = name,
Image = new ASImage { Url = new ASLink(emoji.PublicUrl) }
};
res.Tags = [e];
}
res.Tags = [e];
return res;
}
@ -142,7 +133,7 @@ public class ActivityRenderer(
}
}
public static ASFollow RenderFollow(ASObject followerActor, ASObject followeeActor, string requestId) => new()
private static ASFollow RenderFollow(ASObject followerActor, ASObject followeeActor, string requestId) => new()
{
Id = requestId,
Actor = ASActor.FromObject(followerActor),
@ -156,7 +147,7 @@ public class ActivityRenderer(
Object = obj
};
public ASReject RenderReject(ASActor actor, ASObject obj) => new()
private ASReject RenderReject(ASActor actor, ASObject obj) => new()
{
Id = GenerateActivityId(),
Actor = actor.Compact(),
@ -181,7 +172,7 @@ public class ActivityRenderer(
private string RenderFollowId(User follower, User followee, Guid? relationshipId) =>
$"https://{config.Value.WebDomain}/follows/{follower.Id}/{followee.Id}/{(relationshipId ?? Guid.NewGuid()).ToStringLower()}";
public static ASAnnounce RenderAnnounce(
private static ASAnnounce RenderAnnounce(
ASNote note, ASActor actor, List<ASObjectBase> to, List<ASObjectBase> cc, string uri
) => new()
{

View file

@ -632,7 +632,7 @@ public class NoteService(
note.Visibility,
note.User.GetPublicUri(config.Value) +
"/followers"))
: activityRenderer.RenderDelete(actor, new ASTombstone { Id = note.GetPublicUri(config.Value) });
: ActivityPub.ActivityRenderer.RenderDelete(actor, new ASTombstone { Id = note.GetPublicUri(config.Value) });
if (note.Visibility == Note.NoteVisibility.Specified)
await deliverSvc.DeliverToAsync(activity, note.User, recipients.ToArray());