diff --git a/Writerside/d.tree b/Writerside/d.tree index 08b9a04..467e478 100644 --- a/Writerside/d.tree +++ b/Writerside/d.tree @@ -4,7 +4,7 @@ + start-page="docthor.md"> - + \ No newline at end of file diff --git a/Writerside/topics/starter-topic.md b/Writerside/topics/docthor.md similarity index 100% rename from Writerside/topics/starter-topic.md rename to Writerside/topics/docthor.md diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 93e8fc8..9762148 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -4,6 +4,7 @@ plugins { dependencies { implementation(project(":libraries:tfidf")) + implementation(project(":libraries:tui")) } application { diff --git a/app/src/main/kotlin/docthor/app/App.kt b/app/src/main/kotlin/docthor/app/App.kt index 1837084..6b6e78e 100644 --- a/app/src/main/kotlin/docthor/app/App.kt +++ b/app/src/main/kotlin/docthor/app/App.kt @@ -7,15 +7,12 @@ import com.github.ajalt.clikt.parameters.options.required import com.github.ajalt.clikt.parameters.types.enum import com.github.ajalt.clikt.parameters.types.file import de.itkl.core_api.coreApiModule -import de.itkl.core_api.interfaces.ProgressBarFactory import de.itkl.textprocessing.textProcessingModule import de.itkl.tfidf.Language -import de.itkl.tfidf.TerminalProgressBarFactory -//import de.itkl.tfidf.TfIdf import de.itkl.tfidf.TfIdfPipeline +import de.itkl.tui.tuiModule import kotlinx.coroutines.runBlocking import org.koin.core.context.startKoin -import org.koin.dsl.module class ComputeIdf : CliktCommand() { private val corpus by option(help = "corpus") @@ -36,11 +33,7 @@ fun main(args: Array) { modules( coreApiModule, textProcessingModule, - module { - single { - TerminalProgressBarFactory() - } - }) + tuiModule) ComputeIdf().main(args) } } diff --git a/libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/FileResource.kt b/libraries/core-api/src/main/kotlin/de/itkl/core_api/implementation/FileResource.kt similarity index 94% rename from libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/FileResource.kt rename to libraries/core-api/src/main/kotlin/de/itkl/core_api/implementation/FileResource.kt index 64bb013..16c871f 100644 --- a/libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/FileResource.kt +++ b/libraries/core-api/src/main/kotlin/de/itkl/core_api/implementation/FileResource.kt @@ -1,4 +1,4 @@ -package de.itkl.fileprocessing +package de.itkl.core_api.implementation import de.itkl.core_api.interfaces.AbstractResource import io.ktor.http.* diff --git a/libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/ProgressInputStream.kt b/libraries/core-api/src/main/kotlin/de/itkl/core_api/implementation/ProgressInputStream.kt similarity index 96% rename from libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/ProgressInputStream.kt rename to libraries/core-api/src/main/kotlin/de/itkl/core_api/implementation/ProgressInputStream.kt index 2d469dc..857227c 100644 --- a/libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/ProgressInputStream.kt +++ b/libraries/core-api/src/main/kotlin/de/itkl/core_api/implementation/ProgressInputStream.kt @@ -1,4 +1,4 @@ -package de.itkl.fileprocessing +package de.itkl.core_api.implementation import de.itkl.core_api.interfaces.ProgressBar import java.io.InputStream diff --git a/libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/Resource.kt b/libraries/core-api/src/main/kotlin/de/itkl/core_api/implementation/ProgressResource.kt similarity index 81% rename from libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/Resource.kt rename to libraries/core-api/src/main/kotlin/de/itkl/core_api/implementation/ProgressResource.kt index 2d2b6b8..6b5f469 100644 --- a/libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/Resource.kt +++ b/libraries/core-api/src/main/kotlin/de/itkl/core_api/implementation/ProgressResource.kt @@ -1,5 +1,6 @@ -package de.itkl.fileprocessing +package de.itkl.core_api.implementation +import de.itkl.core_api.implementation.ProgressInputStream import de.itkl.core_api.interfaces.ProgressBarFactory import de.itkl.core_api.interfaces.Resource import java.io.InputStream diff --git a/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/Resource.kt b/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/Resource.kt index 400cefb..9ca71e9 100644 --- a/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/Resource.kt +++ b/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/Resource.kt @@ -7,7 +7,7 @@ import java.io.File import java.io.InputStream import java.nio.file.Path -interface Resource : KoinComponent { +interface Resource { val filename: String val contentType: ContentType // TODO: Find a better method to avoid those nulls. Maybe subtyping the interface diff --git a/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/ResourceFactory.kt b/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/ResourceFactory.kt new file mode 100644 index 0000000..643e2cf --- /dev/null +++ b/libraries/core-api/src/main/kotlin/de/itkl/core_api/interfaces/ResourceFactory.kt @@ -0,0 +1,16 @@ +package de.itkl.core_api.interfaces + +import de.itkl.core_api.implementation.FileResource +import de.itkl.core_api.implementation.ProgressResource +import org.koin.core.component.KoinComponent +import org.koin.core.component.inject +import java.io.File + +class ResourceFactory : KoinComponent { + + private val progressBarFactory by inject() + fun file(file: File): Resource { + val resource = FileResource(file) + return ProgressResource(resource, progressBarFactory) + } +} \ No newline at end of file diff --git a/libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/ProcessingPipeline.kt b/libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/ProcessingPipeline.kt index f62aa8f..af2a043 100644 --- a/libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/ProcessingPipeline.kt +++ b/libraries/fileprocessing/src/main/kotlin/de/itkl/fileprocessing/ProcessingPipeline.kt @@ -1,5 +1,7 @@ package de.itkl.fileprocessing +import de.itkl.core_api.implementation.FileResource +import de.itkl.core_api.implementation.ProgressResource import de.itkl.core_api.interfaces.FileProcessor import de.itkl.core_api.interfaces.ProgressBarFactory import io.github.oshai.kotlinlogging.KotlinLogging diff --git a/libraries/tui/src/main/kotlin/de/itkl/tui/implementation/TerminalProgressBar.kt b/libraries/tui/src/main/kotlin/de/itkl/tui/implementation/TerminalProgressBar.kt deleted file mode 100644 index 283af47..0000000 --- a/libraries/tui/src/main/kotlin/de/itkl/tui/implementation/TerminalProgressBar.kt +++ /dev/null @@ -1,10 +0,0 @@ -package de.itkl.tui.implementation - -import de.itkl.core_api.interfaces.ResourceReadDecorator -import java.io.InputStream - -class TerminalProgressBar : ResourceReadDecorator { - override fun decorate(length: Long, inputStream: InputStream): InputStream { - TODO("Not yet implemented") - } -} \ No newline at end of file diff --git a/libraries/tfidf/src/main/kotlin/de/itkl/tfidf/TerminalProgressBarFactory.kt b/libraries/tui/src/main/kotlin/de/itkl/tui/implementation/TerminalProgressBarFactory.kt similarity index 97% rename from libraries/tfidf/src/main/kotlin/de/itkl/tfidf/TerminalProgressBarFactory.kt rename to libraries/tui/src/main/kotlin/de/itkl/tui/implementation/TerminalProgressBarFactory.kt index 9a823d3..915189a 100644 --- a/libraries/tfidf/src/main/kotlin/de/itkl/tfidf/TerminalProgressBarFactory.kt +++ b/libraries/tui/src/main/kotlin/de/itkl/tui/implementation/TerminalProgressBarFactory.kt @@ -1,4 +1,4 @@ -package de.itkl.tfidf +package de.itkl.tui.implementation import com.github.ajalt.mordant.animation.ProgressAnimation import com.github.ajalt.mordant.animation.progressAnimation diff --git a/libraries/tui/src/main/kotlin/de/itkl/tui/tuiModule.kt b/libraries/tui/src/main/kotlin/de/itkl/tui/tuiModule.kt index 96dc809..829fb1c 100644 --- a/libraries/tui/src/main/kotlin/de/itkl/tui/tuiModule.kt +++ b/libraries/tui/src/main/kotlin/de/itkl/tui/tuiModule.kt @@ -1,8 +1,14 @@ package de.itkl.tui +import de.itkl.core_api.interfaces.ProgressBarFactory +import de.itkl.tui.implementation.TerminalProgressBarFactory import org.koin.dsl.module /** * Add terminal ui capabilities */ -val tuiModule = module { } \ No newline at end of file +val tuiModule = module { + single { + TerminalProgressBarFactory() + } +} \ No newline at end of file