This commit is contained in:
bskjon 2024-04-14 17:39:25 +02:00
parent d1fb815d4d
commit cf35aa6ea7
3 changed files with 25 additions and 11 deletions

View File

@ -69,7 +69,7 @@ class UseSource():
titles.append(wd.result.data.title) titles.append(wd.result.data.title)
titles.extend(wd.result.data.altTitle) titles.extend(wd.result.data.altTitle)
joinedTitles = "\n\t".join(titles) joinedTitles = "\n\t".join(titles)
logger.info(f"Title {self.title} gave the result: {joinedTitles} \nWith used: {scored[0].result.data.title}\n") logger.info(f"Title {self.title} gave the result: {joinedTitles} \nTitle selected: \n\t{scored[0].result.data.title}\n")
except: except:
pass pass

View File

@ -10,7 +10,7 @@ class FileNameParser(val fileName: String) {
cleanedFileName = removeResolutionAndTrailing(cleanedFileName) cleanedFileName = removeResolutionAndTrailing(cleanedFileName)
cleanedFileName = removeResolutionAndTags(cleanedFileName) cleanedFileName = removeResolutionAndTags(cleanedFileName)
cleanedFileName = removeParenthesizedText(cleanedFileName) cleanedFileName = removeParenthesizedText(cleanedFileName)
cleanedFileName = removeYearAndTrailing(cleanedFileName) cleanedFileName = removeYear(cleanedFileName)
cleanedFileName = removeDot(cleanedFileName) cleanedFileName = removeDot(cleanedFileName)
cleanedFileName = removeExtraWhiteSpace(cleanedFileName) cleanedFileName = removeExtraWhiteSpace(cleanedFileName)
cleanedFileName = removeTrailingAndLeadingCharacters(cleanedFileName).trim() cleanedFileName = removeTrailingAndLeadingCharacters(cleanedFileName).trim()
@ -44,14 +44,14 @@ class FileNameParser(val fileName: String) {
fun guessDesiredTitle(): String { fun guessDesiredTitle(): String {
val desiredFileName = guessDesiredFileName() val desiredFileName = guessDesiredFileName()
if (Regexes.season.containsMatchIn(desiredFileName)) { return if (Regexes.season.containsMatchIn(desiredFileName)) {
return Regexes.season.split(desiredFileName).firstOrNull()?.trim() ?: desiredFileName Regexes.season.split(desiredFileName).firstOrNull()?.trim() ?: desiredFileName
} else { } else {
val result = if (desiredFileName.contains(" - ")) { val result = if (desiredFileName.contains(" - ")) {
return desiredFileName.split(" - ").firstOrNull() ?: desiredFileName desiredFileName.split(" - ").firstOrNull() ?: desiredFileName
} else desiredFileName } else desiredFileName
return result.trim() result.trim()
} }.trim('.', '-')
} }
@ -86,16 +86,19 @@ class FileNameParser(val fileName: String) {
} }
fun removeYearAndTrailing(text: String): String { fun removeYear(text: String): String {
val match = Regex("\\b\\d{4}\\W").find(text, 0)?.value val match = Regex("\\b\\d{4}\\W").find(text, 0)?.value
if (match == null || text.indexOf(match) > 0) { if (match == null || text.indexOf(match) > 0) {
return Regex("\\b\\d{4}\\b(.*)").replace(text, " ") //return Regex("\\b\\d{4}\\b(.*)").replace(text, " ")
return Regex("\\b\\d{4}\\b").replace(text, "")
} }
return text return text
} }
fun removeDot(text: String): String { fun removeDot(input: String): String {
return Regex("\\.(?<!(Dr|Mr|Ms|Mrs|Lt|Capt|Prof|St|Ave)\\.)\\b").replace(text, " ") //var text = Regex("(?<=\\s)\\.|\\.(?=\\s)").replace(input, "")
//return Regex("\\.(?<!(Dr|Mr|Ms|Mrs|Lt|Capt|Prof|St|Ave)\\.)\\b").replace(text, " ")
return Regex("(?<!\\b(?:Dr|Mr|Ms|Mrs|Lt|Capt|Prof|St|Ave))\\.+(?=\\s|\\w)").replace(input, " ")
} }
fun removeInBetweenCharacters(text: String): String { fun removeInBetweenCharacters(text: String): String {

View File

@ -23,6 +23,17 @@ class FileNameParserTest {
assertThat(parser.guessDesiredFileName()).isEqualTo("Fancy Name Test 99 - 01") assertThat(parser.guessDesiredFileName()).isEqualTo("Fancy Name Test 99 - 01")
} }
@Test
fun serieName() {
val inName = "Nihon.2024.S01E01.Gaijin.1080p.YT.HEVC"
val parser = FileNameParser(inName)
val title = parser.guessDesiredTitle()
val result = parser.guessDesiredFileName()
assertThat(title).isEqualTo("Nihon")
assertThat(result).isEqualTo("Nihon S01E01 Gaijin")
}
} }