Skip to content

Commit

Permalink
Possibly address the videos issues at #1074 once and for all...
Browse files Browse the repository at this point in the history
  • Loading branch information
JohnSmith-LT committed May 5, 2022
1 parent f2e1be2 commit ffad6c0
Show file tree
Hide file tree
Showing 5 changed files with 18 additions and 5 deletions.
Expand Up @@ -3609,6 +3609,18 @@ function x_isYouTubeVimeo(url) {
}
}

// Based somewhat on these regexps for YouTube and Vimeo (check there for updates)
// https://stackoverflow.com/questions/19377262/regex-for-youtube-url
// https://stackoverflow.com/questions/5008609/vimeo-video-link-regex
function x_fixYouTubeVimeo(url) {
var path = url.trim();
let result = url.match(/(^|<iframe.+?src=["'])((?:https?:)?\/\/)?((?:www|m)\.)?((?:youtube(-nocookie)?\.com|youtu.be))(\/(?:[\w\-]+\?v=|embed\/|v\/)?)([\w\-]+)(\S+)?.*?(<\/iframe>|$)$/);
if (result) return "www.youtube.com/watch?v=" + result[7];
result = url.match(/(^|<iframe.+?src=["'])(?:http|https)?:?\/?\/?(?:www\.)?(?:player\.)?vimeo\.com\/(?:channels\/(?:\w+\/)?|groups\/(?:[^\/]*)\/videos\/|video\/|)(\d+)(?:|\/\?).*?(<\/iframe>|$)/);
if (result) return "vimeo.com/" + result[2];
return url;
}

// strip html tags and return just text which is appropriate for screen reader
function x_getAriaText(text) {
return $('<p>' + text + '</p>').text();
Expand Down
Expand Up @@ -701,7 +701,7 @@
{ tip: mediaPanelData.attr("tip"),
width: mediaPanelData.attr("width"),
height: mediaPanelData.attr("height"),
media: mediaPanelData.attr("media"),
media: x_fixYouTubeVimeo(mediaPanelData.attr("media")),
autoplay: mediaPanelData.attr("autoplay"),
aspect: mediaPanelData.attr("aspect"),
transcript: mediaPanelData.attr("transcript"),
Expand Down
Expand Up @@ -652,7 +652,7 @@
{ tip: mediaPanelData.attr("tip"),
width: mediaPanelData.attr("width"),
height: mediaPanelData.attr("height"),
media: mediaPanelData.attr("media"),
media: x_fixYouTubeVimeo(mediaPanelData.attr("media")),
autoplay: mediaPanelData.attr("autoplay"),
aspect: mediaPanelData.attr("aspect"),
transcript: mediaPanelData.attr("transcript"),
Expand Down Expand Up @@ -885,6 +885,7 @@
var $myVideo = $('<div class="' + classes + '"/>').appendTo($mediaHolder);

// is it from youtube or vimeo?
mediaData.media = x_fixYouTubeVimeo(mediaData.media);
if (mediaData.media.indexOf("www.youtube.com") != -1 || mediaData.media.indexOf("//youtu") != -1) {
var $youTube = $holder.find(".popcornMedia").addClass("youTube");
$youTube.attr("aspect", mediaData.aspect);
Expand Down Expand Up @@ -922,7 +923,7 @@
.css("margin", "0 auto")
.mediaPlayer({
type :"video",
source :mediaData.media,
source :x_fixYouTubeVimeo(mediaData.media),
width :"100%",
height :"100%",
autoPlay :mediaData.autoplay,
Expand Down
Expand Up @@ -107,7 +107,7 @@
}

var $pageVideo = $("#pageVideo"),
videoSrc = x_currentPageXML.getAttribute("url");
videoSrc = x_fixYouTubeVimeo(x_currentPageXML.getAttribute("url"));

if (videoSrc.substr(0,7) == "<iframe") {
$("#pageContents .panel").removeClass("panel inline");
Expand Down
Expand Up @@ -152,7 +152,7 @@

var videoSrc = x_currentPageXML.getAttribute("url");
$pageVideo.data({
"src" :videoSrc,
"src" :x_fixYouTubeVimeo(videoSrc),
"dimensions" :videoDimensions
});

Expand Down

0 comments on commit ffad6c0

Please sign in to comment.