#if os(macOS) import PostboxMac import SwiftSignalKitMac import TelegramApiMac #else import Postbox import TelegramApi import SwiftSignalKit #endif public func exportMessageLink(account: Account, peerId: PeerId, messageId: MessageId) -> Signal { return account.postbox.transaction { transaction -> Peer? in return transaction.getPeer(peerId) } |> mapToSignal { peer -> Signal in if let peer = peer, let input = apiInputChannel(peer) { return account.network.request(Api.functions.channels.exportMessageLink(channel: input, id: messageId.id, grouped: .boolTrue)) |> mapError { _ in return } |> map { res in switch res { case let .exportedMessageLink(link, _): return link } } |> `catch` { _ -> Signal in return .single(nil) } } else { return .single(nil) } } }