From 9979a1b9101c13e9c86ffa94f8e3722ebf70b71c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?F=C3=A9ry=20Mathieu=20=28Mathius=29?= Date: Sat, 19 Feb 2022 17:03:22 +0100 Subject: [PATCH] Add currentTimestamp in shared url by videojs-share --- assets/js/player.js | 44 +++++++++++++++++++++++++++++++++----------- 1 file changed, 33 insertions(+), 11 deletions(-) diff --git a/assets/js/player.js b/assets/js/player.js index 81a27009..42f00ef7 100644 --- a/assets/js/player.js +++ b/assets/js/player.js @@ -35,21 +35,11 @@ if (player_data.aspect_ratio) { var embed_url = new URL(location); embed_url.searchParams.delete('v'); -short_url = location.origin + '/' + video_data.id + embed_url.search; +var short_url = location.origin + '/' + video_data.id + embed_url.search; embed_url = location.origin + '/embed/' + video_data.id + embed_url.search; var save_player_pos_key = "save_player_pos"; -var shareOptions = { - socials: ['fbFeed', 'tw', 'reddit', 'email'], - - url: short_url, - title: player_data.title, - description: player_data.description, - image: player_data.thumbnail, - embedCode: "" -} - videojs.Vhs.xhr.beforeRequest = function(options) { if (options.uri.indexOf('videoplayback') === -1 && options.uri.indexOf('local=true') === -1) { options.uri = options.uri + '?local=true'; @@ -59,6 +49,38 @@ videojs.Vhs.xhr.beforeRequest = function(options) { var player = videojs('player', options); +/** + * Function for add time argument to url + * @param {String} url + * @returns urlWithTimeArg + */ +function addCurrentTimeToURL(url) { + var urlUsed = new URL(url); + urlUsed.searchParams.delete('start'); + var currentTime = Math.ceil(player.currentTime()); + if (currentTime > 0) + urlUsed.searchParams.set('t', currentTime); + else + if (urlUsed.searchParams.has('t')) + urlUsed.searchParams.delete('t'); + return urlUsed; +} + +var shareOptions = { + socials: ['fbFeed', 'tw', 'reddit', 'email'], + + get url() { + return addCurrentTimeToURL(short_url); + }, + title: player_data.title, + description: player_data.description, + image: player_data.thumbnail, + get embedCode() { + return ""; + } +}; + const storage = (() => { try { if (localStorage.length !== -1) return localStorage; } catch (e) { console.info('No storage available: ' + e); }