summaryrefslogtreecommitdiff
path: root/packages/backend/src/services/note
diff options
context:
space:
mode:
authorsyuilo <Syuilotan@yahoo.co.jp>2022-03-25 16:27:41 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2022-03-25 16:27:41 +0900
commitac8c66f5abe5b585a5940e172993c8e28f44ad69 (patch)
treea08b863e070ab51e8896fc69cb857077162756a9 /packages/backend/src/services/note
parentrefactor (diff)
downloadmisskey-ac8c66f5abe5b585a5940e172993c8e28f44ad69.tar.gz
misskey-ac8c66f5abe5b585a5940e172993c8e28f44ad69.tar.bz2
misskey-ac8c66f5abe5b585a5940e172993c8e28f44ad69.zip
perf(server): refactor and performance improvements
Diffstat (limited to 'packages/backend/src/services/note')
-rw-r--r--packages/backend/src/services/note/create.ts6
-rw-r--r--packages/backend/src/services/note/delete.ts4
-rw-r--r--packages/backend/src/services/note/polls/vote.ts4
3 files changed, 6 insertions, 8 deletions
diff --git a/packages/backend/src/services/note/create.ts b/packages/backend/src/services/note/create.ts
index b295534cd2..f4b0d52045 100644
--- a/packages/backend/src/services/note/create.ts
+++ b/packages/backend/src/services/note/create.ts
@@ -38,8 +38,6 @@ import { endedPollNotificationQueue } from '@/queue/queues.js';
import { Cache } from '@/misc/cache.js';
import { UserProfile } from '@/models/entities/user-profile.js';
-const usersCache = new Cache<MinimumUser>(Infinity);
-
const mutedWordsCache = new Cache<{ userId: UserProfile['userId']; mutedWords: UserProfile['mutedWords']; }[]>(1000 * 60 * 5);
type NotificationType = 'reply' | 'renote' | 'quote' | 'mention';
@@ -212,7 +210,7 @@ export default async (user: { id: User['id']; username: User['username']; host:
tags = tags.filter(tag => Array.from(tag || '').length <= 128).splice(0, 32);
if (data.reply && (user.id !== data.reply.userId) && !mentionedUsers.some(u => u.id === data.reply!.userId)) {
- mentionedUsers.push(await usersCache.fetch(data.reply.userId, () => Users.findOneOrFail(data.reply!.userId)));
+ mentionedUsers.push(await Users.findOneOrFail(data.reply!.userId));
}
if (data.visibility === 'specified') {
@@ -225,7 +223,7 @@ export default async (user: { id: User['id']; username: User['username']; host:
}
if (data.reply && !data.visibleUsers.some(x => x.id === data.reply!.userId)) {
- data.visibleUsers.push(await usersCache.fetch(data.reply.userId, () => Users.findOneOrFail(data.reply!.userId)));
+ data.visibleUsers.push(await Users.findOneOrFail(data.reply!.userId));
}
}
diff --git a/packages/backend/src/services/note/delete.ts b/packages/backend/src/services/note/delete.ts
index 356dc39727..1caac2b88f 100644
--- a/packages/backend/src/services/note/delete.ts
+++ b/packages/backend/src/services/note/delete.ts
@@ -20,7 +20,7 @@ import { Brackets, In } from 'typeorm';
* @param user 投稿者
* @param note 投稿
*/
-export default async function(user: User, note: Note, quiet = false) {
+export default async function(user: { id: User['id']; uri: User['uri']; host: User['host']; }, note: Note, quiet = false) {
const deletedAt = new Date();
// この投稿を除く指定したユーザーによる指定したノートのリノートが存在しないとき
@@ -131,7 +131,7 @@ async function getMentionedRemoteUsers(note: Note) {
}) as IRemoteUser[];
}
-async function deliverToConcerned(user: ILocalUser, note: Note, content: any) {
+async function deliverToConcerned(user: { id: ILocalUser['id']; host: null; }, note: Note, content: any) {
deliverToFollowers(user, content);
deliverToRelays(user, content);
const remoteUsers = await getMentionedRemoteUsers(note);
diff --git a/packages/backend/src/services/note/polls/vote.ts b/packages/backend/src/services/note/polls/vote.ts
index 9b83b1953f..c758e38572 100644
--- a/packages/backend/src/services/note/polls/vote.ts
+++ b/packages/backend/src/services/note/polls/vote.ts
@@ -1,12 +1,12 @@
import { publishNoteStream } from '@/services/stream.js';
-import { User } from '@/models/entities/user.js';
+import { CacheableUser, User } from '@/models/entities/user.js';
import { Note } from '@/models/entities/note.js';
import { PollVotes, NoteWatchings, Polls, Blockings } from '@/models/index.js';
import { Not } from 'typeorm';
import { genId } from '@/misc/gen-id.js';
import { createNotification } from '../../create-notification.js';
-export default async function(user: User, note: Note, choice: number) {
+export default async function(user: CacheableUser, note: Note, choice: number) {
const poll = await Polls.findOne(note.id);
if (poll == null) throw new Error('poll not found');