aboutsummaryrefslogtreecommitdiffhomepage
path: root/server/types
diff options
context:
space:
mode:
authorChocobozzz <me@florianbigard.com>2022-03-24 13:36:47 +0100
committerChocobozzz <chocobozzz@cpy.re>2022-04-15 09:49:35 +0200
commitb211106695bb82f6c32e53306081b5262c3d109d (patch)
treefa187de1c33b0956665f5362e29af6b0f6d8bb57 /server/types
parent69d48ee30c9d47cddf0c3c047dc99a99dcb6e894 (diff)
downloadPeerTube-b211106695bb82f6c32e53306081b5262c3d109d.tar.gz
PeerTube-b211106695bb82f6c32e53306081b5262c3d109d.tar.zst
PeerTube-b211106695bb82f6c32e53306081b5262c3d109d.zip
Support video views/viewers stats in server
* Add "currentTime" and "event" body params to view endpoint * Merge watching and view endpoints * Introduce WatchAction AP activity * Add tables to store viewer information of local videos * Add endpoints to fetch video views/viewers stats of local videos * Refactor views/viewers handlers * Support "views" and "viewers" counters for both VOD and live videos
Diffstat (limited to 'server/types')
-rw-r--r--server/types/express.d.ts2
-rw-r--r--server/types/models/video/index.ts2
-rw-r--r--server/types/models/video/local-video-viewer-watch-section.ts5
-rw-r--r--server/types/models/video/local-video-viewer.ts19
4 files changed, 28 insertions, 0 deletions
diff --git a/server/types/express.d.ts b/server/types/express.d.ts
index 91a8cf3d8..4537c57c6 100644
--- a/server/types/express.d.ts
+++ b/server/types/express.d.ts
@@ -185,6 +185,8 @@ declare module 'express' {
185 externalAuth?: RegisterServerAuthExternalOptions 185 externalAuth?: RegisterServerAuthExternalOptions
186 186
187 plugin?: MPlugin 187 plugin?: MPlugin
188
189 localViewerFull?: MLocalVideoViewerWithWatchSections
188 } 190 }
189 } 191 }
190} 192}
diff --git a/server/types/models/video/index.ts b/server/types/models/video/index.ts
index e586a4e42..5ddffcab5 100644
--- a/server/types/models/video/index.ts
+++ b/server/types/models/video/index.ts
@@ -1,3 +1,5 @@
1export * from './local-video-viewer-watch-section'
2export * from './local-video-viewer'
1export * from './schedule-video-update' 3export * from './schedule-video-update'
2export * from './tag' 4export * from './tag'
3export * from './thumbnail' 5export * from './thumbnail'
diff --git a/server/types/models/video/local-video-viewer-watch-section.ts b/server/types/models/video/local-video-viewer-watch-section.ts
new file mode 100644
index 000000000..be7a3bba0
--- /dev/null
+++ b/server/types/models/video/local-video-viewer-watch-section.ts
@@ -0,0 +1,5 @@
1import { LocalVideoViewerWatchSectionModel } from '@server/models/view/local-video-viewer-watch-section'
2
3// ############################################################################
4
5export type MLocalVideoViewerWatchSection = Omit<LocalVideoViewerWatchSectionModel, 'LocalVideoViewerModel'>
diff --git a/server/types/models/video/local-video-viewer.ts b/server/types/models/video/local-video-viewer.ts
new file mode 100644
index 000000000..b78ef5507
--- /dev/null
+++ b/server/types/models/video/local-video-viewer.ts
@@ -0,0 +1,19 @@
1import { LocalVideoViewerModel } from '@server/models/view/local-video-viewer'
2import { PickWith } from '@shared/typescript-utils'
3import { MLocalVideoViewerWatchSection } from './local-video-viewer-watch-section'
4import { MVideo } from './video'
5
6type Use<K extends keyof LocalVideoViewerModel, M> = PickWith<LocalVideoViewerModel, K, M>
7
8// ############################################################################
9
10export type MLocalVideoViewer = Omit<LocalVideoViewerModel, 'Video'>
11
12export type MLocalVideoViewerVideo =
13 MLocalVideoViewer &
14 Use<'Video', MVideo>
15
16export type MLocalVideoViewerWithWatchSections =
17 MLocalVideoViewer &
18 Use<'Video', MVideo> &
19 Use<'WatchSections', MLocalVideoViewerWatchSection[]>