mirror of
https://github.com/wukko/cobalt.git
synced 2025-02-11 13:16:24 +01:00
66 lines
1.9 KiB
JavaScript
66 lines
1.9 KiB
JavaScript
const illegalCharacters = ['}', '{', '%', '>', '<', '^', ';', ':', '`', '$', '"', "@", '=', '?', '|', '*'];
|
|
|
|
const sanitizeString = (string) => {
|
|
for (const i in illegalCharacters) {
|
|
string = string.replaceAll("/", "_").replaceAll("\\", "_")
|
|
.replaceAll(illegalCharacters[i], '')
|
|
}
|
|
return string;
|
|
}
|
|
|
|
export default (f, style, isAudioOnly, isAudioMuted) => {
|
|
let filename = '';
|
|
|
|
let infoBase = [f.service, f.id];
|
|
let classicTags = [...infoBase];
|
|
let basicTags = [];
|
|
|
|
const title = `${sanitizeString(f.title)} - ${sanitizeString(f.author)}`;
|
|
|
|
if (f.resolution) {
|
|
classicTags.push(f.resolution);
|
|
}
|
|
|
|
if (f.qualityLabel) {
|
|
basicTags.push(f.qualityLabel);
|
|
}
|
|
|
|
if (f.youtubeFormat) {
|
|
classicTags.push(f.youtubeFormat);
|
|
basicTags.push(f.youtubeFormat);
|
|
}
|
|
|
|
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":
|
|
if (isAudioOnly) {
|
|
if (f.youtubeDubName) {
|
|
infoBase.push(f.youtubeDubName);
|
|
}
|
|
return `${infoBase.join("_")}_audio`;
|
|
}
|
|
filename = classicTags.join("_");
|
|
break;
|
|
case "basic":
|
|
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":
|
|
if (isAudioOnly) return `${title} (${infoBase.join(", ")})`;
|
|
filename = `${title} (${basicTags.concat(infoBase).join(", ")})`;
|
|
break;
|
|
}
|
|
return `${filename}.${f.extension}`;
|
|
}
|