X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=shared%2Fmodels%2Factivitypub%2Fobjects%2Fcommon-objects.ts;h=43d7f7f7480eab9e150a0dff3a17686505389f56;hb=9777fe9eebe53debdf45091cab98f72a5987e05a;hp=1de60da94f5cf4445fafbf8e79d6c6566f3c8721;hpb=c48e82b5e0478434de30626d14594a97f2402e7c;p=github%2FChocobozzz%2FPeerTube.git diff --git a/shared/models/activitypub/objects/common-objects.ts b/shared/models/activitypub/objects/common-objects.ts index 1de60da94..43d7f7f74 100644 --- a/shared/models/activitypub/objects/common-objects.ts +++ b/shared/models/activitypub/objects/common-objects.ts @@ -1,48 +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 - height: number + mediaType: string + width?: number + height?: number } export type ActivityVideoUrlObject = { type: 'Link' - mimeType: 'video/mp4' | 'video/webm' | 'video/ogg' + 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 type ActivityPlaylistInfohashesObject = { + 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 + | ActivityPlaylistInfohashesObject + | ActivityVideoUrlObject + | ActivityHashTagObject + | ActivityMentionObject + | ActivityBitTorrentUrlObject + | ActivityMagnetUrlObject + | ActivityVideoFileMetadataUrlObject + export type ActivityUrlObject = ActivityVideoUrlObject - | - { - type: 'Link' - mimeType: 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet' - href: string - height: number - } - | - { - type: 'Link' - mimeType: 'text/html' - href: string - } + | 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 +}