mirror of
https://github.com/Swiftgram/Telegram-iOS.git
synced 2025-12-23 14:45:21 +00:00
Refactor SyncCore
This commit is contained in:
@@ -0,0 +1,62 @@
|
||||
import Foundation
|
||||
import Postbox
|
||||
|
||||
public class AutoremoveTimeoutMessageAttribute: MessageAttribute {
|
||||
public let timeout: Int32
|
||||
public let countdownBeginTime: Int32?
|
||||
|
||||
public var associatedMessageIds: [MessageId] = []
|
||||
|
||||
public init(timeout: Int32, countdownBeginTime: Int32?) {
|
||||
self.timeout = timeout
|
||||
self.countdownBeginTime = countdownBeginTime
|
||||
}
|
||||
|
||||
required public init(decoder: PostboxDecoder) {
|
||||
self.timeout = decoder.decodeInt32ForKey("t", orElse: 0)
|
||||
self.countdownBeginTime = decoder.decodeOptionalInt32ForKey("c")
|
||||
}
|
||||
|
||||
public func encode(_ encoder: PostboxEncoder) {
|
||||
encoder.encodeInt32(self.timeout, forKey: "t")
|
||||
if let countdownBeginTime = self.countdownBeginTime {
|
||||
encoder.encodeInt32(countdownBeginTime, forKey: "c")
|
||||
} else {
|
||||
encoder.encodeNil(forKey: "c")
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
public extension Message {
|
||||
var containsSecretMedia: Bool {
|
||||
var found = false
|
||||
for attribute in self.attributes {
|
||||
if let attribute = attribute as? AutoremoveTimeoutMessageAttribute {
|
||||
if attribute.timeout > 1 * 60 {
|
||||
return false
|
||||
}
|
||||
found = true
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
if !found {
|
||||
return false
|
||||
}
|
||||
|
||||
for media in self.media {
|
||||
switch media {
|
||||
case _ as TelegramMediaImage:
|
||||
return true
|
||||
case let file as TelegramMediaFile:
|
||||
if file.isVideo || file.isAnimated || file.isVoice || file.isMusic {
|
||||
return true
|
||||
}
|
||||
default:
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
return false
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user