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

View file

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

View file

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