X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Factivitypub%2Factivity.ts;h=fd5d383163fe908a5bf4b061accd44e5f35429ce;hb=e771ff815dba3b4a95633f4e1e10dacd222dfe61;hp=dc562c00a4c366e86054dff81783c1d496827fcf;hpb=0d0e8dd0904b380b70e19ebcb4763d65601c4632;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/activitypub/activity.ts b/shared/models/activitypub/activity.ts index dc562c00a..fd5d38316 100644 --- a/shared/models/activitypub/activity.ts +++ b/shared/models/activitypub/activity.ts @@ -1,39 +1,121 @@ -import { - VideoChannelObject, - VideoTorrentObject -} from './objects' +import { ActivityPubActor } from './activitypub-actor' import { ActivityPubSignature } from './activitypub-signature' +import { ActivityFlagReasonObject, CacheFileObject, VideoObject, WatchActionObject } from './objects' +import { AbuseObject } from './objects/abuse-object' +import { DislikeObject } from './objects/dislike-object' +import { APObject } from './objects/object.model' +import { PlaylistObject } from './objects/playlist-object' +import { VideoCommentObject } from './objects/video-comment-object' -export type Activity = ActivityCreate | ActivityUpdate | ActivityFlag +export type Activity = + ActivityCreate | + ActivityUpdate | + ActivityDelete | + ActivityFollow | + ActivityAccept | + ActivityAnnounce | + ActivityUndo | + ActivityLike | + ActivityReject | + ActivityView | + ActivityDislike | + ActivityFlag -// Flag -> report abuse -export type ActivityType = 'Create' | 'Add' | 'Update' | 'Flag' +export type ActivityType = + 'Create' | + 'Update' | + 'Delete' | + 'Follow' | + 'Accept' | + 'Announce' | + 'Undo' | + 'Like' | + 'Reject' | + 'View' | + 'Dislike' | + 'Flag' + +export interface ActivityAudience { + to: string[] + cc: string[] +} export interface BaseActivity { '@context'?: any[] id: string - to: string[] - actor: string + to?: string[] + cc?: string[] + actor: string | ActivityPubActor type: ActivityType - signature: ActivityPubSignature + signature?: ActivityPubSignature } export interface ActivityCreate extends BaseActivity { type: 'Create' - object: VideoChannelObject -} - -export interface ActivityAdd extends BaseActivity { - type: 'Add' - object: VideoTorrentObject + object: VideoObject | AbuseObject | DislikeObject | VideoCommentObject | CacheFileObject | PlaylistObject | WatchActionObject } export interface ActivityUpdate extends BaseActivity { type: 'Update' - object: VideoTorrentObject | VideoChannelObject + object: VideoObject | ActivityPubActor | CacheFileObject | PlaylistObject +} + +export interface ActivityDelete extends BaseActivity { + type: 'Delete' + object: string | { id: string } +} + +export interface ActivityFollow extends BaseActivity { + type: 'Follow' + object: string +} + +export interface ActivityAccept extends BaseActivity { + type: 'Accept' + object: ActivityFollow +} + +export interface ActivityReject extends BaseActivity { + type: 'Reject' + object: ActivityFollow +} + +export interface ActivityAnnounce extends BaseActivity { + type: 'Announce' + object: APObject +} + +export interface ActivityUndo extends BaseActivity { + type: 'Undo' + object: ActivityFollow | ActivityLike | ActivityDislike | ActivityCreate | ActivityAnnounce +} + +export interface ActivityLike extends BaseActivity { + type: 'Like' + object: APObject +} + +export interface ActivityView extends BaseActivity { + type: 'View' + actor: string + object: APObject + + // If sending a "viewer" event + expires?: string +} + +export interface ActivityDislike extends BaseActivity { + id: string + type: 'Dislike' + actor: string + object: APObject } export interface ActivityFlag extends BaseActivity { type: 'Flag' - object: string + content: string + object: APObject | APObject[] + tag?: ActivityFlagReasonObject[] + startAt?: number + endAt?: number }