PeerTube/shared/models/activitypub/objects/common-objects.ts

134 lines
2.7 KiB
TypeScript
Raw Normal View History

import { AbusePredefinedReasonsString } from '../../moderation/abuse/abuse-reason.model'
2017-11-09 17:51:58 +01:00
export interface ActivityIdentifierObject {
identifier: string
name: string
url?: string
2017-11-09 17:51:58 +01:00
}
export interface ActivityIconObject {
type: 'Image'
url: string
2020-01-31 16:56:52 +01:00
mediaType: 'image/jpeg' | 'image/png'
width?: number
height?: number
2017-11-09 17:51:58 +01:00
}
2018-09-11 16:27:07 +02:00
export type ActivityVideoUrlObject = {
2017-11-09 17:51:58 +01:00
type: 'Link'
2018-10-18 08:48:24 +02:00
mediaType: 'video/mp4' | 'video/webm' | 'video/ogg'
2018-01-12 15:35:30 +01:00
href: string
height: number
2018-09-11 16:27:07 +02:00
size: number
fps: number
2017-11-09 17:51:58 +01:00
}
2017-12-14 17:38:41 +01:00
2019-01-29 08:37:25 +01:00
export type ActivityPlaylistSegmentHashesObject = {
type: 'Link'
name: 'sha256'
mediaType: 'application/json'
href: string
}
2021-02-18 10:15:11 +01:00
export type ActivityVideoFileMetadataUrlObject = {
type: 'Link'
rel: [ 'metadata', any ]
mediaType: 'application/json'
height: number
href: string
fps: number
}
2021-02-18 10:15:11 +01:00
export type ActivityTrackerUrlObject = {
type: 'Link'
rel: [ 'tracker', 'websocket' | 'http' ]
name: string
href: string
}
2019-01-29 08:37:25 +01:00
export type ActivityPlaylistInfohashesObject = {
type: 'Infohash'
name: string
}
export type ActivityPlaylistUrlObject = {
type: 'Link'
mediaType: 'application/x-mpegURL'
href: string
tag?: ActivityTagObject[]
2019-01-29 08:37:25 +01:00
}
export type ActivityBitTorrentUrlObject = {
type: 'Link'
mediaType: 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet'
href: string
height: number
}
export type ActivityMagnetUrlObject = {
type: 'Link'
mediaType: 'application/x-bittorrent;x-scheme-handler/magnet'
href: string
height: number
}
2019-01-29 08:37:25 +01:00
export type ActivityHtmlUrlObject = {
type: 'Link'
mediaType: 'text/html'
href: string
}
export interface ActivityHashTagObject {
type: 'Hashtag'
href?: string
name: string
}
export interface ActivityMentionObject {
type: 'Mention'
href?: string
name: string
}
export interface ActivityFlagReasonObject {
type: 'Hashtag'
2020-07-01 16:05:30 +02:00
name: AbusePredefinedReasonsString
}
2020-01-31 16:56:52 +01:00
export type ActivityTagObject =
ActivityPlaylistSegmentHashesObject
| ActivityPlaylistInfohashesObject
| ActivityVideoUrlObject
| ActivityHashTagObject
| ActivityMentionObject
| ActivityBitTorrentUrlObject
| ActivityMagnetUrlObject
2021-02-18 10:15:11 +01:00
| ActivityVideoFileMetadataUrlObject
2020-01-31 16:56:52 +01:00
export type ActivityUrlObject =
ActivityVideoUrlObject
| ActivityPlaylistUrlObject
| ActivityBitTorrentUrlObject
| ActivityMagnetUrlObject
| ActivityHtmlUrlObject
2021-02-18 10:15:11 +01:00
| ActivityVideoFileMetadataUrlObject
| ActivityTrackerUrlObject
2018-09-11 16:27:07 +02:00
2017-12-14 17:38:41 +01:00
export interface ActivityPubAttributedTo {
type: 'Group' | 'Person'
id: string
}
export interface ActivityTombstoneObject {
'@context'?: any
id: string
url?: string
type: 'Tombstone'
name?: string
formerType?: string
inReplyTo?: string
published: string
updated: string
deleted: string
}