From dcef5859b14fa0bdc69b12d9df9b1676628140f5 Mon Sep 17 00:00:00 2001 From: Tuomas Airaksinen Date: Thu, 10 Aug 2023 20:07:00 +0300 Subject: [PATCH] Remove spaces and dots from module ids --- .../net/bible/android/control/page/ClientPageObjects.kt | 3 ++- .../main/java/net/bible/android/misc/ClientPageObjects.kt | 6 +++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/net/bible/android/control/page/ClientPageObjects.kt b/app/src/main/java/net/bible/android/control/page/ClientPageObjects.kt index 58c2098209..344c90a78e 100644 --- a/app/src/main/java/net/bible/android/control/page/ClientPageObjects.kt +++ b/app/src/main/java/net/bible/android/control/page/ClientPageObjects.kt @@ -28,6 +28,7 @@ import net.bible.android.database.bookmarks.BookmarkEntities import net.bible.android.database.bookmarks.KJVA import net.bible.android.database.json import net.bible.android.misc.OsisFragment +import net.bible.android.misc.sanitizeId import net.bible.android.misc.uniqueId import net.bible.android.misc.wrapString import net.bible.service.common.CommonUtils @@ -108,7 +109,7 @@ open class OsisDocument( else json.encodeToString(serializer(), listOf(ordRange.first, ordRange.last)) return mapOf( - "id" to wrapString("${book.initials}-${key.uniqueId}"), + "id" to wrapString(sanitizeId("${book.initials}-${key.uniqueId}")), "type" to wrapString("osis"), "osisFragment" to mapToJson(osisFragment.toHashMap), "ordinalRange" to ordinalRange, diff --git a/db/src/main/java/net/bible/android/misc/ClientPageObjects.kt b/db/src/main/java/net/bible/android/misc/ClientPageObjects.kt index 7af2e08e2a..adb2ade940 100644 --- a/db/src/main/java/net/bible/android/misc/ClientPageObjects.kt +++ b/db/src/main/java/net/bible/android/misc/ClientPageObjects.kt @@ -36,12 +36,16 @@ import org.jdom2.output.support.AbstractXMLOutputProcessor import org.jdom2.output.support.FormatStack import java.io.Writer + +val sanitizeRegex = Regex("""[^\p{L}]""") +fun sanitizeId(s: String): String = s.replace(sanitizeRegex, "_") + // Unique identifier that can be used as ID in DOM val Key.uniqueId: String get() { return if (this is VerseRange) { "ordinal-${start.ordinal}-${end.ordinal}" } else { - this.osisID.replace(".", "-").replace(" ", "_") + sanitizeId(this.osisID) } }