mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-03-17 13:21:50 +01:00
Fixes bug that the room changes after citing a user on NIP-17
This commit is contained in:
parent
583855de4f
commit
3aa370d746
@ -44,14 +44,14 @@ import com.vitorpamplona.amethyst.ui.actions.mediaServers.DEFAULT_MEDIA_SERVERS
|
||||
import com.vitorpamplona.amethyst.ui.actions.uploads.SelectedMedia
|
||||
import com.vitorpamplona.amethyst.ui.components.Split
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.privateDM.send.upload.ChatFileUploadState
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.privateDM.send.upload.ChatFileUploader
|
||||
import com.vitorpamplona.amethyst.ui.screen.loggedIn.chats.utils.ChatFileUploadState
|
||||
import com.vitorpamplona.quartz.nip01Core.core.AddressableEvent
|
||||
import com.vitorpamplona.quartz.nip01Core.tags.hashtags.hashtags
|
||||
import com.vitorpamplona.quartz.nip01Core.tags.references.references
|
||||
import com.vitorpamplona.quartz.nip04Dm.messages.PrivateDmEvent
|
||||
import com.vitorpamplona.quartz.nip10Notes.content.findHashtags
|
||||
import com.vitorpamplona.quartz.nip10Notes.content.findNostrUris
|
||||
import com.vitorpamplona.quartz.nip10Notes.content.findNostrEventUris
|
||||
import com.vitorpamplona.quartz.nip10Notes.content.findURLs
|
||||
import com.vitorpamplona.quartz.nip14Subject.subject
|
||||
import com.vitorpamplona.quartz.nip17Dm.base.BaseDMGroupEvent
|
||||
@ -372,7 +372,7 @@ open class ChatNewMessageViewModel : ViewModel() {
|
||||
ChatMessageEvent.build(message, room.users.map { LocalCache.getOrCreateUser(it).toPTag() }) {
|
||||
hashtags(findHashtags(message))
|
||||
references(findURLs(message))
|
||||
quotes(findNostrUris(message))
|
||||
quotes(findNostrEventUris(message))
|
||||
|
||||
emojis(emojis)
|
||||
imetas(usedAttachments)
|
||||
@ -381,7 +381,7 @@ open class ChatNewMessageViewModel : ViewModel() {
|
||||
ChatMessageEvent.reply(message, replyHint) {
|
||||
hashtags(findHashtags(message))
|
||||
references(findURLs(message))
|
||||
quotes(findNostrUris(message))
|
||||
quotes(findNostrEventUris(message))
|
||||
|
||||
emojis(emojis)
|
||||
imetas(usedAttachments)
|
||||
|
@ -23,3 +23,5 @@ package com.vitorpamplona.quartz.nip10Notes.content
|
||||
import com.vitorpamplona.quartz.nip19Bech32.Nip19Parser
|
||||
|
||||
fun findNostrUris(content: String) = Nip19Parser.parseAll(content)
|
||||
|
||||
fun findNostrEventUris(content: String) = Nip19Parser.parseAllEvents(content)
|
||||
|
@ -53,6 +53,12 @@ object Nip19Parser {
|
||||
Pattern.CASE_INSENSITIVE,
|
||||
)
|
||||
|
||||
val nip19regexEvents: Pattern =
|
||||
Pattern.compile(
|
||||
"(nostr:)?@?(nevent1|naddr1|note1|nrelay1|nembed1)([qpzry9x8gf2tvdw0s3jn54khce6mua7l]+)([\\S]*)",
|
||||
Pattern.CASE_INSENSITIVE,
|
||||
)
|
||||
|
||||
@Immutable
|
||||
data class ParseReturn(
|
||||
val entity: Entity,
|
||||
@ -130,8 +136,11 @@ object Nip19Parser {
|
||||
null
|
||||
}
|
||||
|
||||
fun parseAll(content: String): List<Entity> {
|
||||
val matcher2 = nip19regex.matcher(content)
|
||||
fun parseAll(
|
||||
content: String,
|
||||
regex: Pattern,
|
||||
): List<Entity> {
|
||||
val matcher2 = regex.matcher(content)
|
||||
val returningList = mutableListOf<Entity>()
|
||||
while (matcher2.find()) {
|
||||
val type = matcher2.group(2) // npub1
|
||||
@ -139,7 +148,7 @@ object Nip19Parser {
|
||||
val additionalChars = matcher2.group(4) // additional chars
|
||||
|
||||
if (type != null) {
|
||||
val parsed = Nip19Parser.parseComponents(type, key, additionalChars)?.entity
|
||||
val parsed = parseComponents(type, key, additionalChars)?.entity
|
||||
|
||||
if (parsed != null) {
|
||||
returningList.add(parsed)
|
||||
@ -148,6 +157,10 @@ object Nip19Parser {
|
||||
}
|
||||
return returningList
|
||||
}
|
||||
|
||||
fun parseAll(content: String): List<Entity> = parseAll(content, nip19regex)
|
||||
|
||||
fun parseAllEvents(content: String): List<Entity> = parseAll(content, nip19regexEvents)
|
||||
}
|
||||
|
||||
fun decodePublicKey(key: String): ByteArray =
|
||||
|
Loading…
x
Reference in New Issue
Block a user