mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-10-08 19:10:53 +00:00
Index secret chat media for search
This commit is contained in:
parent
87fc9c400a
commit
704a39e329
@ -76,6 +76,8 @@ public protocol Media: class, PostboxCoding {
|
||||
var id: MediaId? { get }
|
||||
var peerIds: [PeerId] { get }
|
||||
|
||||
var indexableText: String? { get }
|
||||
|
||||
func isLikelyToBeUpdated() -> Bool
|
||||
|
||||
func isEqual(to other: Media) -> Bool
|
||||
@ -86,4 +88,8 @@ public extension Media {
|
||||
func isLikelyToBeUpdated() -> Bool {
|
||||
return false
|
||||
}
|
||||
|
||||
var indexableText: String? {
|
||||
return nil
|
||||
}
|
||||
}
|
||||
|
@ -1003,7 +1003,14 @@ final class MessageHistoryTable: Table {
|
||||
}
|
||||
|
||||
if self.seedConfiguration.peerNamespacesRequiringMessageTextIndex.contains(message.id.peerId.namespace) {
|
||||
self.textIndexTable.add(messageId: message.id, text: message.text, tags: message.tags)
|
||||
var indexableText = message.text
|
||||
for media in message.media {
|
||||
if let mediaText = media.indexableText {
|
||||
indexableText.append(" ")
|
||||
indexableText.append(mediaText)
|
||||
}
|
||||
}
|
||||
self.textIndexTable.add(messageId: message.id, text: indexableText, tags: message.tags)
|
||||
}
|
||||
|
||||
var flags = MessageFlags(message.flags)
|
||||
@ -1493,7 +1500,16 @@ final class MessageHistoryTable: Table {
|
||||
if self.seedConfiguration.peerNamespacesRequiringMessageTextIndex.contains(message.id.peerId.namespace) {
|
||||
if previousMessage.id != message.id || previousMessage.text != message.text || previousMessage.tags != message.tags {
|
||||
self.textIndexTable.remove(messageId: previousMessage.id)
|
||||
self.textIndexTable.add(messageId: message.id, text: message.text, tags: message.tags)
|
||||
|
||||
var indexableText = message.text
|
||||
for media in message.media {
|
||||
if let mediaText = media.indexableText {
|
||||
indexableText.append(" ")
|
||||
indexableText.append(mediaText)
|
||||
}
|
||||
}
|
||||
|
||||
self.textIndexTable.add(messageId: message.id, text: indexableText, tags: message.tags)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -298,6 +298,19 @@ public final class TelegramMediaFile: Media, Equatable, Codable {
|
||||
return self.fileId
|
||||
}
|
||||
|
||||
public var indexableText: String? {
|
||||
var result = ""
|
||||
for attribute in self.attributes {
|
||||
if case let .FileName(fileName) = attribute {
|
||||
if !result.isEmpty {
|
||||
result.append(" ")
|
||||
}
|
||||
result.append(fileName)
|
||||
}
|
||||
}
|
||||
return result.isEmpty ? nil : result
|
||||
}
|
||||
|
||||
public init(fileId: MediaId, partialReference: PartialMediaReference?, resource: TelegramMediaResource, previewRepresentations: [TelegramMediaImageRepresentation], videoThumbnails: [TelegramMediaFile.VideoThumbnail], immediateThumbnailData: Data?, mimeType: String, size: Int?, attributes: [TelegramMediaFileAttribute]) {
|
||||
self.fileId = fileId
|
||||
self.partialReference = partialReference
|
||||
|
Loading…
x
Reference in New Issue
Block a user