Fixing F-droid flavor
This commit is contained in:
@@ -1,8 +1,8 @@
|
|||||||
package com.vitorpamplona.amethyst.ui.actions
|
package com.vitorpamplona.amethyst.ui.actions
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Immutable
|
||||||
import com.vitorpamplona.amethyst.model.Note
|
import com.vitorpamplona.amethyst.model.Note
|
||||||
import com.vitorpamplona.amethyst.model.User
|
import com.vitorpamplona.amethyst.model.User
|
||||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
|
|
||||||
import com.vitorpamplona.quartz.crypto.KeyPair
|
import com.vitorpamplona.quartz.crypto.KeyPair
|
||||||
import com.vitorpamplona.quartz.encoders.HexKey
|
import com.vitorpamplona.quartz.encoders.HexKey
|
||||||
import com.vitorpamplona.quartz.encoders.Nip19
|
import com.vitorpamplona.quartz.encoders.Nip19
|
||||||
@@ -14,7 +14,7 @@ class NewMessageTagger(
|
|||||||
var mentions: List<User>? = null,
|
var mentions: List<User>? = null,
|
||||||
var replyTos: List<Note>? = null,
|
var replyTos: List<Note>? = null,
|
||||||
var channelHex: String? = null,
|
var channelHex: String? = null,
|
||||||
var accountViewModel: AccountViewModel
|
var dao: Dao
|
||||||
) {
|
) {
|
||||||
|
|
||||||
val directMentions = mutableSetOf<HexKey>()
|
val directMentions = mutableSetOf<HexKey>()
|
||||||
@@ -48,13 +48,13 @@ class NewMessageTagger(
|
|||||||
val results = parseDirtyWordForKey(word)
|
val results = parseDirtyWordForKey(word)
|
||||||
|
|
||||||
if (results?.key?.type == Nip19.Type.USER) {
|
if (results?.key?.type == Nip19.Type.USER) {
|
||||||
addUserToMentions(accountViewModel.getOrCreateUser(results.key.hex))
|
addUserToMentions(dao.getOrCreateUser(results.key.hex))
|
||||||
} else if (results?.key?.type == Nip19.Type.NOTE) {
|
} else if (results?.key?.type == Nip19.Type.NOTE) {
|
||||||
addNoteToReplyTos(accountViewModel.getOrCreateNote(results.key.hex))
|
addNoteToReplyTos(dao.getOrCreateNote(results.key.hex))
|
||||||
} else if (results?.key?.type == Nip19.Type.EVENT) {
|
} else if (results?.key?.type == Nip19.Type.EVENT) {
|
||||||
addNoteToReplyTos(accountViewModel.getOrCreateNote(results.key.hex))
|
addNoteToReplyTos(dao.getOrCreateNote(results.key.hex))
|
||||||
} else if (results?.key?.type == Nip19.Type.ADDRESS) {
|
} else if (results?.key?.type == Nip19.Type.ADDRESS) {
|
||||||
val note = accountViewModel.checkGetOrCreateAddressableNote(results.key.hex)
|
val note = dao.checkGetOrCreateAddressableNote(results.key.hex)
|
||||||
if (note != null) {
|
if (note != null) {
|
||||||
addNoteToReplyTos(note)
|
addNoteToReplyTos(note)
|
||||||
}
|
}
|
||||||
@@ -67,19 +67,19 @@ class NewMessageTagger(
|
|||||||
paragraph.split(' ').map { word: String ->
|
paragraph.split(' ').map { word: String ->
|
||||||
val results = parseDirtyWordForKey(word)
|
val results = parseDirtyWordForKey(word)
|
||||||
if (results?.key?.type == Nip19.Type.USER) {
|
if (results?.key?.type == Nip19.Type.USER) {
|
||||||
val user = accountViewModel.getOrCreateUser(results.key.hex)
|
val user = dao.getOrCreateUser(results.key.hex)
|
||||||
|
|
||||||
"nostr:${user.pubkeyNpub()}${results.restOfWord}"
|
"nostr:${user.pubkeyNpub()}${results.restOfWord}"
|
||||||
} else if (results?.key?.type == Nip19.Type.NOTE) {
|
} else if (results?.key?.type == Nip19.Type.NOTE) {
|
||||||
val note = accountViewModel.getOrCreateNote(results.key.hex)
|
val note = dao.getOrCreateNote(results.key.hex)
|
||||||
|
|
||||||
"nostr:${note.toNEvent()}${results.restOfWord}"
|
"nostr:${note.toNEvent()}${results.restOfWord}"
|
||||||
} else if (results?.key?.type == Nip19.Type.EVENT) {
|
} else if (results?.key?.type == Nip19.Type.EVENT) {
|
||||||
val note = accountViewModel.getOrCreateNote(results.key.hex)
|
val note = dao.getOrCreateNote(results.key.hex)
|
||||||
|
|
||||||
"nostr:${note.toNEvent()}${results.restOfWord}"
|
"nostr:${note.toNEvent()}${results.restOfWord}"
|
||||||
} else if (results?.key?.type == Nip19.Type.ADDRESS) {
|
} else if (results?.key?.type == Nip19.Type.ADDRESS) {
|
||||||
val note = accountViewModel.checkGetOrCreateAddressableNote(results.key.hex)
|
val note = dao.checkGetOrCreateAddressableNote(results.key.hex)
|
||||||
if (note != null) {
|
if (note != null) {
|
||||||
"nostr:${note.idNote()}${results.restOfWord}"
|
"nostr:${note.idNote()}${results.restOfWord}"
|
||||||
} else {
|
} else {
|
||||||
@@ -92,6 +92,7 @@ class NewMessageTagger(
|
|||||||
}.joinToString("\n")
|
}.joinToString("\n")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Immutable
|
||||||
data class DirtyKeyInfo(val key: Nip19.Return, val restOfWord: String)
|
data class DirtyKeyInfo(val key: Nip19.Return, val restOfWord: String)
|
||||||
|
|
||||||
fun parseDirtyWordForKey(mightBeAKey: String): DirtyKeyInfo? {
|
fun parseDirtyWordForKey(mightBeAKey: String): DirtyKeyInfo? {
|
||||||
@@ -156,3 +157,9 @@ class NewMessageTagger(
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
interface Dao {
|
||||||
|
suspend fun getOrCreateUser(hex: String): User
|
||||||
|
suspend fun getOrCreateNote(hex: String): Note
|
||||||
|
suspend fun checkGetOrCreateAddressableNote(hex: String): Note?
|
||||||
|
}
|
||||||
|
|||||||
@@ -0,0 +1,11 @@
|
|||||||
|
package com.vitorpamplona.amethyst.ui.components
|
||||||
|
|
||||||
|
import androidx.compose.runtime.Immutable
|
||||||
|
|
||||||
|
@Immutable
|
||||||
|
data class TranslationConfig(
|
||||||
|
val result: String?,
|
||||||
|
val sourceLang: String?,
|
||||||
|
val targetLang: String?,
|
||||||
|
val showOriginal: Boolean
|
||||||
|
)
|
||||||
@@ -27,6 +27,7 @@ import com.vitorpamplona.amethyst.service.OnlineChecker
|
|||||||
import com.vitorpamplona.amethyst.service.ZapPaymentHandler
|
import com.vitorpamplona.amethyst.service.ZapPaymentHandler
|
||||||
import com.vitorpamplona.amethyst.service.checkNotInMainThread
|
import com.vitorpamplona.amethyst.service.checkNotInMainThread
|
||||||
import com.vitorpamplona.amethyst.service.lang.LanguageTranslatorService
|
import com.vitorpamplona.amethyst.service.lang.LanguageTranslatorService
|
||||||
|
import com.vitorpamplona.amethyst.ui.actions.Dao
|
||||||
import com.vitorpamplona.amethyst.ui.components.TranslationConfig
|
import com.vitorpamplona.amethyst.ui.components.TranslationConfig
|
||||||
import com.vitorpamplona.amethyst.ui.components.UrlPreviewState
|
import com.vitorpamplona.amethyst.ui.components.UrlPreviewState
|
||||||
import com.vitorpamplona.amethyst.ui.note.ZapAmountCommentNotification
|
import com.vitorpamplona.amethyst.ui.note.ZapAmountCommentNotification
|
||||||
@@ -55,7 +56,7 @@ import java.math.BigDecimal
|
|||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
|
||||||
@Stable
|
@Stable
|
||||||
class AccountViewModel(val account: Account) : ViewModel() {
|
class AccountViewModel(val account: Account) : ViewModel(), Dao {
|
||||||
val accountLiveData: LiveData<AccountState> = account.live.map { it }
|
val accountLiveData: LiveData<AccountState> = account.live.map { it }
|
||||||
val accountLanguagesLiveData: LiveData<AccountState> = account.liveLanguages.map { it }
|
val accountLanguagesLiveData: LiveData<AccountState> = account.liveLanguages.map { it }
|
||||||
val accountLastReadLiveData: LiveData<AccountState> = account.liveLastRead.map { it }
|
val accountLastReadLiveData: LiveData<AccountState> = account.liveLastRead.map { it }
|
||||||
@@ -593,7 +594,7 @@ class AccountViewModel(val account: Account) : ViewModel() {
|
|||||||
return LocalCache.checkGetOrCreateUser(key)
|
return LocalCache.checkGetOrCreateUser(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun getOrCreateUser(key: HexKey): User {
|
override suspend fun getOrCreateUser(key: HexKey): User {
|
||||||
return LocalCache.getOrCreateUser(key)
|
return LocalCache.getOrCreateUser(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -611,7 +612,7 @@ class AccountViewModel(val account: Account) : ViewModel() {
|
|||||||
return LocalCache.checkGetOrCreateNote(key)
|
return LocalCache.checkGetOrCreateNote(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun getOrCreateNote(key: HexKey): Note {
|
override suspend fun getOrCreateNote(key: HexKey): Note {
|
||||||
return LocalCache.getOrCreateNote(key)
|
return LocalCache.getOrCreateNote(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -625,7 +626,7 @@ class AccountViewModel(val account: Account) : ViewModel() {
|
|||||||
return LocalCache.getNoteIfExists(hex)
|
return LocalCache.getNoteIfExists(hex)
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun checkGetOrCreateAddressableNote(key: HexKey): AddressableNote? {
|
override suspend fun checkGetOrCreateAddressableNote(key: HexKey): AddressableNote? {
|
||||||
return LocalCache.checkGetOrCreateAddressableNote(key)
|
return LocalCache.checkGetOrCreateAddressableNote(key)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -269,7 +269,7 @@ fun ChannelScreen(
|
|||||||
mentions = listOfNotNull(replyTo.value?.author),
|
mentions = listOfNotNull(replyTo.value?.author),
|
||||||
replyTos = listOfNotNull(replyTo.value),
|
replyTos = listOfNotNull(replyTo.value),
|
||||||
channelHex = channel.idHex,
|
channelHex = channel.idHex,
|
||||||
accountViewModel = accountViewModel
|
dao = accountViewModel
|
||||||
)
|
)
|
||||||
tagger.run()
|
tagger.run()
|
||||||
if (channel is PublicChatChannel) {
|
if (channel is PublicChatChannel) {
|
||||||
|
|||||||
-9
@@ -14,7 +14,6 @@ import androidx.compose.material.Text
|
|||||||
import androidx.compose.material.icons.Icons
|
import androidx.compose.material.icons.Icons
|
||||||
import androidx.compose.material.icons.filled.Check
|
import androidx.compose.material.icons.filled.Check
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.runtime.Immutable
|
|
||||||
import androidx.compose.runtime.LaunchedEffect
|
import androidx.compose.runtime.LaunchedEffect
|
||||||
import androidx.compose.runtime.MutableState
|
import androidx.compose.runtime.MutableState
|
||||||
import androidx.compose.runtime.derivedStateOf
|
import androidx.compose.runtime.derivedStateOf
|
||||||
@@ -41,14 +40,6 @@ import kotlinx.coroutines.Dispatchers
|
|||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
import java.util.Locale
|
import java.util.Locale
|
||||||
|
|
||||||
@Immutable
|
|
||||||
data class TranslationConfig(
|
|
||||||
val result: String?,
|
|
||||||
val sourceLang: String?,
|
|
||||||
val targetLang: String?,
|
|
||||||
val showOriginal: Boolean
|
|
||||||
)
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun TranslatableRichTextViewer(
|
fun TranslatableRichTextViewer(
|
||||||
content: String,
|
content: String,
|
||||||
|
|||||||
@@ -1,5 +1,8 @@
|
|||||||
package com.vitorpamplona.amethyst
|
package com.vitorpamplona.amethyst
|
||||||
|
|
||||||
|
import com.vitorpamplona.amethyst.model.Note
|
||||||
|
import com.vitorpamplona.amethyst.model.User
|
||||||
|
import com.vitorpamplona.amethyst.ui.actions.Dao
|
||||||
import com.vitorpamplona.amethyst.ui.actions.NewMessageTagger
|
import com.vitorpamplona.amethyst.ui.actions.NewMessageTagger
|
||||||
import com.vitorpamplona.quartz.encoders.Nip19
|
import com.vitorpamplona.quartz.encoders.Nip19
|
||||||
import org.junit.Assert.assertEquals
|
import org.junit.Assert.assertEquals
|
||||||
@@ -11,9 +14,23 @@ import org.junit.Test
|
|||||||
* See [testing documentation](http://d.android.com/tools/testing).
|
* See [testing documentation](http://d.android.com/tools/testing).
|
||||||
*/
|
*/
|
||||||
class NewMessageTaggerKeyParseTest {
|
class NewMessageTaggerKeyParseTest {
|
||||||
|
val dao: Dao = object : Dao {
|
||||||
|
override suspend fun getOrCreateUser(hex: String): User {
|
||||||
|
return User(hex)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getOrCreateNote(hex: String): Note {
|
||||||
|
return Note(hex)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun checkGetOrCreateAddressableNote(hex: String): Note? {
|
||||||
|
return Note(hex)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun keyParseTestNote() {
|
fun keyParseTestNote() {
|
||||||
val result = NewMessageTagger(message = "").parseDirtyWordForKey("note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn")
|
val result = NewMessageTagger(message = "", dao = dao).parseDirtyWordForKey("note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn")
|
||||||
assertEquals(Nip19.Type.NOTE, result?.key?.type)
|
assertEquals(Nip19.Type.NOTE, result?.key?.type)
|
||||||
assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex)
|
assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex)
|
||||||
assertEquals("", result?.restOfWord)
|
assertEquals("", result?.restOfWord)
|
||||||
@@ -21,7 +38,7 @@ class NewMessageTaggerKeyParseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun keyParseTestPub() {
|
fun keyParseTestPub() {
|
||||||
val result = NewMessageTagger(message = "").parseDirtyWordForKey("npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z")
|
val result = NewMessageTagger(message = "", dao = dao).parseDirtyWordForKey("npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z")
|
||||||
assertEquals(Nip19.Type.USER, result?.key?.type)
|
assertEquals(Nip19.Type.USER, result?.key?.type)
|
||||||
assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex)
|
assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex)
|
||||||
assertEquals("", result?.restOfWord)
|
assertEquals("", result?.restOfWord)
|
||||||
@@ -29,7 +46,7 @@ class NewMessageTaggerKeyParseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun keyParseTestNoteWithExtraChars() {
|
fun keyParseTestNoteWithExtraChars() {
|
||||||
val result = NewMessageTagger(message = "").parseDirtyWordForKey("note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,")
|
val result = NewMessageTagger(message = "", dao = dao).parseDirtyWordForKey("note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,")
|
||||||
assertEquals(Nip19.Type.NOTE, result?.key?.type)
|
assertEquals(Nip19.Type.NOTE, result?.key?.type)
|
||||||
assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex)
|
assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex)
|
||||||
assertEquals(",", result?.restOfWord)
|
assertEquals(",", result?.restOfWord)
|
||||||
@@ -37,7 +54,7 @@ class NewMessageTaggerKeyParseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun keyParseTestPubWithExtraChars() {
|
fun keyParseTestPubWithExtraChars() {
|
||||||
val result = NewMessageTagger(message = "").parseDirtyWordForKey("npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,")
|
val result = NewMessageTagger(message = "", dao = dao).parseDirtyWordForKey("npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,")
|
||||||
assertEquals(Nip19.Type.USER, result?.key?.type)
|
assertEquals(Nip19.Type.USER, result?.key?.type)
|
||||||
assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex)
|
assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex)
|
||||||
assertEquals(",", result?.restOfWord)
|
assertEquals(",", result?.restOfWord)
|
||||||
@@ -45,7 +62,7 @@ class NewMessageTaggerKeyParseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun keyParseTestNoteWithExtraCharsAndAt() {
|
fun keyParseTestNoteWithExtraCharsAndAt() {
|
||||||
val result = NewMessageTagger(message = "").parseDirtyWordForKey("@note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,")
|
val result = NewMessageTagger(message = "", dao = dao).parseDirtyWordForKey("@note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,")
|
||||||
assertEquals(Nip19.Type.NOTE, result?.key?.type)
|
assertEquals(Nip19.Type.NOTE, result?.key?.type)
|
||||||
assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex)
|
assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex)
|
||||||
assertEquals(",", result?.restOfWord)
|
assertEquals(",", result?.restOfWord)
|
||||||
@@ -53,7 +70,7 @@ class NewMessageTaggerKeyParseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun keyParseTestPubWithExtraCharsAndAt() {
|
fun keyParseTestPubWithExtraCharsAndAt() {
|
||||||
val result = NewMessageTagger(message = "").parseDirtyWordForKey("@npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,")
|
val result = NewMessageTagger(message = "", dao = dao).parseDirtyWordForKey("@npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,")
|
||||||
assertEquals(Nip19.Type.USER, result?.key?.type)
|
assertEquals(Nip19.Type.USER, result?.key?.type)
|
||||||
assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex)
|
assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex)
|
||||||
assertEquals(",", result?.restOfWord)
|
assertEquals(",", result?.restOfWord)
|
||||||
@@ -61,7 +78,7 @@ class NewMessageTaggerKeyParseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun keyParseTestNoteWithExtraCharsAndNostrPrefix() {
|
fun keyParseTestNoteWithExtraCharsAndNostrPrefix() {
|
||||||
val result = NewMessageTagger(message = "").parseDirtyWordForKey("nostr:note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,")
|
val result = NewMessageTagger(message = "", dao = dao).parseDirtyWordForKey("nostr:note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,")
|
||||||
assertEquals(Nip19.Type.NOTE, result?.key?.type)
|
assertEquals(Nip19.Type.NOTE, result?.key?.type)
|
||||||
assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex)
|
assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex)
|
||||||
assertEquals(",", result?.restOfWord)
|
assertEquals(",", result?.restOfWord)
|
||||||
@@ -69,7 +86,7 @@ class NewMessageTaggerKeyParseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun keyParseTestPubWithExtraCharsAndNostrPrefix() {
|
fun keyParseTestPubWithExtraCharsAndNostrPrefix() {
|
||||||
val result = NewMessageTagger(message = "").parseDirtyWordForKey("nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,")
|
val result = NewMessageTagger(message = "", dao = dao).parseDirtyWordForKey("nostr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,")
|
||||||
assertEquals(Nip19.Type.USER, result?.key?.type)
|
assertEquals(Nip19.Type.USER, result?.key?.type)
|
||||||
assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex)
|
assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex)
|
||||||
assertEquals(",", result?.restOfWord)
|
assertEquals(",", result?.restOfWord)
|
||||||
@@ -77,7 +94,7 @@ class NewMessageTaggerKeyParseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun keyParseTestUppercaseNoteWithExtraCharsAndNostrPrefix() {
|
fun keyParseTestUppercaseNoteWithExtraCharsAndNostrPrefix() {
|
||||||
val result = NewMessageTagger(message = "").parseDirtyWordForKey("Nostr:note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,")
|
val result = NewMessageTagger(message = "", dao = dao).parseDirtyWordForKey("Nostr:note1z5e2m0smx6d7e2d0zaq8d3rnd7httm6j0uf8tf90yqqjrs842czshwtkmn,")
|
||||||
assertEquals(Nip19.Type.NOTE, result?.key?.type)
|
assertEquals(Nip19.Type.NOTE, result?.key?.type)
|
||||||
assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex)
|
assertEquals("1532adbe1b369beca9af174076c4736faeb5ef527f1275a4af200121c0f55605", result?.key?.hex)
|
||||||
assertEquals(",", result?.restOfWord)
|
assertEquals(",", result?.restOfWord)
|
||||||
@@ -85,7 +102,7 @@ class NewMessageTaggerKeyParseTest {
|
|||||||
|
|
||||||
@Test
|
@Test
|
||||||
fun keyParseTestUppercasePubWithExtraCharsAndNostrPrefix() {
|
fun keyParseTestUppercasePubWithExtraCharsAndNostrPrefix() {
|
||||||
val result = NewMessageTagger(message = "").parseDirtyWordForKey("nOstr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,")
|
val result = NewMessageTagger(message = "", dao = dao).parseDirtyWordForKey("nOstr:npub1gcxzte5zlkncx26j68ez60fzkvtkm9e0vrwdcvsjakxf9mu9qewqlfnj5z,")
|
||||||
assertEquals(Nip19.Type.USER, result?.key?.type)
|
assertEquals(Nip19.Type.USER, result?.key?.type)
|
||||||
assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex)
|
assertEquals("460c25e682fda7832b52d1f22d3d22b3176d972f60dcdc3212ed8c92ef85065c", result?.key?.hex)
|
||||||
assertEquals(",", result?.restOfWord)
|
assertEquals(",", result?.restOfWord)
|
||||||
|
|||||||
Reference in New Issue
Block a user