From c38ff717917f77035d6b6b04f13188d8870c75f1 Mon Sep 17 00:00:00 2001 From: Laura Hausmann Date: Thu, 18 Apr 2024 20:46:46 +0200 Subject: [PATCH] [backend/database] Move emoji url generation to the Emoji entity --- Iceshrimp.Backend/Core/Database/Tables/Emoji.cs | 9 +++++++++ .../Core/Federation/ActivityPub/ActivityRenderer.cs | 2 +- .../Core/Federation/ActivityPub/NoteRenderer.cs | 2 +- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Iceshrimp.Backend/Core/Database/Tables/Emoji.cs b/Iceshrimp.Backend/Core/Database/Tables/Emoji.cs index 177761c4..e28611f6 100644 --- a/Iceshrimp.Backend/Core/Database/Tables/Emoji.cs +++ b/Iceshrimp.Backend/Core/Database/Tables/Emoji.cs @@ -1,5 +1,6 @@ using System.ComponentModel.DataAnnotations; using System.ComponentModel.DataAnnotations.Schema; +using Iceshrimp.Backend.Core.Configuration; using Microsoft.EntityFrameworkCore; namespace Iceshrimp.Backend.Core.Database.Tables; @@ -55,4 +56,12 @@ public class Emoji /// [Column("height")] public int? Height { get; set; } + + public string GetPublicUri(Config.InstanceSection config) => Host == null + ? $"https://{config.WebDomain}/emoji/{Name}" + : throw new Exception("Cannot access PublicUri for remote emoji"); + + public string? GetPublicUriOrNull(Config.InstanceSection config) => Host == null + ? $"https://{config.WebDomain}/emoji/{Name}" + : null; } \ No newline at end of file diff --git a/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityRenderer.cs b/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityRenderer.cs index 5e8f9780..baaeef7b 100644 --- a/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityRenderer.cs +++ b/Iceshrimp.Backend/Core/Federation/ActivityPub/ActivityRenderer.cs @@ -97,7 +97,7 @@ public class ActivityRenderer( var e = new ASEmoji { - Id = emoji.Host == null ? $"https://{config.Value.WebDomain}/emoji/{emoji.Name}" : null, + Id = emoji.GetPublicUriOrNull(config.Value), Name = name, Image = new ASImage { Url = new ASLink(emoji.PublicUrl) } }; diff --git a/Iceshrimp.Backend/Core/Federation/ActivityPub/NoteRenderer.cs b/Iceshrimp.Backend/Core/Federation/ActivityPub/NoteRenderer.cs index 784747d8..00edbf3d 100644 --- a/Iceshrimp.Backend/Core/Federation/ActivityPub/NoteRenderer.cs +++ b/Iceshrimp.Backend/Core/Federation/ActivityPub/NoteRenderer.cs @@ -75,7 +75,7 @@ public class NoteRenderer(IOptions config, MfmConverter })) .Concat(emoji.Select(e => new ASEmoji { - Id = $"https://{config.Value.WebDomain}/emoji/{e.Name}", + Id = e.GetPublicUri(config.Value), Name = e.Name, Image = new ASImage { Url = new ASLink(e.PublicUrl) } }))