fixes non-lowercase schemas on posts
This commit is contained in:
+8
-2
@@ -21,6 +21,8 @@
|
|||||||
package com.vitorpamplona.amethyst.commons.richtext
|
package com.vitorpamplona.amethyst.commons.richtext
|
||||||
|
|
||||||
import androidx.compose.runtime.Stable
|
import androidx.compose.runtime.Stable
|
||||||
|
import com.vitorpamplona.quartz.utils.DualCase
|
||||||
|
import com.vitorpamplona.quartz.utils.startsWithAny
|
||||||
import com.vitorpamplona.quartz.utils.urldetector.Url
|
import com.vitorpamplona.quartz.utils.urldetector.Url
|
||||||
import com.vitorpamplona.quartz.utils.urldetector.detection.UrlDetector
|
import com.vitorpamplona.quartz.utils.urldetector.detection.UrlDetector
|
||||||
|
|
||||||
@@ -33,6 +35,10 @@ class Urls(
|
|||||||
val relayUrls: Set<String> = emptySet(),
|
val relayUrls: Set<String> = emptySet(),
|
||||||
)
|
)
|
||||||
|
|
||||||
|
val websocketScheme = listOf(DualCase("ws"))
|
||||||
|
val nostrScheme = listOf(DualCase("nostr"))
|
||||||
|
val blossomScheme = listOf(DualCase("blossom"))
|
||||||
|
|
||||||
class UrlParser {
|
class UrlParser {
|
||||||
fun Char.isAsciiLetter(): Boolean = (this in 'a'..'z' || this in 'A'..'Z')
|
fun Char.isAsciiLetter(): Boolean = (this in 'a'..'z' || this in 'A'..'Z')
|
||||||
|
|
||||||
@@ -70,9 +76,9 @@ class UrlParser {
|
|||||||
urls.forEach {
|
urls.forEach {
|
||||||
if (it.isValidTopLevelDomain()) {
|
if (it.isValidTopLevelDomain()) {
|
||||||
if (it.wroteWithSchema()) {
|
if (it.wroteWithSchema()) {
|
||||||
if (it.originalUrl.startsWith("nostr")) {
|
if (it.originalUrl.startsWithAny(nostrScheme)) {
|
||||||
bech32.add(it.originalUrl)
|
bech32.add(it.originalUrl)
|
||||||
} else if (it.originalUrl.startsWith("ws")) {
|
} else if (it.originalUrl.startsWithAny(websocketScheme)) {
|
||||||
relays.add(it.originalUrl)
|
relays.add(it.originalUrl)
|
||||||
} else {
|
} else {
|
||||||
completeUrls.add(it.originalUrl)
|
completeUrls.add(it.originalUrl)
|
||||||
|
|||||||
Reference in New Issue
Block a user