diff options
author | Chocobozzz <me@florianbigard.com> | 2022-03-24 13:36:47 +0100 |
---|---|---|
committer | Chocobozzz <chocobozzz@cpy.re> | 2022-04-15 09:49:35 +0200 |
commit | b211106695bb82f6c32e53306081b5262c3d109d (patch) | |
tree | fa187de1c33b0956665f5362e29af6b0f6d8bb57 /server/types | |
parent | 69d48ee30c9d47cddf0c3c047dc99a99dcb6e894 (diff) | |
download | PeerTube-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.ts | 2 | ||||
-rw-r--r-- | server/types/models/video/index.ts | 2 | ||||
-rw-r--r-- | server/types/models/video/local-video-viewer-watch-section.ts | 5 | ||||
-rw-r--r-- | server/types/models/video/local-video-viewer.ts | 19 |
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 @@ | |||
1 | export * from './local-video-viewer-watch-section' | ||
2 | export * from './local-video-viewer' | ||
1 | export * from './schedule-video-update' | 3 | export * from './schedule-video-update' |
2 | export * from './tag' | 4 | export * from './tag' |
3 | export * from './thumbnail' | 5 | export * 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 @@ | |||
1 | import { LocalVideoViewerWatchSectionModel } from '@server/models/view/local-video-viewer-watch-section' | ||
2 | |||
3 | // ############################################################################ | ||
4 | |||
5 | export 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 @@ | |||
1 | import { LocalVideoViewerModel } from '@server/models/view/local-video-viewer' | ||
2 | import { PickWith } from '@shared/typescript-utils' | ||
3 | import { MLocalVideoViewerWatchSection } from './local-video-viewer-watch-section' | ||
4 | import { MVideo } from './video' | ||
5 | |||
6 | type Use<K extends keyof LocalVideoViewerModel, M> = PickWith<LocalVideoViewerModel, K, M> | ||
7 | |||
8 | // ############################################################################ | ||
9 | |||
10 | export type MLocalVideoViewer = Omit<LocalVideoViewerModel, 'Video'> | ||
11 | |||
12 | export type MLocalVideoViewerVideo = | ||
13 | MLocalVideoViewer & | ||
14 | Use<'Video', MVideo> | ||
15 | |||
16 | export type MLocalVideoViewerWithWatchSections = | ||
17 | MLocalVideoViewer & | ||
18 | Use<'Video', MVideo> & | ||
19 | Use<'WatchSections', MLocalVideoViewerWatchSection[]> | ||