mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-10-09 03:20:48 +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 id: MediaId? { get }
|
||||||
var peerIds: [PeerId] { get }
|
var peerIds: [PeerId] { get }
|
||||||
|
|
||||||
|
var indexableText: String? { get }
|
||||||
|
|
||||||
func isLikelyToBeUpdated() -> Bool
|
func isLikelyToBeUpdated() -> Bool
|
||||||
|
|
||||||
func isEqual(to other: Media) -> Bool
|
func isEqual(to other: Media) -> Bool
|
||||||
@ -86,4 +88,8 @@ public extension Media {
|
|||||||
func isLikelyToBeUpdated() -> Bool {
|
func isLikelyToBeUpdated() -> Bool {
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var indexableText: String? {
|
||||||
|
return nil
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -1003,7 +1003,14 @@ final class MessageHistoryTable: Table {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if self.seedConfiguration.peerNamespacesRequiringMessageTextIndex.contains(message.id.peerId.namespace) {
|
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)
|
var flags = MessageFlags(message.flags)
|
||||||
@ -1493,7 +1500,16 @@ final class MessageHistoryTable: Table {
|
|||||||
if self.seedConfiguration.peerNamespacesRequiringMessageTextIndex.contains(message.id.peerId.namespace) {
|
if self.seedConfiguration.peerNamespacesRequiringMessageTextIndex.contains(message.id.peerId.namespace) {
|
||||||
if previousMessage.id != message.id || previousMessage.text != message.text || previousMessage.tags != message.tags {
|
if previousMessage.id != message.id || previousMessage.text != message.text || previousMessage.tags != message.tags {
|
||||||
self.textIndexTable.remove(messageId: previousMessage.id)
|
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
|
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]) {
|
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.fileId = fileId
|
||||||
self.partialReference = partialReference
|
self.partialReference = partialReference
|
||||||
|
Loading…
x
Reference in New Issue
Block a user