style: auto-fix linting issues

This commit is contained in:
SamidyFR 2026-03-12 04:12:28 +00:00 committed by github-actions[bot]
parent 30b2e7d445
commit 7e6375919d
3 changed files with 69 additions and 27 deletions

View file

@ -1429,32 +1429,39 @@ export class LosslessAPI {
const coverBlobToEmbed = await prefetchPromises.coverFetch;
const extraFiles = [];
const ffmpegMetadataArgs = [];
if (coverBlobToEmbed) {
const coverBuffer = await coverBlobToEmbed.arrayBuffer();
const coverExt = getMimeType(new Uint8Array(coverBuffer)) === 'image/png' ? 'png' : 'jpg';
const coverName = `cover.${coverExt}`;
extraFiles.push({
name: coverName,
data: coverBuffer
data: coverBuffer,
});
ffmpegMetadataArgs.push('-i', coverName);
}
if (track) {
ffmpegMetadataArgs.push(
'-metadata', `title=${getTrackTitle(track)}`,
'-metadata', `artist=${getFullArtistString(track)}`,
'-metadata', `album=${track.album?.title || ''}`,
'-metadata', `album_artist=${track.album?.artist?.name || track.artist?.name || ''}`
'-metadata',
`title=${getTrackTitle(track)}`,
'-metadata',
`artist=${getFullArtistString(track)}`,
'-metadata',
`album=${track.album?.title || ''}`,
'-metadata',
`album_artist=${track.album?.artist?.name || track.artist?.name || ''}`
);
const trackNum = track.trackNumber;
if (trackNum) {
const totalTracks = track.album?.numberOfTracks;
ffmpegMetadataArgs.push('-metadata', `track=${trackNum}${totalTracks ? `/${totalTracks}` : ''}`);
ffmpegMetadataArgs.push(
'-metadata',
`track=${trackNum}${totalTracks ? `/${totalTracks}` : ''}`
);
}
const discNum = track.volumeNumber || track.discNumber;
if (discNum) {
ffmpegMetadataArgs.push('-metadata', `disc=${discNum}`);
@ -1473,7 +1480,16 @@ export class LosslessAPI {
try {
const args = [...ffmpegMetadataArgs, ...format.ffmpegArgs];
if (coverBlobToEmbed) {
args.push('-map', '0:a', '-map', '1:v', '-c:v', 'copy', '-disposition:v:0', 'attached_pic');
args.push(
'-map',
'0:a',
'-map',
'1:v',
'-c:v',
'copy',
'-disposition:v:0',
'attached_pic'
);
}
blob = await ffmpeg(
@ -1501,12 +1517,21 @@ export class LosslessAPI {
try {
const containerType = losslessContainerSettings.getContainer();
const containerFmt = getContainerFormat(containerType);
if (containerFmt && containerType !== 'nochange') {
if (await containerFmt.needsTranscode(blob)) {
const args = [...ffmpegMetadataArgs, ...containerFmt.ffmpegArgs];
if (coverBlobToEmbed) {
args.push('-map', '0:a', '-map', '1:v', '-c:v', 'copy', '-disposition:v:0', 'attached_pic');
args.push(
'-map',
'0:a',
'-map',
'1:v',
'-c:v',
'copy',
'-disposition:v:0',
'attached_pic'
);
}
blob = await ffmpeg(
@ -1526,10 +1551,17 @@ export class LosslessAPI {
if (actualExtension === 'm4a' || actualExtension === 'mp4') {
try {
const ffmpegArgs = [...ffmpegMetadataArgs];
ffmpegArgs.push('-map', '0:a');
if (coverBlobToEmbed) {
ffmpegArgs.push('-map', '1:v', '-c:v', 'copy', '-disposition:v:0', 'attached_pic');
ffmpegArgs.push(
'-map',
'1:v',
'-c:v',
'copy',
'-disposition:v:0',
'attached_pic'
);
}
ffmpegArgs.push('-c:a', 'copy', '-movflags', '+faststart', '-strict', '-2');

View file

@ -423,32 +423,36 @@ async function downloadTrackBlob(
const coverBlobToEmbed = await prefetchPromises.coverFetch;
const extraFiles = [];
const ffmpegMetadataArgs = [];
if (coverBlobToEmbed) {
const coverBuffer = await coverBlobToEmbed.arrayBuffer();
const coverExt = getMimeType(new Uint8Array(coverBuffer)) === 'image/png' ? 'png' : 'jpg';
const coverName = `cover.${coverExt}`;
extraFiles.push({
name: coverName,
data: coverBuffer
data: coverBuffer,
});
ffmpegMetadataArgs.push('-i', coverName);
}
if (enrichedTrack) {
ffmpegMetadataArgs.push(
'-metadata', `title=${getTrackTitle(enrichedTrack)}`,
'-metadata', `artist=${getFullArtistString(enrichedTrack)}`,
'-metadata', `album=${enrichedTrack.album?.title || ''}`,
'-metadata', `album_artist=${enrichedTrack.album?.artist?.name || enrichedTrack.artist?.name || ''}`
'-metadata',
`title=${getTrackTitle(enrichedTrack)}`,
'-metadata',
`artist=${getFullArtistString(enrichedTrack)}`,
'-metadata',
`album=${enrichedTrack.album?.title || ''}`,
'-metadata',
`album_artist=${enrichedTrack.album?.artist?.name || enrichedTrack.artist?.name || ''}`
);
const trackNum = enrichedTrack.trackNumber;
if (trackNum) {
const totalTracks = enrichedTrack.album?.numberOfTracks;
ffmpegMetadataArgs.push('-metadata', `track=${trackNum}${totalTracks ? `/${totalTracks}` : ''}`);
}
const discNum = enrichedTrack.volumeNumber || enrichedTrack.discNumber;
if (discNum) {
ffmpegMetadataArgs.push('-metadata', `disc=${discNum}`);
@ -485,7 +489,7 @@ async function downloadTrackBlob(
try {
const containerType = losslessContainerSettings.getContainer();
const containerFmt = getContainerFormat(containerType);
if (containerFmt && containerType !== 'nochange') {
if (await containerFmt.needsTranscode(blob)) {
const args = [...ffmpegMetadataArgs, ...containerFmt.ffmpegArgs];
@ -510,7 +514,7 @@ async function downloadTrackBlob(
if (actualExtension === 'm4a' || actualExtension === 'mp4') {
try {
const ffmpegArgs = [...ffmpegMetadataArgs];
ffmpegArgs.push('-map', '0:a');
if (coverBlobToEmbed) {
ffmpegArgs.push('-map', '1:v', '-c:v', 'copy', '-disposition:v:0', 'attached_pic');

View file

@ -139,11 +139,17 @@ self.onmessage = async (e) => {
self.postMessage({ type: 'complete', blob: outputBlob });
} finally {
try { if (audioData) await ffmpeg.deleteFile('input'); } catch {}
try {
if (audioData) await ffmpeg.deleteFile('input');
} catch {}
for (const file of extraFiles) {
try { await ffmpeg.deleteFile(file.name); } catch {}
try {
await ffmpeg.deleteFile(file.name);
} catch {}
}
try { await ffmpeg.deleteFile(output.name); } catch {}
try {
await ffmpeg.deleteFile(output.name);
} catch {}
}
} catch (error) {
self.postMessage({ type: 'error', message: error.message });