Added support for via @bot hiding API

This commit is contained in:
Ilya Laktyushin 2018-12-19 18:20:26 +04:00
parent ac166d7b61
commit 3ebcf555e4
3 changed files with 11 additions and 5 deletions

View File

@ -8,19 +8,23 @@ import Foundation
public class OutgoingChatContextResultMessageAttribute: MessageAttribute {
public let queryId: Int64
public let id: String
public let hideVia: Bool
init(queryId: Int64, id: String) {
init(queryId: Int64, id: String, hideVia: Bool) {
self.queryId = queryId
self.id = id
self.hideVia = hideVia
}
required public init(decoder: PostboxDecoder) {
self.queryId = decoder.decodeInt64ForKey("q", orElse: 0)
self.id = decoder.decodeStringForKey("i", orElse: "")
self.hideVia = decoder.decodeBoolForKey("v", orElse: false)
}
public func encode(_ encoder: PostboxEncoder) {
encoder.encodeInt64(self.queryId, forKey: "q")
encoder.encodeString(self.id, forKey: "i")
encoder.encodeBool(self.hideVia, forKey: "v")
}
}

View File

@ -12,13 +12,12 @@ private func aspectFitSize(_ size: CGSize, to: CGSize) -> CGSize {
return CGSize(width: floor(size.width * scale), height: floor(size.height * scale))
}
public func outgoingMessageWithChatContextResult(to peerId: PeerId, results: ChatContextResultCollection?, result: ChatContextResult) -> EnqueueMessage? {
public func outgoingMessageWithChatContextResult(to peerId: PeerId, results: ChatContextResultCollection, result: ChatContextResult, hideVia: Bool = false) -> EnqueueMessage? {
var attributes: [MessageAttribute] = []
if let results = results {
attributes.append(OutgoingChatContextResultMessageAttribute(queryId: result.queryId, id: result.id))
attributes.append(OutgoingChatContextResultMessageAttribute(queryId: result.queryId, id: result.id, hideVia: hideVia))
if !hideVia {
attributes.append(InlineBotMessageAttribute(peerId: results.botId, title: nil))
}
switch result.message {
case let .auto(caption, entities, replyMarkup):
if let entities = entities {

View File

@ -930,6 +930,9 @@ public final class PendingMessageManager {
sendMessageRequest = .fail(MTRpcError(errorCode: 400, errorDescription: "internal"))
}
case let .chatContextResult(chatContextResult):
if chatContextResult.hideVia {
flags |= Int32(1 << 11)
}
sendMessageRequest = network.request(Api.functions.messages.sendInlineBotResult(flags: flags, peer: inputPeer, replyToMsgId: replyMessageId, randomId: uniqueId, queryId: chatContextResult.queryId, id: chatContextResult.id))
|> map(NetworkRequestResult.result)
case .messageScreenshot: