1
0
Fork 0
mirror of https://github.com/Chocobozzz/PeerTube.git synced 2025-10-05 19:42:24 +02:00

Refactor video views

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
This commit is contained in:
Chocobozzz 2021-11-09 10:11:20 +01:00 committed by Chocobozzz
parent 221ee1adc9
commit 51353d9a03
31 changed files with 434 additions and 251 deletions

View file

@ -1,7 +1,7 @@
import { Server as HTTPServer } from 'http'
import { Namespace, Server as SocketServer, Socket } from 'socket.io'
import { isIdValid } from '@server/helpers/custom-validators/misc'
import { MVideo } from '@server/types/models'
import { MVideo, MVideoImmutable } from '@server/types/models'
import { UserNotificationModelForApi } from '@server/types/models/user'
import { LiveVideoEventPayload, LiveVideoEventType } from '@shared/models'
import { logger } from '../helpers/logger'
@ -78,11 +78,11 @@ class PeerTubeSocket {
.emit(type, data)
}
sendVideoViewsUpdate (video: MVideo) {
const data: LiveVideoEventPayload = { views: video.views }
sendVideoViewsUpdate (video: MVideoImmutable, numViewers: number) {
const data: LiveVideoEventPayload = { viewers: numViewers, views: numViewers }
const type: LiveVideoEventType = 'views-change'
logger.debug('Sending video live views update notification of %s.', video.url, { views: video.views })
logger.debug('Sending video live views update notification of %s.', video.url, { viewers: numViewers })
this.liveVideosNamespace
.in(video.id)