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