X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Factivitypub%2Factivity.ts;h=5b4ce214a22b98ee5198f9aeb7d683f1a3ff3750;hb=ec903c010ecc54ec2acad0bf2cf10e7fbf6a0fa2;hp=a87afc54803b59e771375df5360714d38bf08fe7;hpb=265ba139ebf56bbdc1c65f6ea4f367774c691fc0;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/activitypub/activity.ts b/shared/models/activitypub/activity.ts index a87afc548..5b4ce214a 100644 --- a/shared/models/activitypub/activity.ts +++ b/shared/models/activitypub/activity.ts @@ -1,16 +1,40 @@ import { ActivityPubActor } from './activitypub-actor' import { ActivityPubSignature } from './activitypub-signature' -import { VideoTorrentObject } from './objects' +import { ActivityFlagReasonObject, CacheFileObject, VideoTorrentObject } from './objects' +import { AbuseObject } from './objects/abuse-object' import { DislikeObject } from './objects/dislike-object' -import { VideoAbuseObject } from './objects/video-abuse-object' +import { APObject } from './objects/object.model' +import { PlaylistObject } from './objects/playlist-object' import { VideoCommentObject } from './objects/video-comment-object' import { ViewObject } from './objects/view-object' -export type Activity = ActivityCreate | ActivityUpdate | - ActivityDelete | ActivityFollow | ActivityAccept | ActivityAnnounce | - ActivityUndo | ActivityLike +export type Activity = + ActivityCreate | + ActivityUpdate | + ActivityDelete | + ActivityFollow | + ActivityAccept | + ActivityAnnounce | + ActivityUndo | + ActivityLike | + ActivityReject | + ActivityView | + ActivityDislike | + ActivityFlag -export type ActivityType = 'Create' | 'Update' | 'Delete' | 'Follow' | 'Accept' | 'Announce' | 'Undo' | 'Like' +export type ActivityType = + 'Create' | + 'Update' | + 'Delete' | + 'Follow' | + 'Accept' | + 'Announce' | + 'Undo' | + 'Like' | + 'Reject' | + 'View' | + 'Dislike' | + 'Flag' export interface ActivityAudience { to: string[] @@ -22,23 +46,24 @@ export interface BaseActivity { id: string to?: string[] cc?: string[] - actor: string + actor: string | ActivityPubActor type: ActivityType signature?: ActivityPubSignature } export interface ActivityCreate extends BaseActivity { type: 'Create' - object: VideoTorrentObject | VideoAbuseObject | ViewObject | DislikeObject | VideoCommentObject + object: VideoTorrentObject | AbuseObject | ViewObject | DislikeObject | VideoCommentObject | CacheFileObject | PlaylistObject } export interface ActivityUpdate extends BaseActivity { type: 'Update' - object: VideoTorrentObject | ActivityPubActor + object: VideoTorrentObject | ActivityPubActor | CacheFileObject | PlaylistObject } export interface ActivityDelete extends BaseActivity { type: 'Delete' + object: string | { id: string } } export interface ActivityFollow extends BaseActivity { @@ -51,17 +76,44 @@ export interface ActivityAccept extends BaseActivity { object: ActivityFollow } +export interface ActivityReject extends BaseActivity { + type: 'Reject' + object: ActivityFollow +} + export interface ActivityAnnounce extends BaseActivity { type: 'Announce' - object: ActivityCreate | string + object: APObject } export interface ActivityUndo extends BaseActivity { - type: 'Undo', - object: ActivityFollow | ActivityLike | ActivityCreate + type: 'Undo' + object: ActivityFollow | ActivityLike | ActivityDislike | ActivityCreate | ActivityAnnounce } export interface ActivityLike extends BaseActivity { - type: 'Like', - object: string + type: 'Like' + object: APObject +} + +export interface ActivityView extends BaseActivity { + type: 'View' + actor: string + object: APObject +} + +export interface ActivityDislike extends BaseActivity { + id: string + type: 'Dislike' + actor: string + object: APObject +} + +export interface ActivityFlag extends BaseActivity { + type: 'Flag' + content: string + object: APObject | APObject[] + tag?: ActivityFlagReasonObject[] + startAt?: number + endAt?: number }