2022-02-27 02:07:39 +00:00
|
|
|
import config from '@/config/index.js';
|
|
|
|
import { NoteReaction } from '@/models/entities/note-reaction.js';
|
|
|
|
import { Note } from '@/models/entities/note.js';
|
|
|
|
import { Emojis } from '@/models/index.js';
|
2022-03-26 06:34:00 +00:00
|
|
|
import { IsNull } from 'typeorm';
|
2022-02-27 02:07:39 +00:00
|
|
|
import renderEmoji from './emoji.js';
|
2018-04-07 08:05:14 +00:00
|
|
|
|
2020-04-13 15:42:59 +00:00
|
|
|
export const renderLike = async (noteReaction: NoteReaction, note: Note) => {
|
|
|
|
const reaction = noteReaction.reaction;
|
|
|
|
|
2022-07-10 10:47:29 +00:00
|
|
|
const object = {
|
2020-04-13 15:42:59 +00:00
|
|
|
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,
|
2021-12-09 14:58:30 +00:00
|
|
|
_misskey_reaction: reaction,
|
2020-04-13 15:42:59 +00:00
|
|
|
} as any;
|
|
|
|
|
|
|
|
if (reaction.startsWith(':')) {
|
|
|
|
const name = reaction.replace(/:/g, '');
|
2022-03-26 06:34:00 +00:00
|
|
|
const emoji = await Emojis.findOneBy({
|
2020-04-13 15:42:59 +00:00
|
|
|
name,
|
2022-03-26 06:34:00 +00:00
|
|
|
host: IsNull(),
|
2020-04-13 15:42:59 +00:00
|
|
|
});
|
|
|
|
|
|
|
|
if (emoji) object.tag = [ renderEmoji(emoji) ];
|
|
|
|
}
|
|
|
|
|
|
|
|
return object;
|
|
|
|
};
|