diff options
| author | tamaina <tamaina@hotmail.co.jp> | 2018-04-15 18:12:11 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2018-04-15 18:12:11 +0900 |
| commit | f982f5e850d1096d54014396b3ee9d337e305bcb (patch) | |
| tree | 0dae4116aa5d7c3fe6c5eba54af6f9f15a271761 /src/services/note | |
| parent | Merge pull request #4 from syuilo/master (diff) | |
| parent | nanka iroiro (diff) | |
| download | misskey-f982f5e850d1096d54014396b3ee9d337e305bcb.tar.gz misskey-f982f5e850d1096d54014396b3ee9d337e305bcb.tar.bz2 misskey-f982f5e850d1096d54014396b3ee9d337e305bcb.zip | |
Merge pull request #5 from syuilo/master
追従
Diffstat (limited to 'src/services/note')
| -rw-r--r-- | src/services/note/create.ts | 7 | ||||
| -rw-r--r-- | src/services/note/reaction/create.ts | 33 |
2 files changed, 20 insertions, 20 deletions
diff --git a/src/services/note/create.ts b/src/services/note/create.ts index b238cd5607..781337daf4 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -78,7 +78,6 @@ export default async (user: IUser, data: { _renote: data.renote ? { userId: data.renote.userId } : null, _user: { host: user.host, - hostLower: user.hostLower, inbox: isRemoteUser(user) ? user.inbox : undefined } }; @@ -137,12 +136,12 @@ export default async (user: IUser, data: { // 投稿がリプライかつ投稿者がローカルユーザーかつリプライ先の投稿の投稿者がリモートユーザーなら配送 if (data.reply && isLocalUser(user) && isRemoteUser(data.reply._user)) { - deliver(user, await render(), data.reply._user.inbox).save(); + deliver(user, await render(), data.reply._user.inbox); } // 投稿がRenoteかつ投稿者がローカルユーザーかつRenote元の投稿の投稿者がリモートユーザーなら配送 if (data.renote && isLocalUser(user) && isRemoteUser(data.renote._user)) { - deliver(user, await render(), data.renote._user.inbox).save(); + deliver(user, await render(), data.renote._user.inbox); } Promise.all(followers.map(async follower => { @@ -154,7 +153,7 @@ export default async (user: IUser, data: { } else { // フォロワーがリモートユーザーかつ投稿者がローカルユーザーなら投稿を配信 if (isLocalUser(user)) { - deliver(user, await render(), follower.inbox).save(); + deliver(user, await render(), follower.inbox); } } })); diff --git a/src/services/note/reaction/create.ts b/src/services/note/reaction/create.ts index 69a14248da..dd3d4be8b7 100644 --- a/src/services/note/reaction/create.ts +++ b/src/services/note/reaction/create.ts @@ -9,6 +9,7 @@ import watch from '../watch'; import renderLike from '../../../remote/activitypub/renderer/like'; import { deliver } from '../../../queue'; import pack from '../../../remote/activitypub/renderer'; +import { MongoError } from 'mongodb'; export default async (user: IUser, note: INote, reaction: string) => new Promise(async (res, rej) => { // Myself @@ -16,24 +17,24 @@ export default async (user: IUser, note: INote, reaction: string) => new Promise return rej('cannot react to my note'); } - // if already reacted - const exist = await NoteReaction.findOne({ - noteId: note._id, - userId: user._id - }); + // Create reaction + try { + await NoteReaction.insert({ + createdAt: new Date(), + noteId: note._id, + userId: user._id, + reaction + }); + } catch (e) { + // duplicate key error + if (e instanceof MongoError && e.code === 11000) { + return rej('already reacted'); + } - if (exist !== null) { - return rej('already reacted'); + console.error(e); + return rej('something happened'); } - // Create reaction - await NoteReaction.insert({ - createdAt: new Date(), - noteId: note._id, - userId: user._id, - reaction - }); - res(); const inc = {}; @@ -86,7 +87,7 @@ export default async (user: IUser, note: INote, reaction: string) => new Promise // リアクターがローカルユーザーかつリアクション対象がリモートユーザーの投稿なら配送 if (isLocalUser(user) && isRemoteUser(note._user)) { const content = pack(renderLike(user, note)); - deliver(user, content, note._user.inbox).save(); + deliver(user, content, note._user.inbox); } //#endregion }); |