mirror of
https://github.com/permissionlesstech/bitchat.git
synced 2026-07-25 13:45:20 +00:00
PeerID 30/n: Update some leftovers + case normalization (#839)
* PeerID 28/n: `ChatViewModel.getShortIDForNoiseKey` * PeerID 29/n: `BLEService` + remove dupe funcs from #823 * `handleFileTransfer` to use PeerID * `sendMessage` and `sendPrivateMessage` * PeerID 30/n: Update some leftovers * `lowercased()` inside PeerID for normalization --------- Co-authored-by: jack <212554440+jackjackbits@users.noreply.github.com>
This commit is contained in:
@@ -1155,7 +1155,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
NotificationService.shared.sendPrivateMessageNotification(
|
||||
from: senderName,
|
||||
message: pm.content,
|
||||
peerID: convKey.id
|
||||
peerID: convKey
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -1876,7 +1876,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
NotificationService.shared.sendPrivateMessageNotification(
|
||||
from: senderName,
|
||||
message: pm.content,
|
||||
peerID: convKey.id
|
||||
peerID: convKey
|
||||
)
|
||||
}
|
||||
|
||||
@@ -1956,8 +1956,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
func isSelfSender(peerID: PeerID?, displayName: String?) -> Bool {
|
||||
guard let peerID else { return false }
|
||||
if peerID == meshService.myPeerID { return true }
|
||||
let lowerPeer = peerID.id.lowercased()
|
||||
guard lowerPeer.hasPrefix("nostr") else { return false }
|
||||
guard peerID.isGeoDM || peerID.isGeoChat else { return false }
|
||||
|
||||
if let mapped = nostrKeyMapping[peerID]?.lowercased(),
|
||||
let gh = currentGeohash,
|
||||
@@ -1967,10 +1966,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
|
||||
if let gh = currentGeohash,
|
||||
let myIdentity = try? idBridge.deriveIdentity(forGeohash: gh) {
|
||||
let myLower = myIdentity.publicKeyHex.lowercased()
|
||||
let shortLen = TransportConfig.nostrShortKeyDisplayLength
|
||||
let shortKey = "nostr:" + myLower.prefix(shortLen)
|
||||
if lowerPeer == shortKey { return true }
|
||||
if peerID == PeerID(nostr: myIdentity.publicKeyHex) { return true }
|
||||
let suffix = myIdentity.publicKeyHex.suffix(4)
|
||||
let expected = (nickname + "#" + suffix).lowercased()
|
||||
if let display = displayName?.lowercased(), display == expected { return true }
|
||||
@@ -2453,7 +2449,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
}
|
||||
|
||||
let targetPeer = selectedPrivateChatPeer
|
||||
let message = enqueueMediaMessage(content: "[voice] \(url.lastPathComponent)", targetPeer: targetPeer?.id)
|
||||
let message = enqueueMediaMessage(content: "[voice] \(url.lastPathComponent)", targetPeer: targetPeer)
|
||||
let messageID = message.id
|
||||
let transferId = makeTransferID(messageID: messageID)
|
||||
|
||||
@@ -2532,7 +2528,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
)
|
||||
guard packet.encode() != nil else { throw MediaSendError.encodingFailed }
|
||||
await MainActor.run {
|
||||
let message = self.enqueueMediaMessage(content: "[image] \(outputURL.lastPathComponent)", targetPeer: targetPeer?.id)
|
||||
let message = self.enqueueMediaMessage(content: "[image] \(outputURL.lastPathComponent)", targetPeer: targetPeer)
|
||||
let messageID = message.id
|
||||
let transferId = self.makeTransferID(messageID: messageID)
|
||||
self.registerTransfer(transferId: transferId, messageID: messageID)
|
||||
@@ -2574,7 +2570,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
}
|
||||
|
||||
@MainActor
|
||||
private func enqueueMediaMessage(content: String, targetPeer: String?) -> BitchatMessage {
|
||||
private func enqueueMediaMessage(content: String, targetPeer: PeerID?) -> BitchatMessage {
|
||||
let timestamp = Date()
|
||||
let message: BitchatMessage
|
||||
|
||||
@@ -2591,7 +2587,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
deliveryStatus: .sending
|
||||
)
|
||||
var chats = privateChats
|
||||
chats[PeerID(str: peerID), default: []].append(message)
|
||||
chats[peerID, default: []].append(message)
|
||||
privateChats = chats
|
||||
trimMessagesIfNeeded()
|
||||
} else {
|
||||
@@ -2604,7 +2600,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
originalSender: nil,
|
||||
isPrivate: false,
|
||||
recipientNickname: nil,
|
||||
senderPeerID: PeerID(str: senderPeerID),
|
||||
senderPeerID: senderPeerID,
|
||||
deliveryStatus: .sending
|
||||
)
|
||||
messages.append(message)
|
||||
@@ -2629,29 +2625,28 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
return message
|
||||
}
|
||||
|
||||
private func currentPublicSender() -> (name: String, peerID: String) {
|
||||
private func currentPublicSender() -> (name: String, peerID: PeerID) {
|
||||
var displaySender = nickname
|
||||
var senderPeerID = meshService.myPeerID
|
||||
if case .location(let ch) = activeChannel,
|
||||
let identity = try? idBridge.deriveIdentity(forGeohash: ch.geohash) {
|
||||
let suffix = String(identity.publicKeyHex.suffix(4))
|
||||
displaySender = nickname + "#" + suffix
|
||||
let shortKey = identity.publicKeyHex.prefix(TransportConfig.nostrShortKeyDisplayLength)
|
||||
senderPeerID = PeerID(str: "nostr:\(shortKey)")
|
||||
senderPeerID = PeerID(nostr: identity.publicKeyHex)
|
||||
}
|
||||
return (displaySender, senderPeerID.id)
|
||||
return (displaySender, senderPeerID)
|
||||
}
|
||||
|
||||
@MainActor
|
||||
private func nicknameForPeer(_ peerID: String) -> String {
|
||||
if let name = meshService.peerNickname(peerID: PeerID(str: peerID)) {
|
||||
private func nicknameForPeer(_ peerID: PeerID) -> String {
|
||||
if let name = meshService.peerNickname(peerID: peerID) {
|
||||
return name
|
||||
}
|
||||
if let favorite = FavoritesPersistenceService.shared.getFavoriteStatus(forPeerID: PeerID(str: peerID)),
|
||||
if let favorite = FavoritesPersistenceService.shared.getFavoriteStatus(forPeerID: peerID),
|
||||
!favorite.peerNickname.isEmpty {
|
||||
return favorite.peerNickname
|
||||
}
|
||||
if let noiseKey = Data(hexString: peerID),
|
||||
if let noiseKey = Data(hexString: peerID.id),
|
||||
let favorite = FavoritesPersistenceService.shared.getFavoriteStatus(for: noiseKey),
|
||||
!favorite.peerNickname.isEmpty {
|
||||
return favorite.peerNickname
|
||||
@@ -4881,7 +4876,6 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
noiseService.onPeerAuthenticated = { [weak self] peerID, fingerprint in
|
||||
DispatchQueue.main.async {
|
||||
guard let self = self else { return }
|
||||
let peerID = PeerID(str: peerID)
|
||||
|
||||
SecureLogger.debug("🔐 Authenticated: \(peerID)", category: .security)
|
||||
|
||||
@@ -5874,7 +5868,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
NotificationService.shared.sendPrivateMessageNotification(
|
||||
from: senderNickname,
|
||||
message: messageContent,
|
||||
peerID: targetPeerID.id
|
||||
peerID: targetPeerID
|
||||
)
|
||||
}
|
||||
}
|
||||
@@ -6267,7 +6261,7 @@ final class ChatViewModel: ObservableObject, BitchatDelegate {
|
||||
NotificationService.shared.sendPrivateMessageNotification(
|
||||
from: message.sender,
|
||||
message: message.content,
|
||||
peerID: peerID.id
|
||||
peerID: peerID
|
||||
)
|
||||
}
|
||||
} else {
|
||||
|
||||
Reference in New Issue
Block a user