Skip to content

Commit

Permalink
Fix #3273
Browse files Browse the repository at this point in the history
  • Loading branch information
mei23 committed Dec 5, 2021
1 parent c010637 commit 0de9c2f
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/queue/processors/inbox.ts
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ import Logger from '../../services/logger';
import { registerOrFetchInstanceDoc } from '../../services/register-or-fetch-instance-doc';
import Instance from '../../models/instance';
import instanceChart from '../../services/chart/instance';
import { getApId } from '../../remote/activitypub/type';
import { getApId, isDelete, isUndo } from '../../remote/activitypub/type';
import { UpdateInstanceinfo } from '../../services/update-instanceinfo';
import { isBlockedHost } from '../../services/instance-moderation';
import { InboxJobData } from '../types';
Expand Down Expand Up @@ -64,7 +64,7 @@ export const tryProcessInbox = async (data: InboxJobData, ctx?: ApContext): Prom
// || activity.actorを元にDBから取得 || activity.actorを元にリモートから取得
if (user == null) {
try {
user = await resolvePerson(getApId(activity.actor), undefined, resolver) as IRemoteUser;
user = await resolvePerson(getApId(activity.actor), undefined, resolver, isDelete(activity) || isUndo(activity)) as IRemoteUser;
} catch (e) {
// 対象が4xxならスキップ
if (e instanceof StatusError && e.isClientError) {
Expand Down
6 changes: 5 additions & 1 deletion src/remote/activitypub/models/person.ts
Original file line number Diff line number Diff line change
Expand Up @@ -422,7 +422,7 @@ export async function updatePerson(uri: string, resolver?: Resolver, hint?: IAct
* Misskeyに対象のPersonが登録されていればそれを返し、そうでなければ
* リモートサーバーからフェッチしてMisskeyに登録しそれを返します。
*/
export async function resolvePerson(uri: string, verifier?: string | null, resolver?: Resolver): Promise<IUser> {
export async function resolvePerson(uri: string, verifier?: string | null, resolver?: Resolver, noResolve = false): Promise<IUser> {
if (typeof uri !== 'string') throw 'uri is not string';

//#region このサーバーに既に登録されていたらそれを返す
Expand All @@ -433,6 +433,10 @@ export async function resolvePerson(uri: string, verifier?: string | null, resol
}
//#endregion

if (noResolve) {
throw new StatusError('Resolve skipped', 400, 'Resolve skipped');
}

// リモートサーバーからフェッチしてきて登録
if (resolver == null) resolver = new Resolver();

Expand Down

0 comments on commit 0de9c2f

Please sign in to comment.