]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame_incremental - shared/models/activitypub/objects/common-objects.ts
Don't guess remote tracker URL
[github/Chocobozzz/PeerTube.git] / shared / models / activitypub / objects / common-objects.ts
... / ...
CommitLineData
1import { AbusePredefinedReasonsString } from '../../moderation/abuse/abuse-reason.model'
2
3export interface ActivityIdentifierObject {
4 identifier: string
5 name: string
6 url?: string
7}
8
9export interface ActivityIconObject {
10 type: 'Image'
11 url: string
12 mediaType: 'image/jpeg' | 'image/png'
13 width?: number
14 height?: number
15}
16
17export 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
26export type ActivityPlaylistSegmentHashesObject = {
27 type: 'Link'
28 name: 'sha256'
29 mediaType: 'application/json'
30 href: string
31}
32
33export type ActivityVideoFileMetadataUrlObject = {
34 type: 'Link'
35 rel: [ 'metadata', any ]
36 mediaType: 'application/json'
37 height: number
38 href: string
39 fps: number
40}
41
42export type ActivityTrackerUrlObject = {
43 type: 'Link'
44 rel: [ 'tracker', 'websocket' | 'http' ]
45 name: string
46 href: string
47}
48
49export type ActivityPlaylistInfohashesObject = {
50 type: 'Infohash'
51 name: string
52}
53
54export type ActivityPlaylistUrlObject = {
55 type: 'Link'
56 mediaType: 'application/x-mpegURL'
57 href: string
58 tag?: ActivityTagObject[]
59}
60
61export 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
68export type ActivityMagnetUrlObject = {
69 type: 'Link'
70 mediaType: 'application/x-bittorrent;x-scheme-handler/magnet'
71 href: string
72 height: number
73}
74
75export type ActivityHtmlUrlObject = {
76 type: 'Link'
77 mediaType: 'text/html'
78 href: string
79}
80
81export interface ActivityHashTagObject {
82 type: 'Hashtag'
83 href?: string
84 name: string
85}
86
87export interface ActivityMentionObject {
88 type: 'Mention'
89 href?: string
90 name: string
91}
92
93export interface ActivityFlagReasonObject {
94 type: 'Hashtag'
95 name: AbusePredefinedReasonsString
96}
97
98export type ActivityTagObject =
99 ActivityPlaylistSegmentHashesObject
100 | ActivityPlaylistInfohashesObject
101 | ActivityVideoUrlObject
102 | ActivityHashTagObject
103 | ActivityMentionObject
104 | ActivityBitTorrentUrlObject
105 | ActivityMagnetUrlObject
106 | ActivityVideoFileMetadataUrlObject
107
108export type ActivityUrlObject =
109 ActivityVideoUrlObject
110 | ActivityPlaylistUrlObject
111 | ActivityBitTorrentUrlObject
112 | ActivityMagnetUrlObject
113 | ActivityHtmlUrlObject
114 | ActivityVideoFileMetadataUrlObject
115 | ActivityTrackerUrlObject
116
117export interface ActivityPubAttributedTo {
118 type: 'Group' | 'Person'
119 id: string
120}
121
122export 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}