X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Factivitypub%2Fobjects%2Fcommon-objects.ts;h=9bf9943799a36494e839da61ad5b2088bb2fd75e;hb=f18a060a83d7053897173b2a24fb7984893131c7;hp=3127d0565c7240f001c85fed3ef0cf111cbc0b02;hpb=9fb3abfdac5c4bffe9992a457e5210d3aa743952;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/activitypub/objects/common-objects.ts b/shared/models/activitypub/objects/common-objects.ts index 3127d0565..9bf994379 100644 --- a/shared/models/activitypub/objects/common-objects.ts +++ b/shared/models/activitypub/objects/common-objects.ts @@ -1,31 +1,133 @@ +import { AbusePredefinedReasonsString } from '../../moderation/abuse/abuse-reason.model' + export interface ActivityIdentifierObject { identifier: string name: string -} - -export interface ActivityTagObject { - type: 'Hashtag' | 'Mention' - href?: string - name: string + url?: string } export interface ActivityIconObject { type: 'Image' url: string - mediaType: 'image/jpeg' - width: number + mediaType: string + width?: number + height?: number +} + +export type ActivityVideoUrlObject = { + type: 'Link' + mediaType: 'video/mp4' | 'video/webm' | 'video/ogg' + href: string + height: number + size: number + fps: number +} + +export type ActivityPlaylistSegmentHashesObject = { + type: 'Link' + name: 'sha256' + mediaType: 'application/json' + href: string +} + +export type ActivityVideoFileMetadataUrlObject = { + type: 'Link' + rel: [ 'metadata', any ] + mediaType: 'application/json' height: number + href: string + fps: number +} + +export type ActivityTrackerUrlObject = { + type: 'Link' + rel: [ 'tracker', 'websocket' | 'http' ] + name: string + href: string } -export interface ActivityUrlObject { +export type ActivityStreamingPlaylistInfohashesObject = { + type: 'Infohash' + name: string +} + +export type ActivityPlaylistUrlObject = { type: 'Link' - mimeType: 'video/mp4' | 'video/webm' | 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet' + mediaType: 'application/x-mpegURL' href: string - width: number - size?: number + tag?: ActivityTagObject[] } +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 +} + +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' + name: AbusePredefinedReasonsString +} + +export type ActivityTagObject = + ActivityPlaylistSegmentHashesObject + | ActivityStreamingPlaylistInfohashesObject + | ActivityVideoUrlObject + | ActivityHashTagObject + | ActivityMentionObject + | ActivityBitTorrentUrlObject + | ActivityMagnetUrlObject + | ActivityVideoFileMetadataUrlObject + +export type ActivityUrlObject = + ActivityVideoUrlObject + | ActivityPlaylistUrlObject + | ActivityBitTorrentUrlObject + | ActivityMagnetUrlObject + | ActivityHtmlUrlObject + | ActivityVideoFileMetadataUrlObject + | ActivityTrackerUrlObject + 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 +}