mirror of
https://github.com/paricafe/misskey.git
synced 2025-01-29 12:50:15 -06:00
Filter Add / Remove activities with non-Note payloads
This commit is contained in:
parent
69ac109cfe
commit
468be6ed51
2 changed files with 12 additions and 3 deletions
|
@ -31,7 +31,7 @@ import { GlobalEventService } from '@/core/GlobalEventService.js';
|
|||
import { AbuseReportService } from '@/core/AbuseReportService.js';
|
||||
import { IdentifiableError } from '@/misc/identifiable-error.js';
|
||||
import { fromTuple } from '@/misc/from-tuple.js';
|
||||
import { getApHrefNullable, getApId, getApIds, getApType, isAccept, isActor, isAdd, isAnnounce, isBlock, isCollection, isCollectionOrOrderedCollection, isCreate, isDelete, isFlag, isFollow, isLike, isMove, isPost, isReject, isRemove, isTombstone, isUndo, isUpdate, validActor, validPost } from './type.js';
|
||||
import { getApHrefNullable, getApId, getApIds, getApType, isAccept, isActor, isAdd, isAnnounce, isApObject, isBlock, isCollection, isCollectionOrOrderedCollection, isCreate, isDelete, isFlag, isFollow, isLike, isMove, isPost, isReject, isRemove, isTombstone, isUndo, isUpdate, validActor, validPost } from './type.js';
|
||||
import { ApNoteService } from './models/ApNoteService.js';
|
||||
import { ApLoggerService } from './ApLoggerService.js';
|
||||
import { ApDbResolverService } from './ApDbResolverService.js';
|
||||
|
@ -273,8 +273,12 @@ export class ApInboxService {
|
|||
}
|
||||
|
||||
if (activity.target === actor.featured) {
|
||||
const object = fromTuple(activity.object);
|
||||
const note = await this.apNoteService.resolveNote(object, { resolver });
|
||||
const activityObject = fromTuple(activity.object);
|
||||
if (isApObject(activityObject) && !isPost(activityObject)) {
|
||||
return `unsupported featured object type: ${getApType(activityObject)}`;
|
||||
}
|
||||
|
||||
const note = await this.apNoteService.resolveNote(activityObject, { resolver });
|
||||
if (note == null) return 'note not found';
|
||||
await this.notePiningService.addPinned(actor, note.id);
|
||||
return;
|
||||
|
@ -638,6 +642,10 @@ export class ApInboxService {
|
|||
|
||||
if (activity.target === actor.featured) {
|
||||
const activityObject = fromTuple(activity.object);
|
||||
if (isApObject(activityObject) && !isPost(activityObject)) {
|
||||
return `unsupported featured object type: ${getApType(activityObject)}`;
|
||||
}
|
||||
|
||||
const note = await this.apNoteService.resolveNote(activityObject, { resolver });
|
||||
if (note == null) return 'note not found';
|
||||
await this.notePiningService.removePinned(actor, note.id);
|
||||
|
|
|
@ -344,6 +344,7 @@ export interface IMove extends IActivity {
|
|||
target: IObject | string;
|
||||
}
|
||||
|
||||
export const isApObject = (object: string | IObject): object is IObject => typeof(object) === 'object';
|
||||
export const isCreate = (object: IObject): object is ICreate => getApType(object) === 'Create';
|
||||
export const isDelete = (object: IObject): object is IDelete => getApType(object) === 'Delete';
|
||||
export const isUpdate = (object: IObject): object is IUpdate => getApType(object) === 'Update';
|
||||
|
|
Loading…
Reference in a new issue