mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-06-16 05:55:20 +00:00
51 lines
2.2 KiB
Swift
51 lines
2.2 KiB
Swift
import Foundation
|
|
import Postbox
|
|
import SwiftSignalKit
|
|
|
|
func _internal_storedMessageFromSearchPeer(account: Account, peer: Peer) -> Signal<Peer, NoError> {
|
|
return account.postbox.transaction { transaction -> Peer in
|
|
if transaction.getPeer(peer.id) == nil {
|
|
updatePeersCustom(transaction: transaction, peers: [peer], update: { _, updatedPeer in
|
|
return updatedPeer
|
|
})
|
|
}
|
|
if let group = transaction.getPeer(peer.id) as? TelegramGroup, let migrationReference = group.migrationReference {
|
|
if let migrationPeer = transaction.getPeer(migrationReference.peerId) {
|
|
return migrationPeer
|
|
} else {
|
|
return peer
|
|
}
|
|
}
|
|
return peer
|
|
}
|
|
}
|
|
|
|
func _internal_storedMessageFromSearchPeers(account: Account, peers: [Peer]) -> Signal<Never, NoError> {
|
|
return account.postbox.transaction { transaction -> Void in
|
|
for peer in peers {
|
|
if transaction.getPeer(peer.id) == nil {
|
|
updatePeersCustom(transaction: transaction, peers: [peer], update: { _, updatedPeer in
|
|
return updatedPeer
|
|
})
|
|
}
|
|
}
|
|
}
|
|
|> ignoreValues
|
|
}
|
|
|
|
func _internal_storeMessageFromSearch(transaction: Transaction, message: Message) {
|
|
if transaction.getMessage(message.id) == nil {
|
|
for (_, peer) in message.peers {
|
|
if transaction.getPeer(peer.id) == nil {
|
|
updatePeersCustom(transaction: transaction, peers: [peer], update: { _, updatedPeer in
|
|
return updatedPeer
|
|
})
|
|
}
|
|
}
|
|
|
|
let storeMessage = StoreMessage(id: .Id(message.id), globallyUniqueId: message.globallyUniqueId, groupingKey: message.groupingKey, threadId: message.threadId, timestamp: message.timestamp, flags: StoreMessageFlags(message.flags), tags: message.tags, globalTags: message.globalTags, localTags: message.localTags, forwardInfo: message.forwardInfo.flatMap(StoreMessageForwardInfo.init), authorId: message.author?.id, text: message.text, attributes: message.attributes, media: message.media)
|
|
|
|
let _ = transaction.addMessages([storeMessage], location: .Random)
|
|
}
|
|
}
|