Refactoring

This commit is contained in:
Ali
2021-09-24 11:59:21 +03:00
parent 54841cc6fb
commit 7140c69dbf
52 changed files with 421 additions and 502 deletions

View File

@@ -1,7 +1,7 @@
import Foundation
import Postbox
public struct CloudFileMediaResourceId: MediaResourceId, Hashable, Equatable {
public struct CloudFileMediaResourceId: Hashable, Equatable {
let datacenterId: Int
let volumeId: Int64
let localId: Int32
@@ -17,14 +17,6 @@ public struct CloudFileMediaResourceId: MediaResourceId, Hashable, Equatable {
public var uniqueId: String {
return "telegram-cloud-file-\(self.datacenterId)-\(self.volumeId)-\(self.localId)-\(self.secret)"
}
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? CloudFileMediaResourceId {
return self == to
} else {
return false
}
}
}
public final class CloudFileMediaResource: TelegramMediaResource {
@@ -36,7 +28,7 @@ public final class CloudFileMediaResource: TelegramMediaResource {
public let fileReference: Data?
public var id: MediaResourceId {
return CloudFileMediaResourceId(datacenterId: self.datacenterId, volumeId: self.volumeId, localId: self.localId, secret: self.secret)
return MediaResourceId(CloudFileMediaResourceId(datacenterId: self.datacenterId, volumeId: self.volumeId, localId: self.localId, secret: self.secret).uniqueId)
}
public init(datacenterId: Int, volumeId: Int64, localId: Int32, secret: Int64, size: Int?, fileReference: Data?) {
@@ -87,7 +79,7 @@ public final class CloudFileMediaResource: TelegramMediaResource {
}
}
public struct CloudPhotoSizeMediaResourceId: MediaResourceId, Hashable, Equatable {
public struct CloudPhotoSizeMediaResourceId: Hashable, Equatable {
let datacenterId: Int32
let photoId: Int64
let sizeSpec: String
@@ -101,14 +93,6 @@ public struct CloudPhotoSizeMediaResourceId: MediaResourceId, Hashable, Equatabl
public var uniqueId: String {
return "telegram-cloud-photo-size-\(self.datacenterId)-\(self.photoId)-\(self.sizeSpec)"
}
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? CloudPhotoSizeMediaResourceId {
return self == to
} else {
return false
}
}
}
public final class CloudPhotoSizeMediaResource: TelegramMediaResource {
@@ -120,7 +104,7 @@ public final class CloudPhotoSizeMediaResource: TelegramMediaResource {
public let fileReference: Data?
public var id: MediaResourceId {
return CloudPhotoSizeMediaResourceId(datacenterId: Int32(self.datacenterId), photoId: self.photoId, sizeSpec: self.sizeSpec)
return MediaResourceId(CloudPhotoSizeMediaResourceId(datacenterId: Int32(self.datacenterId), photoId: self.photoId, sizeSpec: self.sizeSpec).uniqueId)
}
public init(datacenterId: Int32, photoId: Int64, accessHash: Int64, sizeSpec: String, size: Int?, fileReference: Data?) {
@@ -171,7 +155,7 @@ public final class CloudPhotoSizeMediaResource: TelegramMediaResource {
}
}
public struct CloudDocumentSizeMediaResourceId: MediaResourceId, Hashable, Equatable {
public struct CloudDocumentSizeMediaResourceId: Hashable, Equatable {
let datacenterId: Int32
let documentId: Int64
let sizeSpec: String
@@ -185,14 +169,6 @@ public struct CloudDocumentSizeMediaResourceId: MediaResourceId, Hashable, Equat
public var uniqueId: String {
return "telegram-cloud-document-size-\(self.datacenterId)-\(self.documentId)-\(self.sizeSpec)"
}
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? CloudDocumentSizeMediaResourceId {
return self == to
} else {
return false
}
}
}
public final class CloudDocumentSizeMediaResource: TelegramMediaResource {
@@ -203,7 +179,7 @@ public final class CloudDocumentSizeMediaResource: TelegramMediaResource {
public let fileReference: Data?
public var id: MediaResourceId {
return CloudDocumentSizeMediaResourceId(datacenterId: Int32(self.datacenterId), documentId: self.documentId, sizeSpec: self.sizeSpec)
return MediaResourceId(CloudDocumentSizeMediaResourceId(datacenterId: Int32(self.datacenterId), documentId: self.documentId, sizeSpec: self.sizeSpec).uniqueId)
}
public init(datacenterId: Int32, documentId: Int64, accessHash: Int64, sizeSpec: String, fileReference: Data?) {
@@ -248,7 +224,7 @@ public enum CloudPeerPhotoSizeSpec: Int32 {
case fullSize
}
public struct CloudPeerPhotoSizeMediaResourceId: MediaResourceId, Hashable, Equatable {
public struct CloudPeerPhotoSizeMediaResourceId: Hashable, Equatable {
let datacenterId: Int32
let photoId: Int64?
let sizeSpec: CloudPeerPhotoSizeSpec
@@ -270,14 +246,6 @@ public struct CloudPeerPhotoSizeMediaResourceId: MediaResourceId, Hashable, Equa
return "telegram-peer-photo-size-\(self.datacenterId)-\(self.sizeSpec.rawValue)-\(self.volumeId ?? 0)-\(self.localId ?? 0)"
}
}
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? CloudPeerPhotoSizeMediaResourceId {
return self == to
} else {
return false
}
}
}
public final class CloudPeerPhotoSizeMediaResource: TelegramMediaResource {
@@ -288,7 +256,7 @@ public final class CloudPeerPhotoSizeMediaResource: TelegramMediaResource {
public let localId: Int32?
public var id: MediaResourceId {
return CloudPeerPhotoSizeMediaResourceId(datacenterId: Int32(self.datacenterId), photoId: self.photoId, sizeSpec: self.sizeSpec, volumeId: self.volumeId, localId: self.localId)
return MediaResourceId(CloudPeerPhotoSizeMediaResourceId(datacenterId: Int32(self.datacenterId), photoId: self.photoId, sizeSpec: self.sizeSpec, volumeId: self.volumeId, localId: self.localId).uniqueId)
}
public init(datacenterId: Int32, photoId: Int64?, sizeSpec: CloudPeerPhotoSizeSpec, volumeId: Int64?, localId: Int32?) {
@@ -336,7 +304,7 @@ public final class CloudPeerPhotoSizeMediaResource: TelegramMediaResource {
}
}
public struct CloudStickerPackThumbnailMediaResourceId: MediaResourceId, Hashable, Equatable {
public struct CloudStickerPackThumbnailMediaResourceId: Hashable, Equatable {
let datacenterId: Int32
let thumbVersion: Int32?
let volumeId: Int64?
@@ -356,14 +324,6 @@ public struct CloudStickerPackThumbnailMediaResourceId: MediaResourceId, Hashabl
return "telegram-stickerpackthumbnail-\(self.datacenterId)-\(self.volumeId ?? 0)-\(self.localId ?? 0)"
}
}
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? CloudStickerPackThumbnailMediaResourceId {
return self == to
} else {
return false
}
}
}
public final class CloudStickerPackThumbnailMediaResource: TelegramMediaResource {
@@ -373,7 +333,7 @@ public final class CloudStickerPackThumbnailMediaResource: TelegramMediaResource
public let localId: Int32?
public var id: MediaResourceId {
return CloudStickerPackThumbnailMediaResourceId(datacenterId: Int32(self.datacenterId), thumbVersion: self.thumbVersion, volumeId: self.volumeId, localId: self.localId)
return MediaResourceId(CloudStickerPackThumbnailMediaResourceId(datacenterId: Int32(self.datacenterId), thumbVersion: self.thumbVersion, volumeId: self.volumeId, localId: self.localId).uniqueId)
}
public init(datacenterId: Int32, thumbVersion: Int32?, volumeId: Int64?, localId: Int32?) {
@@ -418,7 +378,7 @@ public final class CloudStickerPackThumbnailMediaResource: TelegramMediaResource
}
}
public struct CloudDocumentMediaResourceId: MediaResourceId, Hashable, Equatable {
public struct CloudDocumentMediaResourceId: Hashable, Equatable {
public let datacenterId: Int
public let fileId: Int64
@@ -430,14 +390,6 @@ public struct CloudDocumentMediaResourceId: MediaResourceId, Hashable, Equatable
public var uniqueId: String {
return "telegram-cloud-document-\(self.datacenterId)-\(self.fileId)"
}
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? CloudDocumentMediaResourceId {
return self == to
} else {
return false
}
}
}
public final class CloudDocumentMediaResource: TelegramMediaResource {
@@ -449,7 +401,7 @@ public final class CloudDocumentMediaResource: TelegramMediaResource {
public let fileName: String?
public var id: MediaResourceId {
return CloudDocumentMediaResourceId(datacenterId: self.datacenterId, fileId: self.fileId)
return MediaResourceId(CloudDocumentMediaResourceId(datacenterId: self.datacenterId, fileId: self.fileId).uniqueId)
}
public init(datacenterId: Int, fileId: Int64, accessHash: Int64, size: Int?, fileReference: Data?, fileName: String?) {
@@ -504,20 +456,12 @@ public final class CloudDocumentMediaResource: TelegramMediaResource {
}
}
public struct LocalFileMediaResourceId: MediaResourceId, Hashable, Equatable {
public struct LocalFileMediaResourceId: Hashable, Equatable {
public let fileId: Int64
public var uniqueId: String {
return "telegram-local-file-\(self.fileId)"
}
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? LocalFileMediaResourceId {
return self == to
} else {
return false
}
}
}
public class LocalFileMediaResource: TelegramMediaResource, Codable {
@@ -569,7 +513,7 @@ public class LocalFileMediaResource: TelegramMediaResource, Codable {
}
public var id: MediaResourceId {
return LocalFileMediaResourceId(fileId: self.fileId)
return MediaResourceId(LocalFileMediaResourceId(fileId: self.fileId).uniqueId)
}
public func isEqual(to: MediaResource) -> Bool {
@@ -581,20 +525,12 @@ public class LocalFileMediaResource: TelegramMediaResource, Codable {
}
}
public struct LocalFileReferenceMediaResourceId: MediaResourceId, Hashable, Equatable {
public struct LocalFileReferenceMediaResourceId: Hashable, Equatable {
public let randomId: Int64
public var uniqueId: String {
return "local-file-\(self.randomId)"
}
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? LocalFileReferenceMediaResourceId {
return self == to
} else {
return false
}
}
}
public class LocalFileReferenceMediaResource: TelegramMediaResource {
@@ -629,7 +565,7 @@ public class LocalFileReferenceMediaResource: TelegramMediaResource {
}
public var id: MediaResourceId {
return LocalFileReferenceMediaResourceId(randomId: self.randomId)
return MediaResourceId(LocalFileReferenceMediaResourceId(randomId: self.randomId).uniqueId)
}
public func isEqual(to: MediaResource) -> Bool {
@@ -641,17 +577,9 @@ public class LocalFileReferenceMediaResource: TelegramMediaResource {
}
}
public struct HttpReferenceMediaResourceId: MediaResourceId, Hashable, Equatable {
public struct HttpReferenceMediaResourceId: Hashable, Equatable {
public let url: String
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? HttpReferenceMediaResourceId {
return self == to
} else {
return false
}
}
public var uniqueId: String {
return "http-\(persistentHash32(self.url))"
}
@@ -685,7 +613,7 @@ public final class HttpReferenceMediaResource: TelegramMediaResource {
}
public var id: MediaResourceId {
return HttpReferenceMediaResourceId(url: self.url)
return MediaResourceId(HttpReferenceMediaResourceId(url: self.url).uniqueId)
}
public func isEqual(to: MediaResource) -> Bool {
@@ -697,19 +625,11 @@ public final class HttpReferenceMediaResource: TelegramMediaResource {
}
}
public struct WebFileReferenceMediaResourceId: MediaResourceId, Hashable, Equatable {
public struct WebFileReferenceMediaResourceId: Hashable, Equatable {
public let url: String
public let accessHash: Int64
public let size: Int32
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? WebFileReferenceMediaResourceId {
return self == to
} else {
return false
}
}
public var uniqueId: String {
return "proxy-\(persistentHash32(self.url))-\(size)-\(accessHash)"
}
@@ -739,7 +659,7 @@ public final class WebFileReferenceMediaResource: TelegramMediaResource {
}
public var id: MediaResourceId {
return WebFileReferenceMediaResourceId(url: self.url, accessHash: accessHash, size: self.size)
return MediaResourceId(WebFileReferenceMediaResourceId(url: self.url, accessHash: accessHash, size: self.size).uniqueId)
}
public func isEqual(to: MediaResource) -> Bool {
@@ -752,7 +672,7 @@ public final class WebFileReferenceMediaResource: TelegramMediaResource {
}
public struct SecretFileMediaResourceId: MediaResourceId, Hashable, Equatable {
public struct SecretFileMediaResourceId: Hashable, Equatable {
public let fileId: Int64
public let datacenterId: Int32
@@ -764,14 +684,6 @@ public struct SecretFileMediaResourceId: MediaResourceId, Hashable, Equatable {
self.fileId = fileId
self.datacenterId = datacenterId
}
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? SecretFileMediaResourceId {
return self == to
} else {
return false
}
}
}
public final class SecretFileMediaResource: TelegramMediaResource {
@@ -813,7 +725,7 @@ public final class SecretFileMediaResource: TelegramMediaResource {
}
public var id: MediaResourceId {
return SecretFileMediaResourceId(fileId: self.fileId, datacenterId: Int32(self.datacenterId))
return MediaResourceId(SecretFileMediaResourceId(fileId: self.fileId, datacenterId: Int32(self.datacenterId)).uniqueId)
}
public func isEqual(to: MediaResource) -> Bool {
@@ -843,7 +755,7 @@ public final class SecretFileMediaResource: TelegramMediaResource {
}
}
public struct EmptyMediaResourceId: MediaResourceId {
public struct EmptyMediaResourceId {
public var uniqueId: String {
return "empty-resource"
}
@@ -851,10 +763,6 @@ public struct EmptyMediaResourceId: MediaResourceId {
public var hashValue: Int {
return 0
}
public func isEqual(to: MediaResourceId) -> Bool {
return to is EmptyMediaResourceId
}
}
public final class EmptyMediaResource: TelegramMediaResource {
@@ -868,7 +776,7 @@ public final class EmptyMediaResource: TelegramMediaResource {
}
public var id: MediaResourceId {
return EmptyMediaResourceId()
return MediaResourceId(EmptyMediaResourceId().uniqueId)
}
public func isEqual(to: MediaResource) -> Bool {
@@ -876,7 +784,7 @@ public final class EmptyMediaResource: TelegramMediaResource {
}
}
public struct WallpaperDataResourceId: MediaResourceId {
public struct WallpaperDataResourceId {
public var uniqueId: String {
return "wallpaper-\(self.slug)"
}
@@ -890,16 +798,6 @@ public struct WallpaperDataResourceId: MediaResourceId {
public init(slug: String) {
self.slug = slug
}
public func isEqual(to: MediaResourceId) -> Bool {
guard let to = to as? WallpaperDataResourceId else {
return false
}
if self.slug != to.slug {
return false
}
return true
}
}
public final class WallpaperDataResource: TelegramMediaResource {
@@ -918,7 +816,7 @@ public final class WallpaperDataResource: TelegramMediaResource {
}
public var id: MediaResourceId {
return WallpaperDataResourceId(slug: self.slug)
return MediaResourceId(WallpaperDataResourceId(slug: self.slug).uniqueId)
}
public func isEqual(to: MediaResource) -> Bool {

View File

@@ -1,7 +1,7 @@
import Foundation
import Postbox
public struct SecureFileMediaResourceId: MediaResourceId {
public struct SecureFileMediaResourceId {
public let fileId: Int64
public init(fileId: Int64) {
@@ -15,21 +15,13 @@ public struct SecureFileMediaResourceId: MediaResourceId {
public var hashValue: Int {
return self.fileId.hashValue
}
public func isEqual(to: MediaResourceId) -> Bool {
if let to = to as? SecureFileMediaResourceId {
return self.fileId == to.fileId
} else {
return false
}
}
}
public final class SecureFileMediaResource: TelegramMediaResource {
public let file: SecureIdFileReference
public var id: MediaResourceId {
return SecureFileMediaResourceId(fileId: self.file.id)
return MediaResourceId(SecureFileMediaResourceId(fileId: self.file.id).uniqueId)
}
public var datacenterId: Int {

View File

@@ -554,7 +554,7 @@ public final class TelegramMediaFile: Media, Equatable, Codable {
return false
}
if !self.resource.id.isEqual(to: other.resource.id) {
if self.resource.id != other.resource.id {
return false
}

View File

@@ -340,7 +340,7 @@ public final class TelegramMediaImageRepresentation: PostboxCoding, Equatable, C
if self.dimensions != other.dimensions {
return false
}
if !self.resource.id.isEqual(to: other.resource.id) {
if self.resource.id != other.resource.id {
return false
}
if self.progressiveSizes != other.progressiveSizes {