aboutsummaryrefslogtreecommitdiffhomepage
path: root/shared/models/videos/stats
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 /shared/models/videos/stats
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 'shared/models/videos/stats')
-rw-r--r--shared/models/videos/stats/index.ts4
-rw-r--r--shared/models/videos/stats/video-stats-overall.model.ts17
-rw-r--r--shared/models/videos/stats/video-stats-retention.model.ts6
-rw-r--r--shared/models/videos/stats/video-stats-timeserie-metric.type.ts1
-rw-r--r--shared/models/videos/stats/video-stats-timeserie.model.ts6
5 files changed, 34 insertions, 0 deletions
diff --git a/shared/models/videos/stats/index.ts b/shared/models/videos/stats/index.ts
new file mode 100644
index 000000000..d1e9c167c
--- /dev/null
+++ b/shared/models/videos/stats/index.ts
@@ -0,0 +1,4 @@
1export * from './video-stats-overall.model'
2export * from './video-stats-retention.model'
3export * from './video-stats-timeserie.model'
4export * from './video-stats-timeserie-metric.type'
diff --git a/shared/models/videos/stats/video-stats-overall.model.ts b/shared/models/videos/stats/video-stats-overall.model.ts
new file mode 100644
index 000000000..f2a0470ef
--- /dev/null
+++ b/shared/models/videos/stats/video-stats-overall.model.ts
@@ -0,0 +1,17 @@
1export interface VideoStatsOverall {
2 averageWatchTime: number
3 totalWatchTime: number
4
5 viewersPeak: number
6 viewersPeakDate: string
7
8 views: number
9 likes: number
10 dislikes: number
11 comments: number
12
13 countries: {
14 isoCode: string
15 viewers: number
16 }[]
17}
diff --git a/shared/models/videos/stats/video-stats-retention.model.ts b/shared/models/videos/stats/video-stats-retention.model.ts
new file mode 100644
index 000000000..e494888ed
--- /dev/null
+++ b/shared/models/videos/stats/video-stats-retention.model.ts
@@ -0,0 +1,6 @@
1export interface VideoStatsRetention {
2 data: {
3 second: number
4 retentionPercent: number
5 }[]
6}
diff --git a/shared/models/videos/stats/video-stats-timeserie-metric.type.ts b/shared/models/videos/stats/video-stats-timeserie-metric.type.ts
new file mode 100644
index 000000000..fc268d083
--- /dev/null
+++ b/shared/models/videos/stats/video-stats-timeserie-metric.type.ts
@@ -0,0 +1 @@
export type VideoStatsTimeserieMetric = 'viewers' | 'aggregateWatchTime'
diff --git a/shared/models/videos/stats/video-stats-timeserie.model.ts b/shared/models/videos/stats/video-stats-timeserie.model.ts
new file mode 100644
index 000000000..d95e34f1d
--- /dev/null
+++ b/shared/models/videos/stats/video-stats-timeserie.model.ts
@@ -0,0 +1,6 @@
1export interface VideoStatsTimeserie {
2 data: {
3 date: string
4 value: number
5 }[]
6}