import Foundation import SwiftSignalKit import Postbox import TelegramApi public func chatOnlineMembers(postbox: Postbox, network: Network, peerId: PeerId) -> Signal { return postbox.transaction { transaction -> Api.InputPeer? in return transaction.getPeer(peerId).flatMap(apiInputPeer) } |> mapToSignal { inputPeer -> Signal in guard let inputPeer = inputPeer else { return .single(0) } return network.request(Api.functions.messages.getOnlines(peer: inputPeer)) |> map { value -> Int32 in switch value { case let .chatOnlines(onlines): return onlines } } |> `catch` { _ -> Signal in return .single(0) } } }