]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - shared/models/activitypub/objects/common-objects.ts
Remove comments, rates and views from stats
[github/Chocobozzz/PeerTube.git] / shared / models / activitypub / objects / common-objects.ts
index 2a6529fed175c27971c7839481083faca71fa690..9bf9943799a36494e839da61ad5b2088bb2fd75e 100644 (file)
@@ -1,14 +1,17 @@
+import { AbusePredefinedReasonsString } from '../../moderation/abuse/abuse-reason.model'
+
 export interface ActivityIdentifierObject {
   identifier: 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 = {
@@ -27,7 +30,23 @@ export type ActivityPlaylistSegmentHashesObject = {
   href: string
 }
 
-export type ActivityPlaylistInfohashesObject = {
+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
 }
@@ -60,32 +79,55 @@ export type ActivityHtmlUrlObject = {
 }
 
 export interface ActivityHashTagObject {
-  type: 'Hashtag' | 'Mention'
+  type: 'Hashtag'
   href?: string
   name: string
 }
 
 export interface ActivityMentionObject {
-  type: 'Hashtag' | 'Mention'
+  type: 'Mention'
   href?: string
   name: string
 }
 
-export type ActivityTagObject = ActivityPlaylistSegmentHashesObject |
-  ActivityPlaylistInfohashesObject |
-  ActivityVideoUrlObject |
-  ActivityHashTagObject |
-  ActivityMentionObject |
-  ActivityBitTorrentUrlObject |
-  ActivityMagnetUrlObject
+export interface ActivityFlagReasonObject {
+  type: 'Hashtag'
+  name: AbusePredefinedReasonsString
+}
 
-export type ActivityUrlObject = ActivityVideoUrlObject |
-  ActivityPlaylistUrlObject |
-  ActivityBitTorrentUrlObject |
-  ActivityMagnetUrlObject |
-  ActivityHtmlUrlObject
+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
+}