Merge branch 'main' of github.com:monochrome-music/monochrome
This commit is contained in:
commit
92f8d4ef61
2 changed files with 53 additions and 25 deletions
|
|
@ -278,7 +278,15 @@ function removeBulkDownloadTask(notifEl) {
|
||||||
}, 300);
|
}, 300);
|
||||||
}
|
}
|
||||||
|
|
||||||
async function downloadTrackBlob(track, quality, api, lyricsManager = null, signal = null, onProgress = null, coverBlob = null) {
|
async function downloadTrackBlob(
|
||||||
|
track,
|
||||||
|
quality,
|
||||||
|
api,
|
||||||
|
lyricsManager = null,
|
||||||
|
signal = null,
|
||||||
|
onProgress = null,
|
||||||
|
coverBlob = null
|
||||||
|
) {
|
||||||
let enrichedTrack = {
|
let enrichedTrack = {
|
||||||
...track,
|
...track,
|
||||||
artist: track.artist || (track.artists && track.artists.length > 0 ? track.artists[0] : null),
|
artist: track.artist || (track.artists && track.artists.length > 0 ? track.artists[0] : null),
|
||||||
|
|
@ -566,9 +574,17 @@ async function bulkDownloadToZipStream(
|
||||||
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle);
|
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const { blob, extension } = await downloadTrackBlob(track, quality, api, null, signal, (p) => {
|
const { blob, extension } = await downloadTrackBlob(
|
||||||
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle, p);
|
track,
|
||||||
}, coverBlob);
|
quality,
|
||||||
|
api,
|
||||||
|
null,
|
||||||
|
signal,
|
||||||
|
(p) => {
|
||||||
|
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle, p);
|
||||||
|
},
|
||||||
|
coverBlob
|
||||||
|
);
|
||||||
const filename = buildTrackFilename(track, quality, extension);
|
const filename = buildTrackFilename(track, quality, extension);
|
||||||
const discNumber = discLayout.resolveDiscNumber(i);
|
const discNumber = discLayout.resolveDiscNumber(i);
|
||||||
yield {
|
yield {
|
||||||
|
|
@ -710,9 +726,17 @@ async function bulkDownloadToZipBlob(
|
||||||
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle);
|
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const { blob, extension } = await downloadTrackBlob(track, quality, api, null, signal, (p) => {
|
const { blob, extension } = await downloadTrackBlob(
|
||||||
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle, p);
|
track,
|
||||||
}, coverBlob);
|
quality,
|
||||||
|
api,
|
||||||
|
null,
|
||||||
|
signal,
|
||||||
|
(p) => {
|
||||||
|
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle, p);
|
||||||
|
},
|
||||||
|
coverBlob
|
||||||
|
);
|
||||||
const filename = buildTrackFilename(track, quality, extension);
|
const filename = buildTrackFilename(track, quality, extension);
|
||||||
const discNumber = discLayout.resolveDiscNumber(i);
|
const discNumber = discLayout.resolveDiscNumber(i);
|
||||||
yield {
|
yield {
|
||||||
|
|
@ -855,9 +879,17 @@ async function bulkDownloadToZipNeutralino(
|
||||||
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle);
|
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const { blob, extension } = await downloadTrackBlob(track, quality, api, null, signal, (p) => {
|
const { blob, extension } = await downloadTrackBlob(
|
||||||
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle, p);
|
track,
|
||||||
}, coverBlob);
|
quality,
|
||||||
|
api,
|
||||||
|
null,
|
||||||
|
signal,
|
||||||
|
(p) => {
|
||||||
|
updateBulkDownloadProgress(notification, i, tracks.length, trackTitle, p);
|
||||||
|
},
|
||||||
|
coverBlob
|
||||||
|
);
|
||||||
const filename = buildTrackFilename(track, quality, extension);
|
const filename = buildTrackFilename(track, quality, extension);
|
||||||
const discNumber = discLayout.resolveDiscNumber(i);
|
const discNumber = discLayout.resolveDiscNumber(i);
|
||||||
yield {
|
yield {
|
||||||
|
|
@ -1185,7 +1217,15 @@ export async function downloadDiscography(artist, selectedReleases, api, quality
|
||||||
const track = tracks[i];
|
const track = tracks[i];
|
||||||
if (signal.aborted) break;
|
if (signal.aborted) break;
|
||||||
try {
|
try {
|
||||||
const { blob, extension } = await downloadTrackBlob(track, quality, api, null, signal, null, coverBlob);
|
const { blob, extension } = await downloadTrackBlob(
|
||||||
|
track,
|
||||||
|
quality,
|
||||||
|
api,
|
||||||
|
null,
|
||||||
|
signal,
|
||||||
|
null,
|
||||||
|
coverBlob
|
||||||
|
);
|
||||||
const filename = buildTrackFilename(track, quality, extension);
|
const filename = buildTrackFilename(track, quality, extension);
|
||||||
const discNumber = discLayout.resolveDiscNumber(i);
|
const discNumber = discLayout.resolveDiscNumber(i);
|
||||||
yield {
|
yield {
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,7 @@ function getFullArtistString(track) {
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* @param {Object} track
|
* @param {Object} track
|
||||||
* @returns {string|null}
|
* @returns {string|null}
|
||||||
*/
|
*/
|
||||||
|
|
@ -988,19 +988,7 @@ async function createFlacPictureBlockFromBytes(imageBytes, mimeType = 'image/jpe
|
||||||
const description = '';
|
const description = '';
|
||||||
const descBytes = new TextEncoder().encode(description);
|
const descBytes = new TextEncoder().encode(description);
|
||||||
|
|
||||||
|
const totalSize = 4 + 4 + mimeBytes.length + 4 + descBytes.length + 4 + 4 + 4 + 4 + 4 + imageBytes.length;
|
||||||
const totalSize =
|
|
||||||
4 +
|
|
||||||
4 +
|
|
||||||
mimeBytes.length +
|
|
||||||
4 +
|
|
||||||
descBytes.length +
|
|
||||||
4 +
|
|
||||||
4 +
|
|
||||||
4 +
|
|
||||||
4 +
|
|
||||||
4 +
|
|
||||||
imageBytes.length;
|
|
||||||
|
|
||||||
const buffer = new ArrayBuffer(totalSize);
|
const buffer = new ArrayBuffer(totalSize);
|
||||||
const view = new DataView(buffer);
|
const view = new DataView(buffer);
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue