mirror of
https://github.com/Tzahi12345/YoutubeDL-Material.git
synced 2026-03-30 08:30:59 +03:00
Removed tomp3 and tomp4 routes, replaced with /downloadFile Simplified category->playlist conversion Simplified playlist creation Simplified file deletion Playlist duration calculation is now done on the backend (categories uses this now too) removeIDFromArchive moved from subscriptions->utils Added plumbing to support type agnostic playlists
97 lines
2.9 KiB
TypeScript
97 lines
2.9 KiB
TypeScript
import { Component, OnInit, Inject } from '@angular/core';
|
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
import { Router } from '@angular/router';
|
|
import { MatSnackBar } from '@angular/material/snack-bar';
|
|
import { PostsService } from 'app/posts.services';
|
|
|
|
@Component({
|
|
selector: 'app-share-media-dialog',
|
|
templateUrl: './share-media-dialog.component.html',
|
|
styleUrls: ['./share-media-dialog.component.scss']
|
|
})
|
|
export class ShareMediaDialogComponent implements OnInit {
|
|
|
|
uid = null;
|
|
uuid = null;
|
|
share_url = null;
|
|
default_share_url = null;
|
|
sharing_enabled = null;
|
|
is_playlist = null;
|
|
current_timestamp = null
|
|
timestamp_enabled = false;
|
|
|
|
constructor(@Inject(MAT_DIALOG_DATA) public data: any, public router: Router, private snackBar: MatSnackBar,
|
|
private postsService: PostsService) { }
|
|
|
|
ngOnInit(): void {
|
|
if (this.data) {
|
|
this.uid = this.data.uid;
|
|
this.uuid = this.data.uuid;
|
|
this.sharing_enabled = this.data.sharing_enabled;
|
|
this.is_playlist = this.data.is_playlist;
|
|
this.current_timestamp = (this.data.current_timestamp / 1000).toFixed(2);
|
|
|
|
const arg = (this.is_playlist ? ';playlist_id=' : ';uid=');
|
|
this.default_share_url = window.location.href.split(';')[0] + arg + this.uid;
|
|
if (this.uuid) {
|
|
this.default_share_url += ';uuid=' + this.uuid;
|
|
}
|
|
this.share_url = this.default_share_url;
|
|
}
|
|
}
|
|
|
|
timestampInputChanged(change) {
|
|
if (!this.timestamp_enabled) {
|
|
this.share_url = this.default_share_url;
|
|
return;
|
|
}
|
|
const new_val = change.target.value;
|
|
if (new_val > 0) {
|
|
this.share_url = this.default_share_url + ';timestamp=' + new_val;
|
|
} else {
|
|
this.share_url = this.default_share_url;
|
|
}
|
|
}
|
|
|
|
useTimestampChanged() {
|
|
this.timestampInputChanged({target: {value: this.current_timestamp}})
|
|
}
|
|
|
|
copiedToClipboard() {
|
|
this.openSnackBar('Copied to clipboard!');
|
|
}
|
|
|
|
sharingChanged(event) {
|
|
if (event.checked) {
|
|
this.postsService.enableSharing(this.uid, this.is_playlist).subscribe(res => {
|
|
if (res['success']) {
|
|
this.openSnackBar('Sharing enabled.');
|
|
this.sharing_enabled = true;
|
|
} else {
|
|
this.openSnackBar('Failed to enable sharing.');
|
|
}
|
|
}, err => {
|
|
this.openSnackBar('Failed to enable sharing - server error.');
|
|
});
|
|
} else {
|
|
this.postsService.disableSharing(this.uid, this.is_playlist).subscribe(res => {
|
|
if (res['success']) {
|
|
this.openSnackBar('Sharing disabled.');
|
|
this.sharing_enabled = false;
|
|
} else {
|
|
this.openSnackBar('Failed to disable sharing.');
|
|
}
|
|
}, err => {
|
|
this.openSnackBar('Failed to disable sharing - server error.');
|
|
});
|
|
}
|
|
}
|
|
|
|
public openSnackBar(message: string, action: string = '') {
|
|
this.snackBar.open(message, action, {
|
|
duration: 2000,
|
|
});
|
|
}
|
|
|
|
}
|