This commit is contained in:
syuilo 2018-10-13 23:12:48 +09:00
parent 1e84c5322f
commit 50ee429aa3

View file

@ -1,7 +1,7 @@
import config from '../../config'; import config from '../../config';
import * as mongo from 'mongodb'; import * as mongo from 'mongodb';
import User, { isLocalUser, isRemoteUser, ILocalUser, IUser } from '../../models/user'; import User, { isLocalUser, isRemoteUser, ILocalUser, IUser } from '../../models/user';
import Note from '../../models/note'; import Note, { packMany } from '../../models/note';
import Following from '../../models/following'; import Following from '../../models/following';
import renderAdd from '../../remote/activitypub/renderer/add'; import renderAdd from '../../remote/activitypub/renderer/add';
import renderRemove from '../../remote/activitypub/renderer/remove'; import renderRemove from '../../remote/activitypub/renderer/remove';
@ -27,11 +27,11 @@ export async function addPinned(user: IUser, noteId: mongo.ObjectID) {
let pinnedNoteIds = user.pinnedNoteIds || []; let pinnedNoteIds = user.pinnedNoteIds || [];
//#region 現在ピン留め投稿している投稿が実際にデータベースに存在しているのかチェック //#region 現在ピン留め投稿している投稿が実際にデータベースに存在しているのかチェック
// データベースの欠損などで存在していない場合があるので。 // データベースの欠損などで存在していない(または破損している)場合があるので。
// 存在していなかったらピン留め投稿から外す // 存在していなかったらピン留め投稿から外す
const pinnedNotes = (await Promise.all(pinnedNoteIds.map(id => Note.findOne({ _id: id })))).filter(x => x != null); const pinnedNotes = await packMany(pinnedNoteIds, null, { detail: true });
pinnedNoteIds = pinnedNoteIds.filter(id => pinnedNotes.some(n => n._id.equals(id))); pinnedNoteIds = pinnedNoteIds.filter(id => pinnedNotes.some(n => n.id.toString() === id.toHexString()));
//#endregion //#endregion
if (pinnedNoteIds.length >= 5) { if (pinnedNoteIds.length >= 5) {