Skip to content

Commit a85fe80

Browse files
authored
Merge pull request #251 from BuildFire/fix/dropbox-video
Fix/dropbox video - PLUG-5124
2 parents bdba5f5 + 34a7d6c commit a85fe80

4 files changed

Lines changed: 47 additions & 76 deletions

File tree

widget/controllers/widget.media.controller.js

Lines changed: 29 additions & 70 deletions
Original file line numberDiff line numberDiff line change
@@ -228,11 +228,7 @@
228228
Buildfire.services.media.audioPlayer.pause();
229229
}
230230

231-
if ($rootScope.autoPlay && WidgetMedia.item.data.videoUrl && !$rootScope.deepLinkNavigate) {
232-
WidgetMedia.toggleShowVideo();
233-
} else if ($rootScope.skipMediaPage && WidgetMedia.item.data.videoUrl && !$rootScope.deepLinkNavigate) {
234-
WidgetMedia.toggleShowVideo();
235-
}
231+
WidgetMedia.toggleShowVideo(($rootScope.skipMediaPage || $rootScope.autoPlay) && WidgetMedia.item.data.videoUrl && !$rootScope.deepLinkNavigate);
236232
};
237233

238234
WidgetMedia.fixIOSAutoPlay = function () { //Ticket https://buildfire.atlassian.net/browse/CS-598
@@ -339,31 +335,36 @@
339335
tracks: undefined,
340336
theme: {
341337
url: "./assets/css/videogular.css"
342-
}
338+
},
339+
videoType: null
343340
};
344341

