style: auto-fix linting issues
This commit is contained in:
parent
0eb83f3a8d
commit
46240b85e2
2 changed files with 57 additions and 18 deletions
|
|
@ -1216,7 +1216,9 @@
|
||||||
<div class="setting-item">
|
<div class="setting-item">
|
||||||
<div class="info">
|
<div class="info">
|
||||||
<span class="label">Zipped Bulk Downloads</span>
|
<span class="label">Zipped Bulk Downloads</span>
|
||||||
<span class="description">Download multiple tracks as a single ZIP file (requires browser support)</span>
|
<span class="description"
|
||||||
|
>Download multiple tracks as a single ZIP file (requires browser support)</span
|
||||||
|
>
|
||||||
</div>
|
</div>
|
||||||
<label class="toggle-switch">
|
<label class="toggle-switch">
|
||||||
<input type="checkbox" id="zipped-bulk-downloads-toggle" checked />
|
<input type="checkbox" id="zipped-bulk-downloads-toggle" checked />
|
||||||
|
|
|
||||||
|
|
@ -291,7 +291,16 @@ async function bulkDownloadSequentially(tracks, api, quality, lyricsManager, not
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
async function bulkDownloadToZipStream(tracks, folderName, api, quality, lyricsManager, notification, fileHandle, coverBlob = null) {
|
async function bulkDownloadToZipStream(
|
||||||
|
tracks,
|
||||||
|
folderName,
|
||||||
|
api,
|
||||||
|
quality,
|
||||||
|
lyricsManager,
|
||||||
|
notification,
|
||||||
|
fileHandle,
|
||||||
|
coverBlob = null
|
||||||
|
) {
|
||||||
const { abortController } = bulkDownloadTasks.get(notification);
|
const { abortController } = bulkDownloadTasks.get(notification);
|
||||||
const signal = abortController.signal;
|
const signal = abortController.signal;
|
||||||
const { downloadZip } = await loadClientZip();
|
const { downloadZip } = await loadClientZip();
|
||||||
|
|
@ -322,10 +331,16 @@ async function bulkDownloadToZipStream(tracks, folderName, api, quality, lyricsM
|
||||||
const lrcContent = lyricsManager.generateLRCContent(lyricsData, track);
|
const lrcContent = lyricsManager.generateLRCContent(lyricsData, track);
|
||||||
if (lrcContent) {
|
if (lrcContent) {
|
||||||
const lrcFilename = filename.replace(/\.[^.]+$/, '.lrc');
|
const lrcFilename = filename.replace(/\.[^.]+$/, '.lrc');
|
||||||
yield { name: `${folderName}/${lrcFilename}`, lastModified: new Date(), input: lrcContent };
|
yield {
|
||||||
|
name: `${folderName}/${lrcFilename}`,
|
||||||
|
lastModified: new Date(),
|
||||||
|
input: lrcContent,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch { /* ignore */ }
|
} catch {
|
||||||
|
/* ignore */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err.name === 'AbortError') throw err;
|
if (err.name === 'AbortError') throw err;
|
||||||
|
|
@ -345,17 +360,26 @@ async function bulkDownloadToZipStream(tracks, folderName, api, quality, lyricsM
|
||||||
|
|
||||||
async function startBulkDownload(tracks, defaultName, api, quality, lyricsManager, type, name, coverBlob = null) {
|
async function startBulkDownload(tracks, defaultName, api, quality, lyricsManager, type, name, coverBlob = null) {
|
||||||
const notification = createBulkDownloadNotification(type, name, tracks.length);
|
const notification = createBulkDownloadNotification(type, name, tracks.length);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const useZip = window.showSaveFilePicker && !bulkDownloadSettings.shouldForceIndividual();
|
const useZip = window.showSaveFilePicker && !bulkDownloadSettings.shouldForceIndividual();
|
||||||
|
|
||||||
if (useZip) {
|
if (useZip) {
|
||||||
try {
|
try {
|
||||||
const fileHandle = await window.showSaveFilePicker({
|
const fileHandle = await window.showSaveFilePicker({
|
||||||
suggestedName: `${defaultName}.zip`,
|
suggestedName: `${defaultName}.zip`,
|
||||||
types: [{ description: 'ZIP Archive', accept: { 'application/zip': ['.zip'] } }],
|
types: [{ description: 'ZIP Archive', accept: { 'application/zip': ['.zip'] } }],
|
||||||
});
|
});
|
||||||
await bulkDownloadToZipStream(tracks, defaultName, api, quality, lyricsManager, notification, fileHandle, coverBlob);
|
await bulkDownloadToZipStream(
|
||||||
|
tracks,
|
||||||
|
defaultName,
|
||||||
|
api,
|
||||||
|
quality,
|
||||||
|
lyricsManager,
|
||||||
|
notification,
|
||||||
|
fileHandle,
|
||||||
|
coverBlob
|
||||||
|
);
|
||||||
completeBulkDownload(notification, true);
|
completeBulkDownload(notification, true);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err.name === 'AbortError') {
|
if (err.name === 'AbortError') {
|
||||||
|
|
@ -381,7 +405,8 @@ export async function downloadTracks(tracks, api, quality, lyricsManager = null)
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function downloadAlbumAsZip(album, tracks, api, quality, lyricsManager = null) {
|
export async function downloadAlbumAsZip(album, tracks, api, quality, lyricsManager = null) {
|
||||||
const releaseDateStr = album.releaseDate || (tracks[0]?.streamStartDate ? tracks[0].streamStartDate.split('T')[0] : '');
|
const releaseDateStr =
|
||||||
|
album.releaseDate || (tracks[0]?.streamStartDate ? tracks[0].streamStartDate.split('T')[0] : '');
|
||||||
const releaseDate = releaseDateStr ? new Date(releaseDateStr) : null;
|
const releaseDate = releaseDateStr ? new Date(releaseDateStr) : null;
|
||||||
const year = releaseDate && !isNaN(releaseDate.getTime()) ? releaseDate.getFullYear() : '';
|
const year = releaseDate && !isNaN(releaseDate.getTime()) ? releaseDate.getFullYear() : '';
|
||||||
|
|
||||||
|
|
@ -433,18 +458,24 @@ export async function downloadDiscography(artist, selectedReleases, api, quality
|
||||||
try {
|
try {
|
||||||
const { album: fullAlbum, tracks } = await api.getAlbum(album.id);
|
const { album: fullAlbum, tracks } = await api.getAlbum(album.id);
|
||||||
const coverBlob = await getCoverBlob(api, fullAlbum.cover || album.cover);
|
const coverBlob = await getCoverBlob(api, fullAlbum.cover || album.cover);
|
||||||
const releaseDateStr = fullAlbum.releaseDate || (tracks[0]?.streamStartDate ? tracks[0].streamStartDate.split('T')[0] : '');
|
const releaseDateStr =
|
||||||
|
fullAlbum.releaseDate ||
|
||||||
|
(tracks[0]?.streamStartDate ? tracks[0].streamStartDate.split('T')[0] : '');
|
||||||
const releaseDate = releaseDateStr ? new Date(releaseDateStr) : null;
|
const releaseDate = releaseDateStr ? new Date(releaseDateStr) : null;
|
||||||
const year = releaseDate && !isNaN(releaseDate.getTime()) ? releaseDate.getFullYear() : '';
|
const year = releaseDate && !isNaN(releaseDate.getTime()) ? releaseDate.getFullYear() : '';
|
||||||
|
|
||||||
const albumFolder = formatTemplate(localStorage.getItem('zip-folder-template') || '{albumTitle} - {albumArtist}', {
|
const albumFolder = formatTemplate(
|
||||||
albumTitle: fullAlbum.title,
|
localStorage.getItem('zip-folder-template') || '{albumTitle} - {albumArtist}',
|
||||||
albumArtist: fullAlbum.artist?.name,
|
{
|
||||||
year: year,
|
albumTitle: fullAlbum.title,
|
||||||
});
|
albumArtist: fullAlbum.artist?.name,
|
||||||
|
year: year,
|
||||||
|
}
|
||||||
|
);
|
||||||
|
|
||||||
const fullFolderPath = `${rootFolder}/${albumFolder}`;
|
const fullFolderPath = `${rootFolder}/${albumFolder}`;
|
||||||
if (coverBlob) yield { name: `${fullFolderPath}/cover.jpg`, lastModified: new Date(), input: coverBlob };
|
if (coverBlob)
|
||||||
|
yield { name: `${fullFolderPath}/cover.jpg`, lastModified: new Date(), input: coverBlob };
|
||||||
|
|
||||||
for (const track of tracks) {
|
for (const track of tracks) {
|
||||||
if (signal.aborted) break;
|
if (signal.aborted) break;
|
||||||
|
|
@ -460,10 +491,16 @@ export async function downloadDiscography(artist, selectedReleases, api, quality
|
||||||
const lrcContent = lyricsManager.generateLRCContent(lyricsData, track);
|
const lrcContent = lyricsManager.generateLRCContent(lyricsData, track);
|
||||||
if (lrcContent) {
|
if (lrcContent) {
|
||||||
const lrcFilename = filename.replace(/\.[^.]+$/, '.lrc');
|
const lrcFilename = filename.replace(/\.[^.]+$/, '.lrc');
|
||||||
yield { name: `${fullFolderPath}/${lrcFilename}`, lastModified: new Date(), input: lrcContent };
|
yield {
|
||||||
|
name: `${fullFolderPath}/${lrcFilename}`,
|
||||||
|
lastModified: new Date(),
|
||||||
|
input: lrcContent,
|
||||||
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch { /* ignore */ }
|
} catch {
|
||||||
|
/* ignore */
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
if (err.name === 'AbortError') throw err;
|
if (err.name === 'AbortError') throw err;
|
||||||
|
|
@ -644,4 +681,4 @@ export async function downloadTrackWithMetadata(track, quality, api, lyricsManag
|
||||||
} finally {
|
} finally {
|
||||||
ongoingDownloads.delete(downloadKey);
|
ongoingDownloads.delete(downloadKey);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue