]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - shared/models/activitypub/activity.ts
Merge branch 'release/v1.2.0'
[github/Chocobozzz/PeerTube.git] / shared / models / activitypub / activity.ts
... / ...
CommitLineData
1import { ActivityPubActor } from './activitypub-actor'
2import { ActivityPubSignature } from './activitypub-signature'
3import { CacheFileObject, VideoTorrentObject } from './objects'
4import { DislikeObject } from './objects/dislike-object'
5import { VideoAbuseObject } from './objects/video-abuse-object'
6import { VideoCommentObject } from './objects/video-comment-object'
7import { ViewObject } from './objects/view-object'
8import { APObject } from './objects/object.model'
9
10export type Activity = ActivityCreate | ActivityUpdate |
11 ActivityDelete | ActivityFollow | ActivityAccept | ActivityAnnounce |
12 ActivityUndo | ActivityLike | ActivityReject | ActivityView | ActivityDislike | ActivityFlag
13
14export type ActivityType = 'Create' | 'Update' | 'Delete' | 'Follow' | 'Accept' | 'Announce' | 'Undo' | 'Like' | 'Reject' |
15 'View' | 'Dislike' | 'Flag'
16
17export interface ActivityAudience {
18 to: string[]
19 cc: string[]
20}
21
22export interface BaseActivity {
23 '@context'?: any[]
24 id: string
25 to?: string[]
26 cc?: string[]
27 actor: string | ActivityPubActor
28 type: ActivityType
29 signature?: ActivityPubSignature
30}
31
32export interface ActivityCreate extends BaseActivity {
33 type: 'Create'
34 object: VideoTorrentObject | VideoAbuseObject | ViewObject | DislikeObject | VideoCommentObject | CacheFileObject
35}
36
37export interface ActivityUpdate extends BaseActivity {
38 type: 'Update'
39 object: VideoTorrentObject | ActivityPubActor | CacheFileObject
40}
41
42export interface ActivityDelete extends BaseActivity {
43 type: 'Delete'
44 object: string | { id: string }
45}
46
47export interface ActivityFollow extends BaseActivity {
48 type: 'Follow'
49 object: string
50}
51
52export interface ActivityAccept extends BaseActivity {
53 type: 'Accept'
54 object: ActivityFollow
55}
56
57export interface ActivityReject extends BaseActivity {
58 type: 'Reject'
59 object: ActivityFollow
60}
61
62export interface ActivityAnnounce extends BaseActivity {
63 type: 'Announce'
64 object: APObject
65}
66
67export interface ActivityUndo extends BaseActivity {
68 type: 'Undo',
69 object: ActivityFollow | ActivityLike | ActivityDislike | ActivityCreate | ActivityAnnounce
70}
71
72export interface ActivityLike extends BaseActivity {
73 type: 'Like',
74 object: APObject
75}
76
77export interface ActivityView extends BaseActivity {
78 type: 'View',
79 actor: string
80 object: APObject
81}
82
83export interface ActivityDislike extends BaseActivity {
84 id: string
85 type: 'Dislike'
86 actor: string
87 object: APObject
88}
89
90export interface ActivityFlag extends BaseActivity {
91 type: 'Flag',
92 content: string,
93 object: APObject
94}