diff --git a/backend/app.js b/backend/app.js index 2a4ac56..d41c782 100644 --- a/backend/app.js +++ b/backend/app.js @@ -192,7 +192,7 @@ function watchSubscriptions() { let current_delay = 0; for (let i = 0; i < subscriptions.length; i++) { let sub = subscriptions[i]; - console.log('watching ' + sub.name + ' with delay interval of ' + delay_interval); + if (debugMode) console.log('watching ' + sub.name + ' with delay interval of ' + delay_interval); setTimeout(() => { subscriptions_api.getVideosForSub(sub); }, current_delay); @@ -1145,6 +1145,20 @@ app.post('/api/deleteFile', async (req, res) => { res.send() }); +app.post('/api/downloadArchive', async (req, res) => { + let sub = req.body.sub; + let archive_dir = sub.archive; + + let full_archive_path = path.join(__dirname, archive_dir, 'archive.txt'); + + if (fs.existsSync(full_archive_path)) { + res.sendFile(full_archive_path); + } else { + res.sendStatus(404); + } + +}); + app.get('/api/video/:id', function(req , res){ var head; let optionalParams = url_api.parse(req.url,true).query; diff --git a/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html b/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html index fb967e2..eec94eb 100644 --- a/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html +++ b/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.html @@ -21,5 +21,7 @@ + + \ No newline at end of file diff --git a/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.scss b/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.scss index 9feea64..ff20085 100644 --- a/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.scss +++ b/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.scss @@ -4,4 +4,6 @@ .info-item-value { font-size: 13px; -} \ No newline at end of file +} + +.spacer {flex: 1 1 auto;} diff --git a/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.ts b/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.ts index ee004d3..2a90c6d 100644 --- a/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.ts +++ b/src/app/dialogs/subscription-info-dialog/subscription-info-dialog.component.ts @@ -29,4 +29,11 @@ export class SubscriptionInfoDialogComponent implements OnInit { }); } + downloadArchive() { + this.postsService.downloadArchive(this.sub).subscribe(res => { + const blob: Blob = res; + saveAs(blob, 'archive.txt'); + }); + } + } diff --git a/src/app/posts.services.ts b/src/app/posts.services.ts index e769916..4ecff3b 100644 --- a/src/app/posts.services.ts +++ b/src/app/posts.services.ts @@ -120,6 +120,10 @@ export class PostsService { {responseType: 'blob'}); } + downloadArchive(sub) { + return this.http.post(this.path + 'downloadArchive', {sub: sub}, {responseType: 'blob'}); + } + getFileInfo(fileNames, type, urlMode) { return this.http.post(this.path + 'getVideoInfos', {fileNames: fileNames, type: type, urlMode: urlMode}); } diff --git a/src/app/subscription/subscription-file-card/subscription-file-card.component.html b/src/app/subscription/subscription-file-card/subscription-file-card.component.html index 246ea91..413f4af 100644 --- a/src/app/subscription/subscription-file-card/subscription-file-card.component.html +++ b/src/app/subscription/subscription-file-card/subscription-file-card.component.html @@ -5,7 +5,7 @@ - +
diff --git a/src/app/subscription/subscription-file-card/subscription-file-card.component.ts b/src/app/subscription/subscription-file-card/subscription-file-card.component.ts index 7a00bc5..732413d 100644 --- a/src/app/subscription/subscription-file-card/subscription-file-card.component.ts +++ b/src/app/subscription/subscription-file-card/subscription-file-card.component.ts @@ -20,6 +20,7 @@ export class SubscriptionFileCardComponent implements OnInit { @Input() file; @Input() sub; + @Input() use_youtubedl_archive = false; @Output() goToFileEmit = new EventEmitter(); @Output() reloadSubscription = new EventEmitter(); diff --git a/src/app/subscription/subscription/subscription.component.html b/src/app/subscription/subscription/subscription.component.html index 8b6c635..2d7e25d 100644 --- a/src/app/subscription/subscription/subscription.component.html +++ b/src/app/subscription/subscription/subscription.component.html @@ -13,7 +13,7 @@
- +
diff --git a/src/app/subscription/subscription/subscription.component.ts b/src/app/subscription/subscription/subscription.component.ts index 50c2b35..745eeea 100644 --- a/src/app/subscription/subscription/subscription.component.ts +++ b/src/app/subscription/subscription/subscription.component.ts @@ -12,6 +12,7 @@ export class SubscriptionComponent implements OnInit { id = null; subscription = null; files: any[] = null; + use_youtubedl_archive = false; constructor(private postsService: PostsService, private route: ActivatedRoute, private router: Router) { } @@ -20,6 +21,7 @@ export class SubscriptionComponent implements OnInit { this.id = this.route.snapshot.paramMap.get('id'); this.getSubscription(); + this.getConfig(); } } @@ -30,11 +32,17 @@ export class SubscriptionComponent implements OnInit { getSubscription() { this.postsService.getSubscription(this.id).subscribe(res => { this.subscription = res['subscription']; - console.log(res['files']); this.files = res['files']; }); } + getConfig() { + this.postsService.loadNavItems().subscribe(res => { + const result = !this.postsService.debugMode ? res['config_file'] : res; + this.use_youtubedl_archive = result['YoutubeDLMaterial']['Subscriptions']['subscriptions_use_youtubedl_archive']; + }); + } + goToFile(name) { localStorage.setItem('player_navigator', this.router.url); this.router.navigate(['/player', {fileNames: name, type: 'subscription', subscriptionName: this.subscription.name,