X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=server%2Fmodels%2Fvideo%2Fvideo-live.ts;h=d2788ef4f7d16d2fbd3b2aa933f9065309a47374;hb=38a3ccc7f8ad0ea94362b58c732af7c387ab46be;hp=0bc8da02231f10daa64e7b92249cb30e9b821a2a;hpb=df1db951c512a58110171d046ef367789df02733;p=github%2FChocobozzz%2FPeerTube.git diff --git a/server/models/video/video-live.ts b/server/models/video/video-live.ts index 0bc8da022..d2788ef4f 100644 --- a/server/models/video/video-live.ts +++ b/server/models/video/video-live.ts @@ -1,11 +1,11 @@ import { AllowNull, BelongsTo, Column, CreatedAt, DataType, DefaultScope, ForeignKey, Model, Table, UpdatedAt } from 'sequelize-typescript' +import { CONFIG } from '@server/initializers/config' import { WEBSERVER } from '@server/initializers/constants' import { MVideoLive, MVideoLiveVideo } from '@server/types/models' -import { AttributesOnly } from '@shared/core-utils' -import { LiveVideo, VideoState } from '@shared/models' +import { LiveVideo, LiveVideoLatencyMode, VideoState } from '@shared/models' +import { AttributesOnly } from '@shared/typescript-utils' import { VideoModel } from './video' import { VideoBlacklistModel } from './video-blacklist' -import { CONFIG } from '@server/initializers/config' @DefaultScope(() => ({ include: [ @@ -44,6 +44,10 @@ export class VideoLiveModel extends Model @Column permanentLive: boolean + @AllowNull(false) + @Column + latencyMode: LiveVideoLatencyMode + @CreatedAt createdAt: Date @@ -97,23 +101,31 @@ export class VideoLiveModel extends Model return VideoLiveModel.findOne(query) } - toFormattedJSON (): LiveVideo { - let rtmpUrl: string = null - let rtmpsUrl: string = null + toFormattedJSON (canSeePrivateInformation: boolean): LiveVideo { + let privateInformation: Pick | {} = {} // If we don't have a stream key, it means this is a remote live so we don't specify the rtmp URL - if (this.streamKey) { - if (CONFIG.LIVE.RTMP.ENABLED) rtmpUrl = WEBSERVER.RTMP_URL - if (CONFIG.LIVE.RTMPS.ENABLED) rtmpsUrl = WEBSERVER.RTMPS_URL + // We also display these private information only to the live owne/moderators + if (this.streamKey && canSeePrivateInformation === true) { + privateInformation = { + streamKey: this.streamKey, + + rtmpUrl: CONFIG.LIVE.RTMP.ENABLED + ? WEBSERVER.RTMP_URL + : null, + + rtmpsUrl: CONFIG.LIVE.RTMPS.ENABLED + ? WEBSERVER.RTMPS_URL + : null + } } return { - rtmpUrl, - rtmpsUrl, + ...privateInformation, - streamKey: this.streamKey, permanentLive: this.permanentLive, - saveReplay: this.saveReplay + saveReplay: this.saveReplay, + latencyMode: this.latencyMode } } }