summaryrefslogtreecommitdiff
path: root/src/remote/activitypub/renderer/like.ts
blob: d4dd3663d477ed3ad3300bcaaae9c9bd937b7546 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
import config from '../../../config';
import { NoteReaction } from '../../../models/entities/note-reaction';
import { Note } from '../../../models/entities/note';
import { Emojis } from '../../../models';
import renderEmoji from './emoji';

export const renderLike = async (noteReaction: NoteReaction, note: Note) => {
	const reaction = noteReaction.reaction;

	const object =  {
		type: 'Like',
		id: `${config.url}/likes/${noteReaction.id}`,
		actor: `${config.url}/users/${noteReaction.userId}`,
		object: note.uri ? note.uri : `${config.url}/notes/${noteReaction.noteId}`,
		content: reaction,
		_misskey_reaction: reaction
	} as any;

	if (reaction.startsWith(':')) {
		const name = reaction.replace(/:/g, '');
		const emoji = await Emojis.findOne({
			name,
			host: null
		});

		if (emoji) object.tag = [ renderEmoji(emoji) ];
	}

	return object;
};