diff --git a/CommonCode/src/main/java/no/iktdev/streamit/content/common/Naming.kt b/CommonCode/src/main/java/no/iktdev/streamit/content/common/Naming.kt index f5253819..f09f3054 100644 --- a/CommonCode/src/main/java/no/iktdev/streamit/content/common/Naming.kt +++ b/CommonCode/src/main/java/no/iktdev/streamit/content/common/Naming.kt @@ -41,11 +41,18 @@ class Naming(val fileName: String) { fun guessDesiredTitle(): String { val desiredFileName = guessDesiredFileName() - val result = if (desiredFileName.contains(" - ")) { - return desiredFileName.split(" - ").firstOrNull() ?: desiredFileName - } else desiredFileName + val seasonRegex = Regex("\\sS[0-9]+(\\s- [0-9]+|\\s[0-9]+)", RegexOption.IGNORE_CASE) + if (seasonRegex.matches(desiredFileName)) { + return seasonRegex.replace(desiredFileName, "").trim() + } else { + val result = if (desiredFileName.contains(" - ")) { + return desiredFileName.split(" - ").firstOrNull() ?: desiredFileName + } else desiredFileName - return result.trim() + + + return result.trim() + } } diff --git a/Encode/src/main/kotlin/no/iktdev/streamit/content/encode/runner/EncodeDaemon.kt b/Encode/src/main/kotlin/no/iktdev/streamit/content/encode/runner/EncodeDaemon.kt index 05a948eb..9458f257 100644 --- a/Encode/src/main/kotlin/no/iktdev/streamit/content/encode/runner/EncodeDaemon.kt +++ b/Encode/src/main/kotlin/no/iktdev/streamit/content/encode/runner/EncodeDaemon.kt @@ -54,10 +54,10 @@ class EncodeDaemon(val referenceId: String, val work: EncodeWork, val daemonInte if (!outFile.parentFile.exists()) { outFile.parentFile.mkdirs() } - val adjustedArgs = listOf( + val adjustedArgs = (if (EncodeEnv.allowOverwrite) listOf("-y") else listOf("-nostdin")) + listOf( "-hide_banner", "-i", File(work.inFile).absolutePath, *work.arguments.toTypedArray(), outFile.absolutePath, "-progress", "pipe:1" - ) + if (EncodeEnv.allowOverwrite) listOf("-y") else listOf("-nostdin") + ) logger.info { "$referenceId @ ${work.workId} ${adjustedArgs.joinToString(" ")}" } return Daemon(EncodeEnv.ffmpeg, this).run(adjustedArgs) } diff --git a/Encode/src/main/kotlin/no/iktdev/streamit/content/encode/runner/ExtractDaemon.kt b/Encode/src/main/kotlin/no/iktdev/streamit/content/encode/runner/ExtractDaemon.kt index 9abe34a8..edb06b99 100644 --- a/Encode/src/main/kotlin/no/iktdev/streamit/content/encode/runner/ExtractDaemon.kt +++ b/Encode/src/main/kotlin/no/iktdev/streamit/content/encode/runner/ExtractDaemon.kt @@ -19,9 +19,9 @@ class ExtractDaemon(val referenceId: String, val work: ExtractWork, val daemonIn if (!outFile.parentFile.exists()) { outFile.parentFile.mkdirs() } - val adjustedArgs = listOf( - "-hide_banner", "-i", File(work.inFile).absolutePath, *work.arguments.toTypedArray(), outFile.absolutePath - ) + if (EncodeEnv.allowOverwrite) listOf("-y") else listOf() + val adjustedArgs = (if (EncodeEnv.allowOverwrite) listOf("-y") else emptyList()) + listOf( + "-i", File(work.inFile).absolutePath, *work.arguments.toTypedArray(), outFile.absolutePath + ) logger.info { "$referenceId @ ${work.workId} ${adjustedArgs.joinToString(" ")}" } return Daemon(EncodeEnv.ffmpeg, this).run(adjustedArgs) } diff --git a/pyMetadata/sources/anii.py b/pyMetadata/sources/anii.py index 020816d7..06be622c 100644 --- a/pyMetadata/sources/anii.py +++ b/pyMetadata/sources/anii.py @@ -19,7 +19,8 @@ class metadata(): cover = result.get("cover_image", None), summary = result.get("desc", None), type = 'movie' if result.get('airing_format', '').lower() == 'movie' else 'serie', - genres = result.get('genres', []) + genres = result.get('genres', []), + source="anii" ) if (meta.title is None) or (meta.type is None): return DataResult("IGNORE", None, None) diff --git a/pyMetadata/sources/imdb.py b/pyMetadata/sources/imdb.py index c80ef2f1..020b45d1 100644 --- a/pyMetadata/sources/imdb.py +++ b/pyMetadata/sources/imdb.py @@ -21,7 +21,8 @@ class metadata(): cover = result.get("cover url", None), summary = result.get("plot outline", None), type = 'movie' if result.get('kind', '').lower() == 'movie' else 'serie', - genres = result.get('genres', []) + genres = result.get('genres', []), + source="imdb" ) if (meta.title is None) or (meta.type is None): return DataResult("IGNORE", None, None) diff --git a/pyMetadata/sources/mal.py b/pyMetadata/sources/mal.py index 0e04941c..54b1c95d 100644 --- a/pyMetadata/sources/mal.py +++ b/pyMetadata/sources/mal.py @@ -20,6 +20,7 @@ class metadata(): summary = anime.synopsis, type = 'movie' if anime.type.lower() == 'movie' else 'serie', genres = anime.genres, + source="mal" ) if (meta.title is None) or (meta.type is None): return DataResult("IGNORE", None, None) diff --git a/pyMetadata/sources/result.py b/pyMetadata/sources/result.py index 7384d05f..e3d74010 100644 --- a/pyMetadata/sources/result.py +++ b/pyMetadata/sources/result.py @@ -9,6 +9,7 @@ class Metadata: type: str # Serie/Movie summary: str genres: List[str] + source: str def to_dict(self): return asdict(self)