PeerTube/client/src/app/+admin/shared/user-real-quota-info.compon...

44 lines
1.2 KiB
TypeScript
Raw Normal View History

import { Component, Input, OnInit } from '@angular/core'
import { ServerService } from '@app/core'
import { HTMLServerConfig, VideoResolution } from '@peertube/peertube-models'
@Component({
selector: 'my-user-real-quota-info',
2023-02-17 16:00:50 +01:00
templateUrl: './user-real-quota-info.component.html'
})
export class UserRealQuotaInfoComponent implements OnInit {
@Input() videoQuota: number | string
private serverConfig: HTMLServerConfig
constructor (private server: ServerService) { }
ngOnInit () {
this.serverConfig = this.server.getHTMLConfig()
}
isTranscodingInformationDisplayed () {
return this.serverConfig.transcoding.enabledResolutions.length !== 0 && this.getQuotaAsNumber() > 0
}
computeQuotaWithTranscoding () {
const transcodingConfig = this.serverConfig.transcoding
const resolutions = transcodingConfig.enabledResolutions
const higherResolution = VideoResolution.H_4K
let multiplier = 0
for (const resolution of resolutions) {
multiplier += resolution / higherResolution
}
if (transcodingConfig.hls.enabled) multiplier *= 2
return multiplier * this.getQuotaAsNumber()
}
private getQuotaAsNumber () {
return parseInt(this.videoQuota + '', 10)
}
}