enhance(server): clean emoji response

This commit is contained in:
syuilo
2022-12-31 08:43:13 +09:00
parent fcfcb8da1d
commit b2d6561bc6
11 changed files with 9 additions and 186 deletions

View File

@@ -22,7 +22,6 @@ export class EmojiEntityService {
@bindThis
public async pack(
src: Emoji['id'] | Emoji,
opts: { omitUrl?: boolean } = {},
): Promise<Packed<'Emoji'>> {
const emoji = typeof src === 'object' ? src : await this.emojisRepository.findOneByOrFail({ id: src });
@@ -32,17 +31,14 @@ export class EmojiEntityService {
name: emoji.name,
category: emoji.category,
host: emoji.host,
// || emoji.originalUrl してるのは後方互換性のためpublicUrlはstringなので??はだめ)
url: opts.omitUrl ? undefined : (emoji.publicUrl || emoji.originalUrl),
};
}
@bindThis
public packMany(
emojis: any[],
opts: { omitUrl?: boolean } = {},
) {
return Promise.all(emojis.map(x => this.pack(x, opts)));
return Promise.all(emojis.map(x => this.pack(x)));
}
}

View File

@@ -11,12 +11,12 @@ import type { User } from '@/models/entities/User.js';
import type { Note } from '@/models/entities/Note.js';
import type { NoteReaction } from '@/models/entities/NoteReaction.js';
import type { UsersRepository, NotesRepository, FollowingsRepository, PollsRepository, PollVotesRepository, NoteReactionsRepository, ChannelsRepository, DriveFilesRepository } from '@/models/index.js';
import { bindThis } from '@/decorators.js';
import type { OnModuleInit } from '@nestjs/common';
import type { CustomEmojiService } from '../CustomEmojiService.js';
import type { ReactionService } from '../ReactionService.js';
import type { UserEntityService } from './UserEntityService.js';
import type { DriveFileEntityService } from './DriveFileEntityService.js';
import { bindThis } from '@/decorators.js';
@Injectable()
export class NoteEntityService implements OnModuleInit {
@@ -300,7 +300,6 @@ export class NoteEntityService implements OnModuleInit {
repliesCount: note.repliesCount,
reactions: this.reactionService.convertLegacyReactions(note.reactions),
tags: note.tags.length > 0 ? note.tags : undefined,
emojis: this.customEmojiService.populateEmojis(note.emojis.concat(reactionEmojiNames), host),
fileIds: note.fileIds,
files: this.driveFileEntityService.packMany(note.fileIds),
replyId: note.replyId,
@@ -385,8 +384,6 @@ export class NoteEntityService implements OnModuleInit {
}
}
await this.customEmojiService.prefetchEmojis(this.customEmojiService.aggregateNoteEmojis(notes));
return await Promise.all(notes.map(n => this.pack(n, me, {
...options,
_hint_: {

View File

@@ -8,12 +8,12 @@ import type { Notification } from '@/models/entities/Notification.js';
import type { NoteReaction } from '@/models/entities/NoteReaction.js';
import type { Note } from '@/models/entities/Note.js';
import type { Packed } from '@/misc/schema.js';
import { bindThis } from '@/decorators.js';
import type { OnModuleInit } from '@nestjs/common';
import type { CustomEmojiService } from '../CustomEmojiService.js';
import type { UserEntityService } from './UserEntityService.js';
import type { NoteEntityService } from './NoteEntityService.js';
import type { UserGroupInvitationEntityService } from './UserGroupInvitationEntityService.js';
import { bindThis } from '@/decorators.js';
@Injectable()
export class NotificationEntityService implements OnModuleInit {
@@ -143,8 +143,6 @@ export class NotificationEntityService implements OnModuleInit {
myReactionsMap.set(target, myReactions.find(reaction => reaction.noteId === target) ?? null);
}
await this.customEmojiService.prefetchEmojis(this.customEmojiService.aggregateNoteEmojis(notes));
return await Promise.all(notifications.map(x => this.pack(x, {
_hintForEachNotes_: {
myReactions: myReactionsMap,

View File

@@ -408,7 +408,6 @@ export class UserEntityService implements OnModuleInit {
faviconUrl: instance.faviconUrl,
themeColor: instance.themeColor,
} : undefined) : undefined,
emojis: this.customEmojiService.populateEmojis(user.emojis, user.host),
onlineStatus: this.getOnlineStatus(user),
driveCapacityOverrideMb: user.driveCapacityOverrideMb,