ditto/packages/ditto/routes/customEmojisRoute.ts
2025-03-15 00:16:52 -05:00

33 lines
826 B
TypeScript

import { userMiddleware } from '@ditto/mastoapi/middleware';
import { DittoRoute } from '@ditto/mastoapi/router';
import { getCustomEmojis } from '@/utils/custom-emoji.ts';
const route = new DittoRoute();
interface MastodonCustomEmoji {
shortcode: string;
url: string;
static_url: string;
visible_in_picker: boolean;
category?: string;
}
route.get('/', userMiddleware(), async (c) => {
const { user } = c.var;
const pubkey = await user.signer.getPublicKey();
const emojis = await getCustomEmojis(pubkey, c.var);
return c.json([...emojis.entries()].map(([shortcode, data]): MastodonCustomEmoji => {
return {
shortcode,
url: data.url.toString(),
static_url: data.url.toString(),
visible_in_picker: true,
category: data.category,
};
}));
});
export default route;