File name fix

This commit is contained in:
Alexander Nozik 2023-09-03 20:48:29 +03:00
parent 46e3fb966c
commit 209a6db5fc

View File

@ -56,6 +56,7 @@ internal suspend fun SpaceClient.extractFile(
} }
private val imageRegex = """!\[(?<alt>.*)]\(/d/(?<id>.*)\?f=0( "(?<name>.*)")?\)""".toRegex() private val imageRegex = """!\[(?<alt>.*)]\(/d/(?<id>.*)\?f=0( "(?<name>.*)")?\)""".toRegex()
private val fileNameRegex = "\\W+".toRegex()
/** /**
* Download single Space document * Download single Space document
@ -90,13 +91,14 @@ internal suspend fun SpaceClient.downloadDocument(
val id = it.groups["id"]?.value ?: error("Unexpected reference format: ${it.value}") val id = it.groups["id"]?.value ?: error("Unexpected reference format: ${it.value}")
val alt = it.groups["alt"]?.value?.ifBlank { null } val alt = it.groups["alt"]?.value?.ifBlank { null }
val name = it.groups["name"]?.value?.ifBlank { null } val name = it.groups["name"]?.value?.ifBlank { null }
val imageName = name?.let { "$id-$name" } ?: alt?.let { "$id-$alt" } ?: id val imageName = (name?.let { "$id-$name" } ?: alt?.let { "$id-$alt" } ?: id)
.replace(fileNameRegex, "_")
val imageFile = imageDirectory.resolve(imageName) val imageFile = imageDirectory.resolve(imageName)
logger.info("Downloading image $id as $imageFile") logger.info("Downloading image $id as $imageFile")
launch(Dispatchers.IO) { launch(Dispatchers.IO) {
extractAttachment(imageFile, id) extractAttachment(imageFile, id)
} }
"![${alt?:""}](images/$imageName)" "![${alt ?: ""}](images/$imageName)"
} }
markdownFilePath.writeText(newText, Charsets.UTF_8) markdownFilePath.writeText(newText, Charsets.UTF_8)
} }
@ -131,6 +133,7 @@ internal suspend fun SpaceClient.downloadDocumentFolder(
documents.data.forEach { documents.data.forEach {
val document = projects.documents.getDocument(projectId, it.id) { val document = projects.documents.getDocument(projectId, it.id) {
body() body()
bodyType()
title() title()
id() id()
} }
@ -146,6 +149,7 @@ internal suspend fun SpaceClient.downloadDocumentFolder(
) )
) { ) {
body() body()
bodyType()
title() title()
id() id()
} }