mirror of
				https://codeberg.org/yeentown/barkey.git
				synced 2025-11-04 07:24:13 +00:00 
			
		
		
		
	filter Add / Remove activities with non-Note payloads
This commit is contained in:
		
							parent
							
								
									fd47bf3483
								
							
						
					
					
						commit
						d74cf9e4ff
					
				
					 2 changed files with 12 additions and 3 deletions
				
			
		| 
						 | 
				
			
			@ -32,7 +32,7 @@ import { AbuseReportService } from '@/core/AbuseReportService.js';
 | 
			
		|||
import { FederatedInstanceService } from '@/core/FederatedInstanceService.js';
 | 
			
		||||
import { fromTuple } from '@/misc/from-tuple.js';
 | 
			
		||||
import { IdentifiableError } from '@/misc/identifiable-error.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, isNote, 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';
 | 
			
		||||
| 
						 | 
				
			
			@ -271,8 +271,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) && !isNote(activityObject)) {
 | 
			
		||||
				return 'unsupported featured object type';
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			const note = await this.apNoteService.resolveNote(activityObject, { resolver });
 | 
			
		||||
			if (note == null) return 'note not found';
 | 
			
		||||
			await this.notePiningService.addPinned(actor, note.id);
 | 
			
		||||
			return;
 | 
			
		||||
| 
						 | 
				
			
			@ -642,6 +646,10 @@ export class ApInboxService {
 | 
			
		|||
 | 
			
		||||
		if (activity.target === actor.featured) {
 | 
			
		||||
			const activityObject = fromTuple(activity.object);
 | 
			
		||||
			if (isApObject(activityObject) && !isNote(activityObject)) {
 | 
			
		||||
				return 'unsupported featured object type';
 | 
			
		||||
			}
 | 
			
		||||
 | 
			
		||||
			const note = await this.apNoteService.resolveNote(activityObject, { resolver });
 | 
			
		||||
			if (note == null) return 'note not found';
 | 
			
		||||
			await this.notePiningService.removePinned(actor, note.id);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -340,6 +340,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…
	
	Add table
		
		Reference in a new issue