345342
WidgetMedia.changeVideoSrc = function () {
346343
if (WidgetMedia.item.data.videoUrl) {
347-
var myType;
348-
var videoUrlToSend = $scope.downloadedVideoUrl ? $scope.downloadedVideoUrl : WidgetMedia.item.data.videoUrl;
344+
let videoType;
345+
let videoUrlToSend = $scope.downloadedVideoUrl ? $scope.downloadedVideoUrl : WidgetMedia.item.data.videoUrl;
349346
if (videoUrlToSend.includes("www.dropbox") || videoUrlToSend.includes("dl.dropbox.com")) {
350347
videoUrlToSend = videoUrlToSend.replace("www.dropbox", "dl.dropboxusercontent");
351348
videoUrlToSend = videoUrlToSend.replace("dl.dropbox.com", "dl.dropboxusercontent.com");
352-
myType = videoUrlToSend.split('.').pop();
353349
} else if (videoUrlToSend.includes("www.youtube") && videoUrlToSend.includes("/channel") && videoUrlToSend.includes("/live")) {
354-
var liveId = videoUrlToSend.split("channel/")[1].split("/live")[0];
350+
let liveId = videoUrlToSend.split("channel/")[1].split("/live")[0];
355351
videoUrlToSend = "https://www.youtube.com/embed/live_stream?channel=" + liveId;
356-
myType = videoUrlToSend.split('.').pop();
357-
} else {
358-
myType = videoUrlToSend.split('.').pop();
359352
}
360-
myType = myType.split("?")[0];
361353

362354
$scope.videoPlayed = false;
363355

356+
if (videoUrlToSend.includes("youtube.com") || videoUrlToSend.includes("youtu.be")) {
357+
videoType = "youtube";
358+
} else if (videoUrlToSend.includes("vimeo.com")) {
359+
videoType = "vimeo";
360+
} else {
361+
videoType = "video/mp4";
362+
}
363+
364+
WidgetMedia.videoPlayerConfig.videoType = videoType;
364365
WidgetMedia.videoPlayerConfig.sources = [{
365366
src: $rootScope.online ? $sce.trustAsUrl(videoUrlToSend) : videoUrlToSend,
366-
type: 'video/' + myType //"video/mp4"
367+
type: videoType
367368
}];
368369
}
369370
};
@@ -545,7 +546,7 @@
545546
} else {
546547
clearInterval(retry);
547548
WidgetMedia.API.seekTime($rootScope.seekTime);
548-
WidgetMedia.toggleShowVideo();
549+
WidgetMedia.toggleShowVideo(true);
549550
$rootScope.deepLinkNavigate = null;
550551
$rootScope.seekTime = null;
551552
setTimeout(function () {
@@ -597,24 +598,11 @@
597598
Location.go('#/nowplaying/' + mediaId, true);
598599
}
599600

600-
WidgetMedia.ApplayUpdates = function () {
601-
if (($rootScope.autoPlay || $rootScope.skipMediaPage) && WidgetMedia.item.data.videoUrl) {
602-
WidgetMedia.toggleShowVideo(true);
603-
} else {
604-
WidgetMedia.showVideo = false;
605-
if(WidgetMedia.API) WidgetMedia.API.pause();
606-
607-
if (($rootScope.skipMediaPage || $rootScope.autoPlay) && !WidgetMedia.item.data.videoUrl && WidgetMedia.item.data.audioUrl) {
608-
WidgetMedia.playAudio();
609-
}
610-
}
611-
};
612-
613601
WidgetMedia.goToNextItem = () => {
614602
$rootScope.playNextItem();
615603
}
616604

617-
WidgetMedia.toggleShowVideo = function (forceShow) {
605+
WidgetMedia.toggleShowVideo = function (showVideo) {
618606
if ((!$rootScope.online && !$rootScope.allowOfflineDownload) || ((!$rootScope.online && $rootScope.allowOfflineDownload && !WidgetMedia.item.data.hasDownloadedVideo))) {
619607
buildfire.dialog.show(
620608
{
@@ -636,7 +624,7 @@
636624
);
637625
return;
638626
}
639-
WidgetMedia.showVideo = forceShow ? true : !WidgetMedia.showVideo;
627+
WidgetMedia.showVideo = showVideo;
640628
if (!$scope.$$phase) {
641629
$scope.$apply();
642630
$scope.$digest();
@@ -709,42 +697,6 @@
709697
});
710698
};
711699

712-
WidgetMedia.getVideoDownloadURL = function () {
713-
if (WidgetMedia.item.data.videoUrl) {
714-
var myType;
715-
var source;
716-
var videoUrlToSend = WidgetMedia.item.data.videoUrl;
717-
if (videoUrlToSend.includes("www.dropbox") || videoUrlToSend.includes("dl.dropbox.com")) {
718-
videoUrlToSend = videoUrlToSend.replace("www.dropbox", "dl.dropboxusercontent");
719-
videoUrlToSend = videoUrlToSend.replace("dl.dropbox.com", "dl.dropboxusercontent.com");
720-
myType = videoUrlToSend.split('.').pop();
721-
source = "dropbox";
722-
} else {
723-
source = videoUrlToSend.includes("youtube.com") ? "youtube" : videoUrlToSend.includes("vimeo") ? "vimeo" : "other";
724-
myType = videoUrlToSend.split('.').pop();
725-
}
726-
myType = myType.split("?")[0];
727-
return {
728-
uri: videoUrlToSend,
729-
type: myType,
730-
source: source
731-
}
732-
}
733-
}
734-
735-
WidgetMedia.getAudioDownloadURL = function () {
736-
if (WidgetMedia.item.data.audioUrl) {
737-
var myType;
738-
var audioUrlToSend = WidgetMedia.item.data.audioUrl;
739-
myType = audioUrlToSend.split('.').pop();
740-
myType = myType.split("?")[0];
741-
return {
742-
uri: audioUrlToSend,
743-
type: myType,
744-
}
745-
}
746-
}
747-
748700
WidgetMedia.isDownloading = function (item) {
749701
return $rootScope.currentlyDownloading.indexOf(item.id) > -1;
750702
};
@@ -792,9 +744,16 @@
792744
}
793745

794746
if ($rootScope.autoPlay || $rootScope.skipMediaPage) {
795-
setTimeout(() => {
796-
WidgetMedia.ApplayUpdates();
797-
}, 50);
747+
if (WidgetMedia.item.data.videoUrl) {
748+
WidgetMedia.toggleShowVideo(true);
749+
} else {
750+
WidgetMedia.toggleShowVideo(false);
751+
if(WidgetMedia.API) WidgetMedia.API.pause();
752+
753+
if (!WidgetMedia.item.data.videoUrl && WidgetMedia.item.data.audioUrl) {
754+
WidgetMedia.playAudio();
755+
}
756+
}
798757
}
799758
if (!$scope.$$phase) {
800759
$scope.$apply();

widget/templates/layouts/item-1.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,7 @@ <h5 class="margin-top-zero word-break">{{WidgetMedia.item.data.title}} <div data
3232
<div class="padded padding-top-zero" ng-if="!WidgetMedia.fullScreen">
3333
<div class="item-actions">
3434
<div class="link-list">
35-
<a class="media-action video" ng-click="WidgetMedia.toggleShowVideo();"
35+
<a class="media-action video" ng-click="WidgetMedia.toggleShowVideo(!WidgetMedia.showVideo);"
3636
ng-if="WidgetMedia.item.data.videoUrl && !skipMediaPage">
3737
<i ng-class="WidgetMedia.showVideo ? 'glyphicon glyphicon-info-sign':'glyphicon glyphicon-film'" class="btn btn-success"></i>
3838
</a>

widget/templates/layouts/item-2.html

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ <h5 class="margin-bottom-zero whiteTheme">
4141
<div class="padded" ng-if="!WidgetMedia.fullScreen">
4242
<div class="item-actions">
4343
<div class="link-list">
44-
<a class="media-action video" ng-click="WidgetMedia.toggleShowVideo();"
44+
<a class="media-action video" ng-click="WidgetMedia.toggleShowVideo(!WidgetMedia.showVideo);"
4545
ng-if="WidgetMedia.item.data.videoUrl && !skipMediaPage">
4646
<i ng-class="WidgetMedia.showVideo ? 'glyphicon glyphicon-info-sign':'glyphicon glyphicon-film'" class="btn btn-success"></i>
4747
</a>

widget/templates/layouts/video-player.html

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -10,15 +10,27 @@
1010
vg-complete="playNextItem()"
1111
vg-auto-play="autoPlay"
1212
>
13-
<vg-media
14-
vg-vimeo
13+
<vg-media
1514
vg-youtube
1615
vg-native-controls="false"
1716
vg-src="WidgetMedia.videoPlayerConfig.sources"
1817
vg-tracks="WidgetMedia.videoPlayerConfig.tracks"
1918
ng-show="!WidgetMedia.loadingVideo"
20-
>
21-
</vg-media>
19+
ng-if="WidgetMedia.videoPlayerConfig.videoType === 'youtube'"></vg-media>
20+
<vg-media
21+
vg-vimeo
22+
vg-native-controls="false"
23+
vg-src="WidgetMedia.videoPlayerConfig.sources"
24+
vg-tracks="WidgetMedia.videoPlayerConfig.tracks"
25+
ng-show="!WidgetMedia.loadingVideo"
26+
ng-if="WidgetMedia.videoPlayerConfig.videoType === 'vimeo'"></vg-media>
27+
<vg-media
28+
vg-native-controls="false"
29+
vg-src="WidgetMedia.videoPlayerConfig.sources"
30+
vg-tracks="WidgetMedia.videoPlayerConfig.tracks"
31+
ng-show="!WidgetMedia.loadingVideo"
32+
ng-if="WidgetMedia.videoPlayerConfig.videoType !== 'vimeo' && WidgetMedia.videoPlayerConfig.videoType !== 'youtube'"></vg-media>
33+
2234

2335
<vg-controls ng-if="WidgetMedia.item.data.videoUrl" vg-autohide="false" ng-show="!WidgetMedia.loadingVideo" id="vg-controls">
2436
<div class="prev-item-btn" ng-click="playPrevItem()">

0 commit comments

Comments
 (0)