From dcad56a4b4ffcecb818f5642571823cf7178a08c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Brage=20Skj=C3=B8nborg?= Date: Sun, 1 Feb 2026 23:29:33 +0100 Subject: [PATCH] Fixes --- .../events/MediaCreateMetadataSearchTaskListener.kt | 2 +- .../coordinator/listeners/events/StartedListener.kt | 2 +- .../test/kotlin/no/iktdev/mediaprocessing/TestBase.kt | 2 +- .../listeners/events/CollectEventsListenerTest.kt | 4 ++-- .../mediaprocessing/processer/{ => config}/FileUtil.kt | 9 ++++++--- .../processer/listeners/SubtitleTaskListener.kt | 2 +- .../processer/listeners/VideoTaskListener.kt | 2 +- apps/processer/src/main/resources/application.yml | 10 +++++----- .../no/iktdev/mediaprocessing/processer/TestUtils.kt | 1 + apps/processer/src/test/resources/application.yml | 6 +++--- .../no/iktdev/mediaprocessing/ui/dto/file/File.kt | 1 + .../mediaprocessing/ui/service/CoordinatorClient.kt | 4 +++- .../mediaprocessing/ui/service/ExplorerService.kt | 3 ++- apps/ui/web/src/types/files.ts | 3 ++- .../event_task_contract/events/StartProcessingEvent.kt | 2 +- .../shared/common/projection/CollectProjection.kt | 2 +- 16 files changed, 32 insertions(+), 23 deletions(-) rename apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/{ => config}/FileUtil.kt (75%) diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/MediaCreateMetadataSearchTaskListener.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/MediaCreateMetadataSearchTaskListener.kt index 5a35a69f..41ed1c0b 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/MediaCreateMetadataSearchTaskListener.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/MediaCreateMetadataSearchTaskListener.kt @@ -30,7 +30,7 @@ class MediaCreateMetadataSearchTaskListener: EventListener() { val startedEvent = history.filterIsInstance().firstOrNull() ?: return null if (startedEvent.data.operation.isNotEmpty()) { - if (!startedEvent.data.operation.contains(OperationType.Metadata)) + if (!startedEvent.data.operation.contains(OperationType.MetadataSearch)) return null } diff --git a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/StartedListener.kt b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/StartedListener.kt index 8bd3987f..68650d46 100644 --- a/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/StartedListener.kt +++ b/apps/coordinator/src/main/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/StartedListener.kt @@ -23,7 +23,7 @@ class StartedListener : EventListener() { OperationType.ExtractSubtitles, OperationType.ConvertSubtitles, OperationType.Encode, - OperationType.Metadata + OperationType.MetadataSearch ) ) ) diff --git a/apps/coordinator/src/test/kotlin/no/iktdev/mediaprocessing/TestBase.kt b/apps/coordinator/src/test/kotlin/no/iktdev/mediaprocessing/TestBase.kt index 1db6e1d4..f2bd1671 100644 --- a/apps/coordinator/src/test/kotlin/no/iktdev/mediaprocessing/TestBase.kt +++ b/apps/coordinator/src/test/kotlin/no/iktdev/mediaprocessing/TestBase.kt @@ -46,7 +46,7 @@ open class TestBase { fun defaultStartEvent(): StartProcessingEvent { val start = StartProcessingEvent( data = StartData( - operation = setOf(OperationType.Encode, OperationType.ExtractSubtitles, OperationType.ConvertSubtitles, OperationType.Metadata), + operation = setOf(OperationType.Encode, OperationType.ExtractSubtitles, OperationType.ConvertSubtitles, OperationType.MetadataSearch), fileUri = "file:///unit/${UUID.randomUUID()}.mkv" ) ).apply { newReferenceId() } diff --git a/apps/coordinator/src/test/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/CollectEventsListenerTest.kt b/apps/coordinator/src/test/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/CollectEventsListenerTest.kt index c0393a76..dea6c69c 100644 --- a/apps/coordinator/src/test/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/CollectEventsListenerTest.kt +++ b/apps/coordinator/src/test/kotlin/no/iktdev/mediaprocessing/coordinator/listeners/events/CollectEventsListenerTest.kt @@ -78,7 +78,7 @@ class CollectEventsListenerTest : TestBase() { ev.copy( data = ev.data.copy( operation = setOf( - OperationType.Metadata, + OperationType.MetadataSearch, OperationType.Encode, OperationType.ExtractSubtitles ) @@ -123,7 +123,7 @@ class CollectEventsListenerTest : TestBase() { ev.copy( data = ev.data.copy( operation = setOf( - OperationType.Metadata, + OperationType.MetadataSearch, OperationType.ConvertSubtitles ) ) diff --git a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/FileUtil.kt b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/config/FileUtil.kt similarity index 75% rename from apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/FileUtil.kt rename to apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/config/FileUtil.kt index 9aa0106f..ae8e3969 100644 --- a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/FileUtil.kt +++ b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/config/FileUtil.kt @@ -1,18 +1,21 @@ -package no.iktdev.mediaprocessing.processer +package no.iktdev.mediaprocessing.processer.config import no.iktdev.exfl.using -import no.iktdev.mediaprocessing.processer.config.DirectoryProperties import no.iktdev.mediaprocessing.shared.common.configs.MediaPaths import org.springframework.stereotype.Component import java.io.File +@Suppress("SENSELESS_COMPARISON") @Component class FileUtil( private val dirs: DirectoryProperties, private val mediaPaths: MediaPaths ) { + init { + assert(dirs.logs != null) + } fun getTemporaryStoreFile(fileName: String): File = File(mediaPaths.cache).using(fileName) fun getLogDirectory(): File = File(dirs.logs) -} +} \ No newline at end of file diff --git a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/listeners/SubtitleTaskListener.kt b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/listeners/SubtitleTaskListener.kt index 6775589e..893a8906 100644 --- a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/listeners/SubtitleTaskListener.kt +++ b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/listeners/SubtitleTaskListener.kt @@ -9,7 +9,7 @@ import no.iktdev.eventi.tasks.TaskType import no.iktdev.exfl.using import no.iktdev.mediaprocessing.ffmpeg.FFmpeg import no.iktdev.mediaprocessing.ffmpeg.arguments.MpegArgument -import no.iktdev.mediaprocessing.processer.FileUtil +import no.iktdev.mediaprocessing.processer.config.FileUtil import no.iktdev.mediaprocessing.processer.config.ExecutablesConfig import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.ProcesserExtractResultEvent import no.iktdev.mediaprocessing.shared.common.event_task_contract.tasks.ExtractSubtitleTask diff --git a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/listeners/VideoTaskListener.kt b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/listeners/VideoTaskListener.kt index 0c4db5a6..b86f3808 100644 --- a/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/listeners/VideoTaskListener.kt +++ b/apps/processer/src/main/kotlin/no/iktdev/mediaprocessing/processer/listeners/VideoTaskListener.kt @@ -11,7 +11,7 @@ import no.iktdev.mediaprocessing.ffmpeg.FFmpeg import no.iktdev.mediaprocessing.ffmpeg.arguments.MpegArgument import no.iktdev.mediaprocessing.ffmpeg.decoder.FfmpegDecodedProgress import no.iktdev.mediaprocessing.processer.CoordinatorClient -import no.iktdev.mediaprocessing.processer.FileUtil +import no.iktdev.mediaprocessing.processer.config.FileUtil import no.iktdev.mediaprocessing.processer.LocalProgressCache import no.iktdev.mediaprocessing.processer.config.ExecutablesConfig import no.iktdev.mediaprocessing.shared.common.event_task_contract.events.ProcesserEncodeResultEvent diff --git a/apps/processer/src/main/resources/application.yml b/apps/processer/src/main/resources/application.yml index 604aaeae..9e132742 100644 --- a/apps/processer/src/main/resources/application.yml +++ b/apps/processer/src/main/resources/application.yml @@ -26,17 +26,17 @@ logging: media: - cache: ${DIRECTORY_CONTENT_CACHE:/src/cache} + cache: /src/cache outgoing: /src/output incoming: /src/input processer: - coordinator-url: ${COORDINATOR_URL:http://coordinator:8080} + coordinator-url: http://coordinator:8080 coordinator-ping-on-startup: true - allow-overwrite: ${ALLOW_OVERWRITE:false} + allow-overwrite: false executables: - ffmpeg: ${SUPPORTING_EXECUTABLE_FFMPEG:ffmpeg} + ffmpeg: ffmpeg directories: - logs: ${LOG_DIR:/data/logs} + logs: /data/logs diff --git a/apps/processer/src/test/kotlin/no/iktdev/mediaprocessing/processer/TestUtils.kt b/apps/processer/src/test/kotlin/no/iktdev/mediaprocessing/processer/TestUtils.kt index 011ec8fc..b037d37f 100644 --- a/apps/processer/src/test/kotlin/no/iktdev/mediaprocessing/processer/TestUtils.kt +++ b/apps/processer/src/test/kotlin/no/iktdev/mediaprocessing/processer/TestUtils.kt @@ -4,6 +4,7 @@ import no.iktdev.eventi.models.Event import no.iktdev.eventi.models.Task import no.iktdev.mediaprocessing.processer.config.DirectoryProperties import no.iktdev.mediaprocessing.processer.config.ExecutablesConfig +import no.iktdev.mediaprocessing.processer.config.FileUtil import no.iktdev.mediaprocessing.shared.common.configs.MediaPaths import org.junit.jupiter.api.Assertions.assertEquals diff --git a/apps/processer/src/test/resources/application.yml b/apps/processer/src/test/resources/application.yml index 40c39f35..f4ffbf66 100644 --- a/apps/processer/src/test/resources/application.yml +++ b/apps/processer/src/test/resources/application.yml @@ -41,9 +41,9 @@ executables: ffmpeg: ffmpeg processer: - coordinator-url: ${COORDINATOR_URL:http://coordinator:8080} + coordinator-url: http://coordinator:8080 coordinator-ping-on-startup: false - allow-overwrite: ${ALLOW_OVERWRITE:false} + allow-overwrite: false directories: - logs: build/test-logs \ No newline at end of file + logs: build/test-logs diff --git a/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/dto/file/File.kt b/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/dto/file/File.kt index f470f3bf..55424afd 100644 --- a/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/dto/file/File.kt +++ b/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/dto/file/File.kt @@ -50,6 +50,7 @@ enum class MediaActionType(val label: String) { Encode("Encode"), ExtractSubtitles("Extract Subtitles"), ConvertSubtitle("Convert Subtitle"), + MetadataSearch("Search for metadata"), } enum class FileActionType(val label: String) { diff --git a/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/service/CoordinatorClient.kt b/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/service/CoordinatorClient.kt index ff3076e7..9899a62f 100644 --- a/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/service/CoordinatorClient.kt +++ b/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/service/CoordinatorClient.kt @@ -178,11 +178,13 @@ class CoordinatorClient( MediaActionType.All -> setOf( OperationType.Encode, OperationType.ExtractSubtitles, - OperationType.ConvertSubtitles + OperationType.ConvertSubtitles, + OperationType.MetadataSearch ) MediaActionType.Encode -> setOf(OperationType.Encode) MediaActionType.ExtractSubtitles -> setOf(OperationType.ExtractSubtitles) MediaActionType.ConvertSubtitle -> setOf(OperationType.ConvertSubtitles) + MediaActionType.MetadataSearch -> setOf(OperationType.MetadataSearch) } diff --git a/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/service/ExplorerService.kt b/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/service/ExplorerService.kt index d2ab1420..d015f145 100644 --- a/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/service/ExplorerService.kt +++ b/apps/ui/src/main/kotlin/no/iktdev/mediaprocessing/ui/service/ExplorerService.kt @@ -73,7 +73,8 @@ class ExplorerService( return listOf( MediaAction(MediaActionType.All), MediaAction(MediaActionType.Encode), - MediaAction(MediaActionType.ExtractSubtitles) + MediaAction(MediaActionType.ExtractSubtitles), + MediaAction(MediaActionType.MetadataSearch), ) } diff --git a/apps/ui/web/src/types/files.ts b/apps/ui/web/src/types/files.ts index 72e816a4..3e49fde1 100644 --- a/apps/ui/web/src/types/files.ts +++ b/apps/ui/web/src/types/files.ts @@ -9,8 +9,9 @@ export type MediaActionType = | "Encode" | "ExtractSubtitles" | "ConvertSubtitle" + | -export interface MediaAction { + export interface MediaAction { id: MediaActionType title: string } diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/event_task_contract/events/StartProcessingEvent.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/event_task_contract/events/StartProcessingEvent.kt index eb68b459..06f3a43f 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/event_task_contract/events/StartProcessingEvent.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/event_task_contract/events/StartProcessingEvent.kt @@ -23,5 +23,5 @@ enum class OperationType { ExtractSubtitles, Encode, ConvertSubtitles, - Metadata + MetadataSearch } \ No newline at end of file diff --git a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/projection/CollectProjection.kt b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/projection/CollectProjection.kt index 163ffb79..5ea08c2c 100644 --- a/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/projection/CollectProjection.kt +++ b/shared/common/src/main/kotlin/no/iktdev/mediaprocessing/shared/common/projection/CollectProjection.kt @@ -56,7 +56,7 @@ class CollectProjection(val events: List) { OperationType.Encode to encodeTaskStatus, OperationType.ExtractSubtitles to extreactTaskStatus, OperationType.ConvertSubtitles to convertTaskStatus, - OperationType.Metadata to metadataTaskStatus, + OperationType.MetadataSearch to metadataTaskStatus, ) return required.map { statusMap[it] ?: TaskStatus.NotInitiated }