X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fassets%2Fplayer%2Fvideojs-components%2Fp2p-info-button.ts;h=db6806fed121d9605c53647b6f5598164187666d;hb=610d0be13b3d01f653ef269271dd667a57c85ef2;hp=2fc4c456207a8c61e539175af88df184ea568234;hpb=3b6f205c34bb931de0323581edf991ca33256e6b;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/assets/player/videojs-components/p2p-info-button.ts b/client/src/assets/player/videojs-components/p2p-info-button.ts index 2fc4c4562..db6806fed 100644 --- a/client/src/assets/player/videojs-components/p2p-info-button.ts +++ b/client/src/assets/player/videojs-components/p2p-info-button.ts @@ -1,63 +1,64 @@ -import { PlayerNetworkInfo, VideoJSComponentInterface, videojsUntyped } from '../peertube-videojs-typings' +import { PlayerNetworkInfo } from '../peertube-videojs-typings' +import videojs from 'video.js' import { bytes } from '../utils' -const Button: VideoJSComponentInterface = videojsUntyped.getComponent('Button') +const Button = videojs.getComponent('Button') class P2pInfoButton extends Button { createEl () { - const div = videojsUntyped.dom.createEl('div', { + const div = videojs.dom.createEl('div', { className: 'vjs-peertube' }) - const subDivWebtorrent = videojsUntyped.dom.createEl('div', { + const subDivWebtorrent = videojs.dom.createEl('div', { className: 'vjs-peertube-hidden' // Hide the stats before we get the info - }) + }) as HTMLDivElement div.appendChild(subDivWebtorrent) - const downloadIcon = videojsUntyped.dom.createEl('span', { + const downloadIcon = videojs.dom.createEl('span', { className: 'icon icon-download' }) subDivWebtorrent.appendChild(downloadIcon) - const downloadSpeedText = videojsUntyped.dom.createEl('span', { + const downloadSpeedText = videojs.dom.createEl('span', { className: 'download-speed-text' }) - const downloadSpeedNumber = videojsUntyped.dom.createEl('span', { + const downloadSpeedNumber = videojs.dom.createEl('span', { className: 'download-speed-number' }) - const downloadSpeedUnit = videojsUntyped.dom.createEl('span') + const downloadSpeedUnit = videojs.dom.createEl('span') downloadSpeedText.appendChild(downloadSpeedNumber) downloadSpeedText.appendChild(downloadSpeedUnit) subDivWebtorrent.appendChild(downloadSpeedText) - const uploadIcon = videojsUntyped.dom.createEl('span', { + const uploadIcon = videojs.dom.createEl('span', { className: 'icon icon-upload' }) subDivWebtorrent.appendChild(uploadIcon) - const uploadSpeedText = videojsUntyped.dom.createEl('span', { + const uploadSpeedText = videojs.dom.createEl('span', { className: 'upload-speed-text' }) - const uploadSpeedNumber = videojsUntyped.dom.createEl('span', { + const uploadSpeedNumber = videojs.dom.createEl('span', { className: 'upload-speed-number' }) - const uploadSpeedUnit = videojsUntyped.dom.createEl('span') + const uploadSpeedUnit = videojs.dom.createEl('span') uploadSpeedText.appendChild(uploadSpeedNumber) uploadSpeedText.appendChild(uploadSpeedUnit) subDivWebtorrent.appendChild(uploadSpeedText) - const peersText = videojsUntyped.dom.createEl('span', { + const peersText = videojs.dom.createEl('span', { className: 'peers-text' }) - const peersNumber = videojsUntyped.dom.createEl('span', { + const peersNumber = videojs.dom.createEl('span', { className: 'peers-number' }) subDivWebtorrent.appendChild(peersNumber) subDivWebtorrent.appendChild(peersText) - const subDivHttp = videojsUntyped.dom.createEl('div', { + const subDivHttp = videojs.dom.createEl('div', { className: 'vjs-peertube-hidden' }) - const subDivHttpText = videojsUntyped.dom.createEl('span', { + const subDivHttpText = videojs.dom.createEl('span', { className: 'http-fallback', textContent: 'HTTP' }) @@ -75,15 +76,16 @@ class P2pInfoButton extends Button { } const p2pStats = data.p2p + const httpStats = data.http - const downloadSpeed = bytes(p2pStats.downloadSpeed) - const uploadSpeed = bytes(p2pStats.uploadSpeed) - const totalDownloaded = bytes(p2pStats.downloaded) - const totalUploaded = bytes(p2pStats.uploaded) + const downloadSpeed = bytes(p2pStats.downloadSpeed + httpStats.downloadSpeed) + const uploadSpeed = bytes(p2pStats.uploadSpeed + httpStats.uploadSpeed) + const totalDownloaded = bytes(p2pStats.downloaded + httpStats.downloaded) + const totalUploaded = bytes(p2pStats.uploaded + httpStats.uploaded) const numPeers = p2pStats.numPeers - subDivWebtorrent.title = this.player_.localize('Total downloaded: ') + totalDownloaded.join(' ') + '\n' + - this.player_.localize('Total uploaded: ' + totalUploaded.join(' ')) + subDivWebtorrent.title = this.player().localize('Total downloaded: ') + totalDownloaded.join(' ') + '\n' + + this.player().localize('Total uploaded: ' + totalUploaded.join(' ')) downloadSpeedNumber.textContent = downloadSpeed[ 0 ] downloadSpeedUnit.textContent = ' ' + downloadSpeed[ 1 ] @@ -91,14 +93,15 @@ class P2pInfoButton extends Button { uploadSpeedNumber.textContent = uploadSpeed[ 0 ] uploadSpeedUnit.textContent = ' ' + uploadSpeed[ 1 ] - peersNumber.textContent = numPeers - peersText.textContent = ' ' + this.player_.localize('peers') + peersNumber.textContent = numPeers.toString() + peersText.textContent = ' ' + (numPeers > 1 ? this.player().localize('peers') : this.player_.localize('peer')) subDivHttp.className = 'vjs-peertube-hidden' subDivWebtorrent.className = 'vjs-peertube-displayed' }) - return div + return div as HTMLButtonElement } } -Button.registerComponent('P2PInfoButton', P2pInfoButton) + +videojs.registerComponent('P2PInfoButton', P2pInfoButton)