]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blob - shared/models/activitypub/objects/common-objects.ts
43d7f7f7480eab9e150a0dff3a17686505389f56
[github/Chocobozzz/PeerTube.git] / shared / models / activitypub / objects / common-objects.ts
1 import { AbusePredefinedReasonsString } from '../../moderation/abuse/abuse-reason.model'
2
3 export interface ActivityIdentifierObject {
4 identifier: string
5 name: string
6 url?: string
7 }
8
9 export interface ActivityIconObject {
10 type: 'Image'
11 url: string
12 mediaType: string
13 width?: number
14 height?: number
15 }
16
17 export type ActivityVideoUrlObject = {
18 type: 'Link'
19 mediaType: 'video/mp4' | 'video/webm' | 'video/ogg'
20 href: string
21 height: number
22 size: number
23 fps: number
24 }
25
26 export type ActivityPlaylistSegmentHashesObject = {
27 type: 'Link'
28 name: 'sha256'
29 mediaType: 'application/json'
30 href: string
31 }
32
33 export type ActivityVideoFileMetadataUrlObject = {
34 type: 'Link'
35 rel: [ 'metadata', any ]
36 mediaType: 'application/json'
37 height: number
38 href: string
39 fps: number
40 }
41
42 export type ActivityTrackerUrlObject = {
43 type: 'Link'
44 rel: [ 'tracker', 'websocket' | 'http' ]
45 name: string
46 href: string
47 }
48
49 export type ActivityPlaylistInfohashesObject = {
50 type: 'Infohash'
51 name: string
52 }
53
54 export type ActivityPlaylistUrlObject = {
55 type: 'Link'
56 mediaType: 'application/x-mpegURL'
57 href: string
58 tag?: ActivityTagObject[]
59 }
60
61 export type ActivityBitTorrentUrlObject = {
62 type: 'Link'
63 mediaType: 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet'
64 href: string
65 height: number
66 }
67
68 export type ActivityMagnetUrlObject = {
69 type: 'Link'
70 mediaType: 'application/x-bittorrent;x-scheme-handler/magnet'
71 href: string
72 height: number
73 }
74
75 export type ActivityHtmlUrlObject = {
76 type: 'Link'
77 mediaType: 'text/html'
78 href: string
79 }
80
81 export interface ActivityHashTagObject {
82 type: 'Hashtag'
83 href?: string
84 name: string
85 }
86
87 export interface ActivityMentionObject {
88 type: 'Mention'
89 href?: string
90 name: string
91 }
92
93 export interface ActivityFlagReasonObject {
94 type: 'Hashtag'
95 name: AbusePredefinedReasonsString
96 }
97
98 export type ActivityTagObject =
99 ActivityPlaylistSegmentHashesObject
100 | ActivityPlaylistInfohashesObject
101 | ActivityVideoUrlObject
102 | ActivityHashTagObject
103 | ActivityMentionObject
104 | ActivityBitTorrentUrlObject
105 | ActivityMagnetUrlObject
106 | ActivityVideoFileMetadataUrlObject
107
108 export type ActivityUrlObject =
109 ActivityVideoUrlObject
110 | ActivityPlaylistUrlObject
111 | ActivityBitTorrentUrlObject
112 | ActivityMagnetUrlObject
113 | ActivityHtmlUrlObject
114 | ActivityVideoFileMetadataUrlObject
115 | ActivityTrackerUrlObject
116
117 export interface ActivityPubAttributedTo {
118 type: 'Group' | 'Person'
119 id: string
120 }
121
122 export interface ActivityTombstoneObject {
123 '@context'?: any
124 id: string
125 url?: string
126 type: 'Tombstone'
127 name?: string
128 formerType?: string
129 inReplyTo?: string
130 published: string
131 updated: string
132 deleted: string
133 }