feat: add improve name button

This commit is contained in:
2025-04-30 11:33:55 +02:00
committed by Louis Heredero
parent 52267d16e3
commit 609b32d09a
8 changed files with 323 additions and 22 deletions

View File

@ -18,6 +18,29 @@ const CorrectionType = {
FIELD: "field"
}
const WORDS = {
forced: {
default: "Forced",
fre: "Forcés",
"fre-ca": "Forcés"
},
full: {
default: "Full",
fre: "Complets",
"fre-ca": "Complets"
},
}
function containsWord(parts, word) {
return Object.values(WORDS[word]).some(w => parts.includes(w))
}
function getWord(word, lang) {
const words = WORDS[word]
return words[lang] ?? words.default
}
class MismatchCorrection {
/**
*
@ -183,8 +206,13 @@ export default class IntegrityManager {
case "subtitle":
const stLang = findLanguage(lower)
if (stLang !== null) {fields.language = stLang}
const forced = parts.includes("forced")
if (forced) {fields.flags.forced = forced}
const isForced = containsWord(parts, "forced")
const isFull = containsWord(parts, "full")
if (isForced) {
fields.flags.forced = true
} else if (isFull) {
fields.flags.forced = false
}
const sdh = parts.includes("sdh")
if (sdh) {fields.flags.hearing_impaired = sdh}
@ -261,20 +289,23 @@ export default class IntegrityManager {
case "audio":
if (fields.flags.original) {
name += " VO"
} else if (fields.language === "fr") {
}/* else if (fields.language === "fre") {
name += " VFF"
} else if (fields.language === "fr-ca") {
name =+ " VFQ"
} else if (fields.language === "fre-ca") {
name += " VFQ"
}*/
if (fields.flags.visual_impaired) {
name += " AD"
}
if (fields.channels) {
name += " : " + fields.channels
name += " / " + fields.channels
}
break
case "subtitle":
if (fields.flags.forced) {
name += " Forced"
name += " " + getWord("forced", fields.language)
} else {
name += " Full"
name += " " + getWord("full", fields.language)
}
if (fields.flags.hearing_impaired) {
name += " SDH"
@ -314,4 +345,20 @@ export default class IntegrityManager {
}
return input
}
/**
*
* @param {Track} track
*/
improveName(track) {
let nameFields = this.parseName(track.table.type, track.fields["name"])
const keys = Object.keys(flattenObj(nameFields))
Object.entries(flattenObj(track.fields)).forEach(([key, val]) => {
if (!keys.includes(key)) {
updateObjectFromJoinedKey(nameFields, key, val)
}
})
const name = this.reconstructName(track.table.type, nameFields)
track.editValue("name", name)
}
}