mirror of
https://github.com/permissionlesstech/bitchat-android.git
synced 2026-07-26 18:45:24 +00:00
normalize relay URL
This commit is contained in:
@@ -902,12 +902,15 @@ class NostrGeohashService(
|
|||||||
since = System.currentTimeMillis() - 86400000L // Last 24 hours
|
since = System.currentTimeMillis() - 86400000L // Last 24 hours
|
||||||
)
|
)
|
||||||
|
|
||||||
nostrRelayManager.subscribe(
|
nostrRelayManager.subscribeForGeohash(
|
||||||
|
geohash = channel.channel.geohash,
|
||||||
filter = dmFilter,
|
filter = dmFilter,
|
||||||
id = dmSubId,
|
id = dmSubId,
|
||||||
handler = { giftWrap ->
|
handler = { giftWrap ->
|
||||||
handleGeohashDmEvent(giftWrap, channel.channel.geohash, dmIdentity)
|
handleGeohashDmEvent(giftWrap, channel.channel.geohash, dmIdentity)
|
||||||
}
|
},
|
||||||
|
includeDefaults = true,
|
||||||
|
nRelays = 5
|
||||||
)
|
)
|
||||||
|
|
||||||
Log.i(TAG, "✅ Subscribed to geohash DMs for identity: ${dmIdentity.publicKeyHex.take(16)}...")
|
Log.i(TAG, "✅ Subscribed to geohash DMs for identity: ${dmIdentity.publicKeyHex.take(16)}...")
|
||||||
|
|||||||
@@ -648,7 +648,12 @@ class NostrRelayManager private constructor() {
|
|||||||
val wasProcessed = eventDeduplicator.processEvent(response.event) { event ->
|
val wasProcessed = eventDeduplicator.processEvent(response.event) { event ->
|
||||||
// Only log non-gift-wrap events to reduce noise
|
// Only log non-gift-wrap events to reduce noise
|
||||||
if (event.kind != NostrKind.GIFT_WRAP) {
|
if (event.kind != NostrKind.GIFT_WRAP) {
|
||||||
Log.v(TAG, "📥 Processing new Nostr event (kind: ${event.kind}) from relay: $relayUrl")
|
val originGeo = activeSubscriptions[response.subscriptionId]?.originGeohash
|
||||||
|
if (originGeo != null) {
|
||||||
|
Log.v(TAG, "📥 Processing event (kind=${event.kind}) from relay=$relayUrl geo=$originGeo sub=${response.subscriptionId}")
|
||||||
|
} else {
|
||||||
|
Log.v(TAG, "📥 Processing event (kind=${event.kind}) from relay=$relayUrl sub=${response.subscriptionId}")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// Call handler for new events only
|
// Call handler for new events only
|
||||||
|
|||||||
@@ -43,7 +43,7 @@ object RelayDirectory {
|
|||||||
if (trimmed.lowercase().startsWith("relay url")) continue
|
if (trimmed.lowercase().startsWith("relay url")) continue
|
||||||
val parts = trimmed.split(",")
|
val parts = trimmed.split(",")
|
||||||
if (parts.size < 3) continue
|
if (parts.size < 3) continue
|
||||||
val url = parts[0].trim()
|
val url = normalizeRelayUrl(parts[0].trim())
|
||||||
val lat = parts[1].trim().toDoubleOrNull()
|
val lat = parts[1].trim().toDoubleOrNull()
|
||||||
val lon = parts[2].trim().toDoubleOrNull()
|
val lon = parts[2].trim().toDoubleOrNull()
|
||||||
if (url.isEmpty() || lat == null || lon == null) continue
|
if (url.isEmpty() || lat == null || lon == null) continue
|
||||||
@@ -89,6 +89,12 @@ object RelayDirectory {
|
|||||||
val c = 2 * atan2(sqrt(a), sqrt(1 - a))
|
val c = 2 * atan2(sqrt(a), sqrt(1 - a))
|
||||||
return R * c
|
return R * c
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private fun normalizeRelayUrl(raw: String): String {
|
||||||
|
val trimmed = raw.trim()
|
||||||
|
if (trimmed.isEmpty()) return trimmed
|
||||||
|
return if ("://" in trimmed) trimmed else "wss://$trimmed"
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user