cobalt/api/src/processing/create-filename.js

49 lines
1.5 KiB
JavaScript
Raw Normal View History

2024-08-25 10:48:28 +02:00
export default (f, style, isAudioOnly, isAudioMuted) => {
let filename = '';
2024-08-25 10:48:28 +02:00
let infoBase = [f.service, f.id];
let classicTags = [...infoBase, f.resolution];
let basicTags = [f.qualityLabel];
2024-08-25 10:48:28 +02:00
const title = `${f.title} - ${f.author}`;
if (f.youtubeFormat) {
classicTags.push(f.youtubeFormat);
basicTags.push(f.youtubeFormat);
}
2024-08-25 10:48:28 +02:00
if (isAudioMuted) {
classicTags.push("mute");
basicTags.push("mute");
} else if (f.youtubeDubName) {
classicTags.push(f.youtubeDubName);
basicTags.push(f.youtubeDubName);
}
switch (style) {
default:
case "classic":
2024-08-25 10:48:28 +02:00
if (isAudioOnly) {
if (f.youtubeDubName) {
infoBase.push(f.youtubeDubName);
}
2024-08-25 10:48:28 +02:00
return `${infoBase.join("_")}_audio`;
}
2024-08-25 10:48:28 +02:00
filename = classicTags.join("_");
break;
case "basic":
2024-08-25 10:48:28 +02:00
if (isAudioOnly) return title;
filename = `${title} (${basicTags.join(", ")})`;
break;
case "pretty":
if (isAudioOnly) return `${title} (${infoBase[0]})`;
filename = `${title} (${[...basicTags, infoBase[0]].join(", ")})`;
break;
case "nerdy":
2024-08-25 10:48:28 +02:00
if (isAudioOnly) return `${title} (${infoBase.join(", ")})`;
filename = `${title} (${basicTags.concat(infoBase).join(", ")})`;
break;
}
2024-08-25 10:48:28 +02:00
return `${filename}.${f.extension}`;
}