mirror of
https://github.com/Tzahi12345/YoutubeDL-Material.git
synced 2026-04-10 15:41:28 +03:00
Added ability to clear all downloads in a session
This commit is contained in:
@@ -14,6 +14,9 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
<div>
|
||||||
|
<button style="top: 15px;" (click)="clearDownloads(session_downloads.key)" mat-stroked-button color="warn">Clear all downloads</button>
|
||||||
|
</div>
|
||||||
</mat-card>
|
</mat-card>
|
||||||
</ng-container>
|
</ng-container>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ export class DownloadsComponent implements OnInit, OnDestroy {
|
|||||||
valid_sessions_length = 0;
|
valid_sessions_length = 0;
|
||||||
|
|
||||||
sort_downloads = (a, b) => {
|
sort_downloads = (a, b) => {
|
||||||
const result = a.value.timestamp_start < b.value.timestamp_start;
|
const result = b.value.timestamp_start - a.value.timestamp_start;
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -81,7 +81,7 @@ export class DownloadsComponent implements OnInit, OnDestroy {
|
|||||||
clearDownload(session_id, download_uid) {
|
clearDownload(session_id, download_uid) {
|
||||||
this.postsService.clearDownloads(false, session_id, download_uid).subscribe(res => {
|
this.postsService.clearDownloads(false, session_id, download_uid).subscribe(res => {
|
||||||
if (res['success']) {
|
if (res['success']) {
|
||||||
this.downloads = res['downloads'];
|
// this.downloads = res['downloads'];
|
||||||
} else {
|
} else {
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
@@ -107,11 +107,32 @@ export class DownloadsComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
assignNewValues(new_downloads_by_session) {
|
assignNewValues(new_downloads_by_session) {
|
||||||
const session_keys = Object.keys(new_downloads_by_session);
|
const session_keys = Object.keys(new_downloads_by_session);
|
||||||
|
|
||||||
|
// remove missing session IDs
|
||||||
|
const current_session_ids = Object.keys(this.downloads);
|
||||||
|
const missing_session_ids = current_session_ids.filter(session => session_keys.indexOf(session) === -1)
|
||||||
|
|
||||||
|
for (const missing_session_id of missing_session_ids) {
|
||||||
|
delete this.downloads[missing_session_id];
|
||||||
|
}
|
||||||
|
|
||||||
|
// loop through sessions
|
||||||
for (let i = 0; i < session_keys.length; i++) {
|
for (let i = 0; i < session_keys.length; i++) {
|
||||||
const session_id = session_keys[i];
|
const session_id = session_keys[i];
|
||||||
const session_downloads_by_id = new_downloads_by_session[session_id];
|
const session_downloads_by_id = new_downloads_by_session[session_id];
|
||||||
const session_download_ids = Object.keys(session_downloads_by_id);
|
const session_download_ids = Object.keys(session_downloads_by_id);
|
||||||
|
|
||||||
|
if (this.downloads[session_id]) {
|
||||||
|
// remove missing download IDs
|
||||||
|
const current_download_ids = Object.keys(this.downloads[session_id]);
|
||||||
|
const missing_download_ids = current_download_ids.filter(download => session_download_ids.indexOf(download) === -1)
|
||||||
|
|
||||||
|
for (const missing_download_id of missing_download_ids) {
|
||||||
|
console.log('removing missing download id');
|
||||||
|
delete this.downloads[session_id][missing_download_id];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (!this.downloads[session_id]) {
|
if (!this.downloads[session_id]) {
|
||||||
this.downloads[session_id] = session_downloads_by_id;
|
this.downloads[session_id] = session_downloads_by_id;
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user