diff --git a/src/remote/activitypub/models/note.ts b/src/remote/activitypub/models/note.ts index c94724366..94d723e23 100644 --- a/src/remote/activitypub/models/note.ts +++ b/src/remote/activitypub/models/note.ts @@ -47,7 +47,8 @@ export async function createNote(value: any, resolver?: Resolver, silent = false const object = await resolver.resolve(value) as any; if (object == null || object.type !== 'Note') { - throw new Error('invalid note'); + log(`invalid note: ${object}`); + return null; } const note: INoteActivityStreamsObject = object; @@ -62,7 +63,7 @@ export async function createNote(value: any, resolver?: Resolver, silent = false if (!note.to.includes('https://www.w3.org/ns/activitystreams#Public')) visibility = 'unlisted'; if (note.cc.length == 0) visibility = 'private'; // TODO - if (visibility != 'public') throw new Error('unspported visibility'); + if (visibility != 'public') return null; //#endergion // 添付メディア diff --git a/src/services/note/create.ts b/src/services/note/create.ts index 599126b86..bdef5e09f 100644 --- a/src/services/note/create.ts +++ b/src/services/note/create.ts @@ -1,4 +1,3 @@ -import { MongoError } from 'mongodb'; import Note, { pack, INote } from '../../models/note'; import User, { isLocalUser, IUser, isRemoteUser } from '../../models/user'; import stream, { publishLocalTimelineStream, publishGlobalTimelineStream } from '../../publishers/stream'; @@ -91,7 +90,7 @@ export default async (user: IUser, data: { note = await Note.insert(insert); } catch (e) { // duplicate key error - if (e instanceof MongoError && e.code === 11000) { + if (e.code === 11000) { return res(null); } diff --git a/src/services/note/reaction/create.ts b/src/services/note/reaction/create.ts index dd3d4be8b..dcfbe481a 100644 --- a/src/services/note/reaction/create.ts +++ b/src/services/note/reaction/create.ts @@ -9,7 +9,6 @@ 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 @@ -27,8 +26,8 @@ export default async (user: IUser, note: INote, reaction: string) => new Promise }); } catch (e) { // duplicate key error - if (e instanceof MongoError && e.code === 11000) { - return rej('already reacted'); + if (e.code === 11000) { + return res(null); } console.error(e);