X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Factivitypub%2Fobjects%2Fcommon-objects.ts;h=9bf9943799a36494e839da61ad5b2088bb2fd75e;hb=f18a060a83d7053897173b2a24fb7984893131c7;hp=ea5a503acfe123de09dabaab83f5916b762db16a;hpb=50d6de9c286abcb34ff4234d56d9cbb803db7665;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/activitypub/objects/common-objects.ts b/shared/models/activitypub/objects/common-objects.ts index ea5a503ac..9bf994379 100644 --- a/shared/models/activitypub/objects/common-objects.ts +++ b/shared/models/activitypub/objects/common-objects.ts @@ -1,30 +1,133 @@ +import { AbusePredefinedReasonsString } from '../../moderation/abuse/abuse-reason.model' + export interface ActivityIdentifierObject { identifier: string name: string -} - -export interface ActivityTagObject { - type: 'Hashtag' - 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 interface ActivityUrlObject { +export type ActivityPlaylistSegmentHashesObject = { type: 'Link' - mimeType: 'video/mp4' | 'video/webm' | 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet' - url: string - width: number - size?: number + 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 type ActivityStreamingPlaylistInfohashesObject = { + type: 'Infohash' + name: string +} + +export type ActivityPlaylistUrlObject = { + type: 'Link' + mediaType: 'application/x-mpegURL' + href: string + 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 +}