+class WebTorrentButton extends Button {
+ createEl () {
+ const div = document.createElement('div')
+ const subDiv = document.createElement('div')
+ div.appendChild(subDiv)
+
+ const downloadIcon = document.createElement('span')
+ downloadIcon.classList.add('icon', 'icon-download')
+ subDiv.appendChild(downloadIcon)
+
+ const downloadSpeedText = document.createElement('span')
+ downloadSpeedText.classList.add('download-speed-text')
+ const downloadSpeedNumber = document.createElement('span')
+ downloadSpeedNumber.classList.add('download-speed-number')
+ const downloadSpeedUnit = document.createElement('span')
+ downloadSpeedText.appendChild(downloadSpeedNumber)
+ downloadSpeedText.appendChild(downloadSpeedUnit)
+ subDiv.appendChild(downloadSpeedText)
+
+ const uploadIcon = document.createElement('span')
+ uploadIcon.classList.add('icon', 'icon-upload')
+ subDiv.appendChild(uploadIcon)
+
+ const uploadSpeedText = document.createElement('span')
+ uploadSpeedText.classList.add('upload-speed-text')
+ const uploadSpeedNumber = document.createElement('span')
+ uploadSpeedNumber.classList.add('upload-speed-number')
+ const uploadSpeedUnit = document.createElement('span')
+ uploadSpeedText.appendChild(uploadSpeedNumber)
+ uploadSpeedText.appendChild(uploadSpeedUnit)
+ subDiv.appendChild(uploadSpeedText)
+
+ const peersText = document.createElement('span')
+ peersText.textContent = ' peers'
+ peersText.classList.add('peers-text')
+ const peersNumber = document.createElement('span')
+ peersNumber.classList.add('peers-number')
+ subDiv.appendChild(peersNumber)
+ subDiv.appendChild(peersText)
+
+ div.className = 'vjs-webtorrent'
+ // Hide the stats before we get the info
+ subDiv.className = 'vjs-webtorrent-hidden'
+
+ this.player_.peertube().on('torrentInfo', (event, data) => {
+ const downloadSpeed = bytes(data.downloadSpeed)
+ const uploadSpeed = bytes(data.uploadSpeed)
+ const numPeers = data.numPeers
+
+ downloadSpeedNumber.textContent = downloadSpeed[0]
+ downloadSpeedUnit.textContent = ' ' + downloadSpeed[1]
+
+ uploadSpeedNumber.textContent = uploadSpeed[0]
+ uploadSpeedUnit.textContent = ' ' + uploadSpeed[1]
+
+ peersNumber.textContent = numPeers
+
+ subDiv.className = 'vjs-webtorrent-displayed'
+ })
+
+ return div
+ }
+
+ dispose () {
+ this.parentNode.removeChild(this)
+ }