51353d9a03
Introduce viewers attribute for live videos Count views for live videos Reduce delay to see the viewer update for lives Add ability to configure video views buffer interval and view ip expiration
119 lines
2.6 KiB
TypeScript
119 lines
2.6 KiB
TypeScript
import { ActivityPubActor } from './activitypub-actor'
|
|
import { ActivityPubSignature } from './activitypub-signature'
|
|
import { ActivityFlagReasonObject, CacheFileObject, VideoObject } from './objects'
|
|
import { AbuseObject } from './objects/abuse-object'
|
|
import { DislikeObject } from './objects/dislike-object'
|
|
import { APObject } from './objects/object.model'
|
|
import { PlaylistObject } from './objects/playlist-object'
|
|
import { VideoCommentObject } from './objects/video-comment-object'
|
|
|
|
export type Activity =
|
|
ActivityCreate |
|
|
ActivityUpdate |
|
|
ActivityDelete |
|
|
ActivityFollow |
|
|
ActivityAccept |
|
|
ActivityAnnounce |
|
|
ActivityUndo |
|
|
ActivityLike |
|
|
ActivityReject |
|
|
ActivityView |
|
|
ActivityDislike |
|
|
ActivityFlag
|
|
|
|
export type ActivityType =
|
|
'Create' |
|
|
'Update' |
|
|
'Delete' |
|
|
'Follow' |
|
|
'Accept' |
|
|
'Announce' |
|
|
'Undo' |
|
|
'Like' |
|
|
'Reject' |
|
|
'View' |
|
|
'Dislike' |
|
|
'Flag'
|
|
|
|
export interface ActivityAudience {
|
|
to: string[]
|
|
cc: string[]
|
|
}
|
|
|
|
export interface BaseActivity {
|
|
'@context'?: any[]
|
|
id: string
|
|
to?: string[]
|
|
cc?: string[]
|
|
actor: string | ActivityPubActor
|
|
type: ActivityType
|
|
signature?: ActivityPubSignature
|
|
}
|
|
|
|
export interface ActivityCreate extends BaseActivity {
|
|
type: 'Create'
|
|
object: VideoObject | AbuseObject | DislikeObject | VideoCommentObject | CacheFileObject | PlaylistObject
|
|
}
|
|
|
|
export interface ActivityUpdate extends BaseActivity {
|
|
type: 'Update'
|
|
object: VideoObject | ActivityPubActor | CacheFileObject | PlaylistObject
|
|
}
|
|
|
|
export interface ActivityDelete extends BaseActivity {
|
|
type: 'Delete'
|
|
object: string | { id: string }
|
|
}
|
|
|
|
export interface ActivityFollow extends BaseActivity {
|
|
type: 'Follow'
|
|
object: string
|
|
}
|
|
|
|
export interface ActivityAccept extends BaseActivity {
|
|
type: 'Accept'
|
|
object: ActivityFollow
|
|
}
|
|
|
|
export interface ActivityReject extends BaseActivity {
|
|
type: 'Reject'
|
|
object: ActivityFollow
|
|
}
|
|
|
|
export interface ActivityAnnounce extends BaseActivity {
|
|
type: 'Announce'
|
|
object: APObject
|
|
}
|
|
|
|
export interface ActivityUndo extends BaseActivity {
|
|
type: 'Undo'
|
|
object: ActivityFollow | ActivityLike | ActivityDislike | ActivityCreate | ActivityAnnounce
|
|
}
|
|
|
|
export interface ActivityLike extends BaseActivity {
|
|
type: 'Like'
|
|
object: APObject
|
|
}
|
|
|
|
export interface ActivityView extends BaseActivity {
|
|
type: 'View'
|
|
actor: string
|
|
object: APObject
|
|
expires: string
|
|
}
|
|
|
|
export interface ActivityDislike extends BaseActivity {
|
|
id: string
|
|
type: 'Dislike'
|
|
actor: string
|
|
object: APObject
|
|
}
|
|
|
|
export interface ActivityFlag extends BaseActivity {
|
|
type: 'Flag'
|
|
content: string
|
|
object: APObject | APObject[]
|
|
tag?: ActivityFlagReasonObject[]
|
|
startAt?: number
|
|
endAt?: number
|
|
}
|