Update API [skip ci]

This commit is contained in:
Ilya Laktyushin
2020-08-21 13:56:34 +03:00
parent 28f76f75e4
commit 9b342df78d
11 changed files with 171 additions and 65 deletions

View File

@@ -7,7 +7,7 @@ import MtProtoKit
import SyncCore
public enum SearchMessagesLocation: Equatable {
case general
case general(tags: MessageTags?)
case group(PeerGroupId)
case peer(peerId: PeerId, fromId: PeerId?, tags: MessageTags?)
case publicForwards(messageId: MessageId, datacenterId: Int?)
@@ -193,7 +193,6 @@ public func searchMessages(account: Account, location: SearchMessagesLocation, q
}
let filter: Api.MessagesFilter
if let tags = tags {
if tags.contains(.file) {
filter = .inputMessagesFilterDocument
@@ -270,7 +269,8 @@ public func searchMessages(account: Account, location: SearchMessagesLocation, q
}
case .group:
remoteSearchResult = .single((nil, nil))
case .general:
case let .general(tags):
let filter: Api.MessagesFilter = tags.flatMap { messageFilterForTagMask($0) } ?? .inputMessagesFilterEmpty
remoteSearchResult = account.postbox.transaction { transaction -> (Int32, MessageIndex?, Api.InputPeer) in
var lowerBound: MessageIndex?
if let state = state, let message = state.main.messages.last {
@@ -283,7 +283,7 @@ public func searchMessages(account: Account, location: SearchMessagesLocation, q
}
}
|> mapToSignal { (nextRate, lowerBound, inputPeer) in
return account.network.request(Api.functions.messages.searchGlobal(flags: 0, folderId: nil, q: query, offsetRate: nextRate, offsetPeer: inputPeer, offsetId: lowerBound?.id.id ?? 0, limit: limit), automaticFloodWait: false)
return account.network.request(Api.functions.messages.searchGlobal(flags: 0, folderId: nil, q: query, filter: filter, offsetRate: nextRate, offsetPeer: inputPeer, offsetId: lowerBound?.id.id ?? 0, limit: limit), automaticFloodWait: false)
|> map { result -> (Api.messages.Messages?, Api.messages.Messages?) in
return (result, nil)
}
@@ -292,8 +292,7 @@ public func searchMessages(account: Account, location: SearchMessagesLocation, q
}
}
case let .publicForwards(messageId, datacenterId):
remoteSearchResult = .single((nil, nil))
/*remoteSearchResult = account.postbox.transaction { transaction -> (Api.InputChannel?, Int32, MessageIndex?, Api.InputPeer) in
remoteSearchResult = account.postbox.transaction { transaction -> (Api.InputChannel?, Int32, MessageIndex?, Api.InputPeer) in
let sourcePeer = transaction.getPeer(messageId.peerId)
let inputChannel = sourcePeer.flatMap { apiInputChannel($0) }
@@ -330,7 +329,7 @@ public func searchMessages(account: Account, location: SearchMessagesLocation, q
|> `catch` { _ -> Signal<(Api.messages.Messages?, Api.messages.Messages?), NoError> in
return .single((nil, nil))
}
}*/
}
}
return remoteSearchResult