]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/assets/player/videojs-components/p2p-info-button.ts
Hide P2P in player if disabled
[github/Chocobozzz/PeerTube.git] / client / src / assets / player / videojs-components / p2p-info-button.ts
index db6806fed121d9605c53647b6f5598164187666d..081dee1d3ddfa73c850651a9194771e7fa0bd52b 100644 (file)
@@ -1,10 +1,14 @@
-import { PlayerNetworkInfo } from '../peertube-videojs-typings'
 import videojs from 'video.js'
+import { PeerTubeP2PInfoButtonOptions, PlayerNetworkInfo } from '../peertube-videojs-typings'
 import { bytes } from '../utils'
 
 const Button = videojs.getComponent('Button')
 class P2pInfoButton extends Button {
 
+  constructor (player: videojs.Player, options?: PeerTubeP2PInfoButtonOptions) {
+    super(player, options as any)
+  }
+
   createEl () {
     const div = videojs.dom.createEl('div', {
       className: 'vjs-peertube'
@@ -14,6 +18,10 @@ class P2pInfoButton extends Button {
     }) as HTMLDivElement
     div.appendChild(subDivWebtorrent)
 
+    // Stop here if P2P is not enabled
+    const p2pEnabled = (this.options_ as PeerTubeP2PInfoButtonOptions).p2pEnabled
+    if (!p2pEnabled) return div as HTMLButtonElement
+
     const downloadIcon = videojs.dom.createEl('span', {
       className: 'icon icon-download'
     })
@@ -84,14 +92,23 @@ class P2pInfoButton extends Button {
       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'
+
+      if (data.source === 'p2p-media-loader') {
+        const downloadedFromServer = bytes(httpStats.downloaded).join(' ')
+        const downloadedFromPeers = bytes(p2pStats.downloaded).join(' ')
+
+        subDivWebtorrent.title +=
+          ' * ' + this.player().localize('From servers: ') + downloadedFromServer + '\n' +
+          ' * ' + this.player().localize('From peers: ') + downloadedFromPeers + '\n'
+      }
+      subDivWebtorrent.title += this.player().localize('Total uploaded: ') + totalUploaded.join(' ')
 
-      downloadSpeedNumber.textContent = downloadSpeed[ 0 ]
-      downloadSpeedUnit.textContent = ' ' + downloadSpeed[ 1 ]
+      downloadSpeedNumber.textContent = downloadSpeed[0]
+      downloadSpeedUnit.textContent = ' ' + downloadSpeed[1]
 
-      uploadSpeedNumber.textContent = uploadSpeed[ 0 ]
-      uploadSpeedUnit.textContent = ' ' + uploadSpeed[ 1 ]
+      uploadSpeedNumber.textContent = uploadSpeed[0]
+      uploadSpeedUnit.textContent = ' ' + uploadSpeed[1]
 
       peersNumber.textContent = numPeers.toString()
       peersText.textContent = ' ' + (numPeers > 1 ? this.player().localize('peers') : this.player_.localize('peer'))