Refactoring [skip ci]

This commit is contained in:
Ali
2023-04-19 23:47:38 +04:00
parent 61b95461d5
commit 6a548e11a6
277 changed files with 613 additions and 19657 deletions

View File

@@ -1,6 +1,6 @@
import Postbox
public enum EngineMedia {
public enum EngineMedia: Equatable {
public typealias Id = MediaId
case image(TelegramMediaImage)

View File

@@ -3,6 +3,17 @@ import SwiftSignalKit
import Postbox
import TelegramApi
public enum MediaResourceUserContentType: UInt8, Equatable {
case other = 0
case image = 1
case video = 2
case audio = 3
case file = 4
case sticker = 6
case avatar = 7
case audioVideoMessage = 8
}
public extension MediaResourceUserContentType {
init(file: TelegramMediaFile) {
if file.isInstantVideo || file.isVoice {
@@ -25,6 +36,12 @@ public extension MediaResourceUserContentType {
}
}
public extension MediaResourceFetchParameters {
init(tag: MediaResourceFetchTag?, info: MediaResourceFetchInfo?, location: MediaResourceStorageLocation?, contentType: MediaResourceUserContentType, isRandomAccessAllowed: Bool) {
self.init(tag: tag, info: info, location: location, contentType: contentType.rawValue, isRandomAccessAllowed: isRandomAccessAllowed)
}
}
func bufferedFetch(_ signal: Signal<EngineMediaResource.Fetch.Result, EngineMediaResource.Fetch.Error>) -> Signal<EngineMediaResource.Fetch.Result, EngineMediaResource.Fetch.Error> {
return Signal { subscriber in
final class State {
@@ -251,7 +268,7 @@ public extension TelegramEngine {
return _internal_reindexCacheInBackground(account: self.account, lowImpact: lowImpact)
|> then(Signal { subscriber in
return mediaBox.updateResourceIndex(lowImpact: lowImpact, completion: {
return mediaBox.updateResourceIndex(otherResourceContentType: MediaResourceUserContentType.other.rawValue, lowImpact: lowImpact, completion: {
subscriber.putCompletion()
})
})

View File

@@ -92,6 +92,28 @@ public struct ImportSticker {
}
}
public extension ImportSticker {
var stickerPackItem: StickerPackItem? {
guard let resource = self.resource as? TelegramMediaResource else {
return nil
}
var fileAttributes: [TelegramMediaFileAttribute] = []
if self.mimeType == "video/webm" {
fileAttributes.append(.FileName(fileName: "sticker.webm"))
fileAttributes.append(.Animated)
fileAttributes.append(.Sticker(displayText: "", packReference: nil, maskData: nil))
} else if self.mimeType == "application/x-tgsticker" {
fileAttributes.append(.FileName(fileName: "sticker.tgs"))
fileAttributes.append(.Animated)
fileAttributes.append(.Sticker(displayText: "", packReference: nil, maskData: nil))
} else {
fileAttributes.append(.FileName(fileName: "sticker.webp"))
}
fileAttributes.append(.ImageSize(size: self.dimensions))
return StickerPackItem(index: ItemCollectionItemIndex(index: 0, id: 0), file: TelegramMediaFile(fileId: EngineMedia.Id(namespace: 0, id: 0), partialReference: nil, resource: resource, previewRepresentations: [], videoThumbnails: [], immediateThumbnailData: nil, mimeType: self.mimeType, size: nil, attributes: fileAttributes), indexKeys: [])
}
}
public enum CreateStickerSetStatus {
case progress(Float, Int32, Int32)
case complete(StickerPackCollectionInfo, [StickerPackItem])