]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/standalone/videos/embed.ts
Add messages about privacy concerns (P2P)
[github/Chocobozzz/PeerTube.git] / client / src / standalone / videos / embed.ts
index e27eadc8bde38cbbf5995830115823e56f7bdab1..bb6baf7f0a1ac100ceffdf7d6d9f179e5813cad7 100644 (file)
@@ -1,56 +1,52 @@
 import './embed.scss'
 
 import * as videojs from 'video.js'
+import 'videojs-hotkeys'
 import '../../assets/player/peertube-videojs-plugin'
 import 'videojs-dock/dist/videojs-dock.es.js'
 import { VideoDetails } from '../../../../shared'
 
-function loadVideoInfo (videoId: string, callback: (err: Error, res?: VideoDetails) => void) {
-  const xhttp = new XMLHttpRequest()
-  xhttp.onreadystatechange = function () {
-    if (this.readyState === 4 && this.status === 200) {
-      const json = JSON.parse(this.responseText)
-      return callback(null, json)
-    }
-  }
-
-  xhttp.onerror = err => callback(err.error)
+function getVideoUrl (id: string) {
+  return window.location.origin + '/api/v1/videos/' + id
+}
 
-  const url = window.location.origin + '/api/v1/videos/' + videoId
-  xhttp.open('GET', url, true)
-  xhttp.send()
+async function loadVideoInfo (videoId: string): Promise<VideoDetails> {
+  const response = await fetch(getVideoUrl(videoId))
+  return response.json()
 }
 
 const urlParts = window.location.href.split('/')
 const videoId = urlParts[urlParts.length - 1]
 
-loadVideoInfo(videoId, (err, videoInfo) => {
-  if (err) {
-    console.error(err)
-    return
-  }
-
-  const videoElement = document.getElementById('video-container') as HTMLVideoElement
-  const previewUrl = window.location.origin + videoInfo.previewPath
-  videoElement.poster = previewUrl
-
-  const videojsOptions = {
-    controls: true,
-    autoplay: false,
-    plugins: {
-      peertube: {
-        videoFiles: videoInfo.files,
-        playerElement: videoElement,
-        peerTubeLink: true
-      },
-      hotkeys: {}
+loadVideoInfo(videoId)
+  .then(videoInfo => {
+    const videoElement = document.getElementById('video-container') as HTMLVideoElement
+    const previewUrl = window.location.origin + videoInfo.previewPath
+    videoElement.poster = previewUrl
+
+    const videojsOptions = {
+      controls: true,
+      autoplay: false,
+      plugins: {
+        peertube: {
+          videoFiles: videoInfo.files,
+          playerElement: videoElement,
+          peerTubeLink: true,
+          videoViewUrl: getVideoUrl(videoId) + '/views',
+          videoDuration: videoInfo.duration
+        },
+        hotkeys: {
+          enableVolumeScroll: false
+        }
+      }
     }
-  }
-  videojs('video-container', videojsOptions, function () {
-    const player = this
+    videojs('video-container', videojsOptions, function () {
+      const player = this
 
-    player.dock({
-      title: videoInfo.name
+      player.dock({
+        title: videoInfo.name,
+        description: 'Use P2P, other may know you are watching that video.'
+      })
     })
   })
-})
+  .catch(err => console.error(err))