From f8ca3438dfd50bed6f705254e148ac8cd1d59b2c Mon Sep 17 00:00:00 2001 From: Peter Date: Fri, 7 Sep 2018 01:08:54 +0300 Subject: [PATCH] no message --- TelegramCore/ChatContextResult.swift | 12 +++++++++++- .../OutgoingMessageWithChatContextResult.swift | 15 +++++++++++++-- 2 files changed, 24 insertions(+), 3 deletions(-) diff --git a/TelegramCore/ChatContextResult.swift b/TelegramCore/ChatContextResult.swift index 45184b2d41..3a97d43235 100644 --- a/TelegramCore/ChatContextResult.swift +++ b/TelegramCore/ChatContextResult.swift @@ -443,7 +443,17 @@ extension ChatContextResultCollection { if let switchPm = switchPm { switchPeer = ChatContextResultSwitchPeer(apiSwitchPeer: switchPm) } - self.init(botId: botId, peerId: peerId, query: query, geoPoint: geoPoint, queryId: queryId, nextOffset: nextOffset, presentation: (flags & (1 << 0) != 0) ? .media : .list, switchPeer: switchPeer, results: results.map { ChatContextResult(apiResult: $0, queryId: queryId) }, cacheTimeout: cacheTime) + let parsedResults = results.map({ ChatContextResult(apiResult: $0, queryId: queryId) }) + /*.filter({ result in + switch result { + case .internalReference: + return false + default: + return true + } + return true + })*/ + self.init(botId: botId, peerId: peerId, query: query, geoPoint: geoPoint, queryId: queryId, nextOffset: nextOffset, presentation: (flags & (1 << 0) != 0) ? .media : .list, switchPeer: switchPeer, results: parsedResults, cacheTimeout: cacheTime) } } } diff --git a/TelegramCore/OutgoingMessageWithChatContextResult.swift b/TelegramCore/OutgoingMessageWithChatContextResult.swift index bd15ce261b..50f9b5f077 100644 --- a/TelegramCore/OutgoingMessageWithChatContextResult.swift +++ b/TelegramCore/OutgoingMessageWithChatContextResult.swift @@ -12,7 +12,7 @@ private func aspectFitSize(_ size: CGSize, to: CGSize) -> CGSize { return CGSize(width: floor(size.width * scale), height: floor(size.height * scale)) } -public func outgoingMessageWithChatContextResult(_ results: ChatContextResultCollection, _ result: ChatContextResult) -> EnqueueMessage? { +public func outgoingMessageWithChatContextResult(to peerId: PeerId, results: ChatContextResultCollection, result: ChatContextResult) -> EnqueueMessage? { var attributes: [MessageAttribute] = [] attributes.append(OutgoingChatContextResultMessageAttribute(queryId: result.queryId, id: result.id)) attributes.append(InlineBotMessageAttribute(peerId: results.botId, title: nil)) @@ -82,6 +82,9 @@ public func outgoingMessageWithChatContextResult(_ results: ChatContextResultCol if let dimensions = content?.dimensions { fileAttributes.append(.ImageSize(size: dimensions)) + if type == "gif" { + fileAttributes.append(.Video(duration: Int(Int32(content?.duration ?? 0)), size: dimensions, flags: [])) + } } if type == "audio" || type == "voice" { @@ -90,7 +93,15 @@ public func outgoingMessageWithChatContextResult(_ results: ChatContextResultCol var randomId: Int64 = 0 arc4random_buf(&randomId, 8) - let file = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: randomId), partialReference: nil, resource: EmptyMediaResource(), previewRepresentations: previewRepresentations, mimeType: content?.mimeType ?? "application/binary", size: nil, attributes: fileAttributes) + + let resource: TelegramMediaResource + if peerId.namespace == Namespaces.Peer.SecretChat, let webResource = content?.resource as? WebFileReferenceMediaResource { + resource = webResource + } else { + resource = EmptyMediaResource() + } + + let file = TelegramMediaFile(fileId: MediaId(namespace: Namespaces.Media.LocalFile, id: randomId), partialReference: nil, resource: resource, previewRepresentations: previewRepresentations, mimeType: content?.mimeType ?? "application/binary", size: nil, attributes: fileAttributes) return .message(text: caption, attributes: attributes, mediaReference: .standalone(media: file), replyToMessageId: nil, localGroupingKey: nil) } else { return .message(text: caption, attributes: attributes, mediaReference: nil, replyToMessageId: nil, localGroupingKey: nil)