Blocks translations of @npub/@note tags in the text.

This commit is contained in:
Vitor Pamplona
2023-03-22 11:24:58 -04:00
parent f0f9726ede
commit 896758121b

View File

@@ -21,7 +21,8 @@ class ResultOrError(
object LanguageTranslatorService { object LanguageTranslatorService {
private val languageIdentification = LanguageIdentification.getClient() private val languageIdentification = LanguageIdentification.getClient()
val lnRegex = Pattern.compile("\\blnbc[a-z0-9]+\\b") val lnRegex = Pattern.compile("\\blnbc[a-z0-9]+\\b", Pattern.CASE_INSENSITIVE)
val tagRegex = Pattern.compile("(nostr:)?@?(nsec1|npub1|nevent1|naddr1|note1|nprofile1|nrelay1)([qpzry9x8gf2tvdw0s3jn54khce6mua7l]+)", Pattern.CASE_INSENSITIVE)
private val translators = private val translators =
object : LruCache<TranslatorOptions, Translator>(10) { object : LruCache<TranslatorOptions, Translator>(10) {
@@ -61,7 +62,7 @@ object LanguageTranslatorService {
return translator.downloadModelIfNeeded().onSuccessTask { return translator.downloadModelIfNeeded().onSuccessTask {
val tasks = mutableListOf<Task<String>>() val tasks = mutableListOf<Task<String>>()
val dict = lnDictionary(text) + urlDictionary(text) val dict = lnDictionary(text) + urlDictionary(text) + tagDictionary(text)
for (paragraph in encodeDictionary(text, dict).split("\n")) { for (paragraph in encodeDictionary(text, dict).split("\n")) {
tasks.add(translator.translate(paragraph)) tasks.add(translator.translate(paragraph))
@@ -94,6 +95,21 @@ object LanguageTranslatorService {
return newText return newText
} }
private fun tagDictionary(text: String): Map<String, String> {
val matcher = tagRegex.matcher(text)
val returningList = mutableMapOf<String, String>()
val counter = 0
while (matcher.find()) {
try {
val tag = matcher.group()
val short = "Amethysttagindexer$counter"
returningList.put(short, tag)
} catch (e: Exception) {
}
}
return returningList
}
private fun lnDictionary(text: String): Map<String, String> { private fun lnDictionary(text: String): Map<String, String> {
val matcher = lnRegex.matcher(text) val matcher = lnRegex.matcher(text)
val returningList = mutableMapOf<String, String>() val returningList = mutableMapOf<String, String>()