]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/models/activitypub/objects/common-objects.ts
Merge branch 'release/2.1.0' into develop
[github/Chocobozzz/PeerTube.git] / shared / models / activitypub / objects / common-objects.ts
index ff2cfdbb4894850d0cf9120f1ebcd0a4bf9c550e..e94d054295448fdf3d1c60780b81a3b500963f8a 100644 (file)
 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: 'image/jpeg' | 'image/png'
+  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 ActivityPlaylistInfohashesObject = {
+  type: 'Infohash'
+  name: string
 }
 
-export interface ActivityUrlObject {
+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
+  tag?: ActivityTagObject[]
+}
+
+export type ActivityBitTorrentUrlObject = {
+  type: 'Link'
+  mediaType: 'application/x-bittorrent' | 'application/x-bittorrent;x-scheme-handler/magnet'
   href: string
   height: number
+}
 
-  size?: number
-  fps?: 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' | 'Mention'
+  href?: string
+  name: string
 }
 
+export interface ActivityMentionObject {
+  type: 'Hashtag' | 'Mention'
+  href?: string
+  name: string
+}
+
+export type ActivityTagObject =
+  ActivityPlaylistSegmentHashesObject
+  | ActivityPlaylistInfohashesObject
+  | ActivityVideoUrlObject
+  | ActivityHashTagObject
+  | ActivityMentionObject
+  | ActivityBitTorrentUrlObject
+  | ActivityMagnetUrlObject
+
+export type ActivityUrlObject =
+  ActivityVideoUrlObject
+  | ActivityPlaylistUrlObject
+  | ActivityBitTorrentUrlObject
+  | ActivityMagnetUrlObject
+  | ActivityHtmlUrlObject
+
 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
+}