From b41d10f51423152fabfb6d9a295d4ba69c654cbd Mon Sep 17 00:00:00 2001 From: Isaac Grynsztein Date: Tue, 18 Feb 2020 17:29:34 -0500 Subject: [PATCH] Added download button to player component --- src/app/player/player.component.css | 25 +++++++++++++++++ src/app/player/player.component.html | 11 ++++++-- src/app/player/player.component.ts | 40 ++++++++++++++++++++++++++++ 3 files changed, 74 insertions(+), 2 deletions(-) diff --git a/src/app/player/player.component.css b/src/app/player/player.component.css index 8caff1e..74acd16 100644 --- a/src/app/player/player.component.css +++ b/src/app/player/player.component.css @@ -22,4 +22,29 @@ max-width: 100%; padding-left: 0px; padding-right: 0px; +} + +.progress-bar { + position: absolute; + left: 0px; + bottom: -1px; +} + +.spinner { + width: 50px; + height: 50px; + bottom: 3px; + left: 3px; + position: absolute; +} + +.save-button { + right: 25px; + position: absolute; + bottom: 25px; +} + +.video-col { + padding-right: 0px; + padding-left: 0.01px; } \ No newline at end of file diff --git a/src/app/player/player.component.html b/src/app/player/player.component.html index 35b9fe4..66f4201 100644 --- a/src/app/player/player.component.html +++ b/src/app/player/player.component.html @@ -1,7 +1,7 @@
-
-
+
+
@@ -14,4 +14,11 @@
+ +
+ +
+
+ +
\ No newline at end of file diff --git a/src/app/player/player.component.ts b/src/app/player/player.component.ts index cad5bfa..e42ba74 100644 --- a/src/app/player/player.component.ts +++ b/src/app/player/player.component.ts @@ -31,6 +31,8 @@ export class PlayerComponent implements OnInit { videoFolderPath = null; innerWidth: number; + downloading = false; + @HostListener('window:resize', ['$event']) onResize(event) { this.innerWidth = window.innerWidth; @@ -47,6 +49,12 @@ export class PlayerComponent implements OnInit { this.baseStreamPath = result['YoutubeDLMaterial']['Downloader']['path-base']; this.audioFolderPath = result['YoutubeDLMaterial']['Downloader']['path-audio']; this.videoFolderPath = result['YoutubeDLMaterial']['Downloader']['path-video']; + const backendUrl = result['YoutubeDLMaterial']['Host']['backendurl']; + + this.postsService.path = backendUrl; + this.postsService.startPath = backendUrl; + this.postsService.startPathSSL = backendUrl; + let fileType = null; if (this.type === 'audio') { fileType = 'audio/mp3'; @@ -117,4 +125,36 @@ export class PlayerComponent implements OnInit { return decodeURI(string); } + downloadContent() { + const fileNames = []; + for (let i = 0; i < this.playlist.length; i++) { + fileNames.push(this.playlist[i].title); + } + + const zipName = fileNames[0].split(' ')[0] + fileNames[1].split(' ')[0]; + this.downloading = true; + this.postsService.downloadFileFromServer(fileNames, this.type, zipName).subscribe(res => { + this.downloading = false; + const blob: Blob = res; + saveAs(blob, zipName + '.zip'); + }, err => { + console.log(err); + this.downloading = false; + }); + } + + downloadFile() { + const ext = (this.type === 'audio') ? '.mp3' : '.mp4'; + const filename = this.playlist[0].title; + this.downloading = true; + this.postsService.downloadFileFromServer(filename, this.type).subscribe(res => { + this.downloading = false; + const blob: Blob = res; + saveAs(blob, filename + ext); + }, err => { + console.log(err); + this.downloading = false; + }); + } + }