forked from FoundKeyGang/FoundKey
33 lines
952 B
TypeScript
33 lines
952 B
TypeScript
import es from '@/db/elasticsearch.js';
|
|
import config from '@/config/index.js';
|
|
import { Note } from '@/models/entities/note.js';
|
|
import { UserProfiles } from '@/models/index.js';
|
|
import { normalizeForSearch } from '@/misc/normalize-for-search.js';
|
|
import { Cache } from '@/misc/cache.js';
|
|
import { UserProfile } from '@/models/entities/user-profile.js';
|
|
import { MINUTE } from '@/const.js';
|
|
|
|
export const mutedWordsCache = new Cache<{ userId: UserProfile['userId']; mutedWords: UserProfile['mutedWords']; }[]>(
|
|
5 * MINUTE,
|
|
() => UserProfiles.find({
|
|
where: {
|
|
enableWordMute: true,
|
|
},
|
|
select: ['userId', 'mutedWords'],
|
|
}),
|
|
);
|
|
|
|
export function index(note: Note): void {
|
|
if (note.text == null || config.elasticsearch == null) return;
|
|
|
|
es.index({
|
|
index: config.elasticsearch.index || 'misskey_note',
|
|
id: note.id.toString(),
|
|
body: {
|
|
text: normalizeForSearch(note.text),
|
|
userId: note.userId,
|
|
userHost: note.userHost,
|
|
},
|
|
});
|
|
}
|