Skip to content

Commit 395bf13

Browse files
committed
Fix incorrect Emoji IRI
1 parent 00f4099 commit 395bf13

File tree

3 files changed

+20
-14
lines changed

3 files changed

+20
-14
lines changed

src/federation/emoji.ts

+15
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,15 @@
1+
import { type Context, Emoji, Image } from "@fedify/fedify";
2+
3+
interface CustomEmoji {
4+
shortcode: string;
5+
url: string;
6+
}
7+
8+
export function toEmoji(ctx: Context<unknown>, emoji: CustomEmoji): Emoji {
9+
const shortcode = emoji.shortcode.replace(/^:|:$/g, "");
10+
return new Emoji({
11+
id: ctx.getObjectUri(Emoji, { shortcode }),
12+
name: `:${shortcode}:`,
13+
icon: new Image({ url: new URL(emoji.url) }),
14+
});
15+
}

src/federation/index.ts

+2-7
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,7 @@ import {
6363
reports,
6464
} from "../schema";
6565
import { toTemporalInstant } from "./date";
66+
import { toEmoji } from "./emoji";
6667
import {
6768
onAccountDeleted,
6869
onAccountMoved,
@@ -574,13 +575,7 @@ federation.setObjectDispatcher(
574575
where: eq(customEmojis.shortcode, shortcode),
575576
});
576577
if (emoji == null) return null;
577-
return new Emoji({
578-
id: ctx.getObjectUri(Emoji, { shortcode }),
579-
name: `:${shortcode}:`,
580-
icon: new Image({
581-
url: new URL(emoji.url),
582-
}),
583-
});
578+
return toEmoji(ctx, emoji);
584579
},
585580
);
586581

src/federation/post.ts

+3-7
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ import { extractPreviewLink } from "../text";
6969
import { persistAccount, persistAccountByIri } from "./account";
7070
import { iterateCollection } from "./collection";
7171
import { toDate, toTemporalInstant } from "./date";
72+
import { toEmoji } from "./emoji";
7273

7374
const logger = getLogger(["hollo", "federation", "post"]);
7475

@@ -714,13 +715,8 @@ export function toObject(
714715
href: new URL(url),
715716
}),
716717
),
717-
...Object.entries(post.emojis).map(
718-
([shortcode, url]) =>
719-
new Emoji({
720-
id: ctx.getObjectUri(Emoji, { shortcode }),
721-
name: `:${shortcode.replace(/^:|:$/g, "")}:`,
722-
icon: new Image({ url: new URL(url) }),
723-
}),
718+
...Object.entries(post.emojis).map(([shortcode, url]) =>
719+
toEmoji(ctx, { shortcode, url }),
724720
),
725721
...(post.quoteTarget == null
726722
? []

0 commit comments

Comments
 (0)