mirror of
https://github.com/ichmagmaus111/ghostgram.git
synced 2026-07-18 13:37:18 +02:00
Update Ghostgram features
This commit is contained in:
@@ -131,7 +131,7 @@ public func webpagePreviewWithProgress(account: Account, urls: [String], webpage
|
||||
}
|
||||
|
||||
if let imageProvider = metadata.imageProvider {
|
||||
imageProvider.loadFileRepresentation(forTypeIdentifier: kUTTypeImage as String, completionHandler: { imageUrl, _ in
|
||||
imageProvider.loadFileRepresentation(forTypeIdentifier: "public.image", completionHandler: { imageUrl, _ in
|
||||
guard let imageUrl, let imageData = try? Data(contentsOf: imageUrl) else {
|
||||
completeWithImage(nil)
|
||||
return
|
||||
@@ -157,7 +157,7 @@ public func webpagePreviewWithProgress(account: Account, urls: [String], webpage
|
||||
|
||||
return account.network.requestWithAdditionalInfo(Api.functions.messages.getWebPagePreview(flags: 0, message: urls.joined(separator: " "), entities: nil), info: .progress)
|
||||
|> `catch` { _ -> Signal<NetworkRequestResult<Api.messages.WebPagePreview>, NoError> in
|
||||
return .single(.result(.webPagePreview(media: .messageMediaEmpty, chats: [], users: [])))
|
||||
return .single(.result(.webPagePreview(.init(media: .messageMediaEmpty, chats: [], users: []))))
|
||||
}
|
||||
|> mapToSignal { result -> Signal<WebpagePreviewWithProgressResult, NoError> in
|
||||
switch result {
|
||||
@@ -170,15 +170,17 @@ public func webpagePreviewWithProgress(account: Account, urls: [String], webpage
|
||||
return .complete()
|
||||
}
|
||||
case let .result(result):
|
||||
if case let .webPagePreview(result, _, _) = result, let preCachedResources = result.preCachedResources {
|
||||
if case let .webPagePreview(webPagePreviewData) = result, let preCachedResources = webPagePreviewData.media.preCachedResources {
|
||||
for (resource, data) in preCachedResources {
|
||||
account.postbox.mediaBox.storeResourceData(resource.id, data: data)
|
||||
}
|
||||
}
|
||||
switch result {
|
||||
case let .webPagePreview(media, chats, users):
|
||||
case let .webPagePreview(webPagePreviewData):
|
||||
let (media, chats, users) = (webPagePreviewData.media, webPagePreviewData.chats, webPagePreviewData.users)
|
||||
switch media {
|
||||
case let .messageMediaWebPage(_, webpage):
|
||||
case let .messageMediaWebPage(messageMediaWebPageData):
|
||||
let webpage = messageMediaWebPageData.webpage
|
||||
return account.postbox.transaction { transaction -> Signal<WebpagePreviewWithProgressResult, NoError> in
|
||||
let peers = AccumulatedPeers(chats: chats, users: users)
|
||||
updatePeers(transaction: transaction, accountPeerId: account.peerId, peers: peers)
|
||||
@@ -227,13 +229,14 @@ public func actualizedWebpage(account: Account, webpage: TelegramMediaWebpage) -
|
||||
if let result = result {
|
||||
return account.postbox.transaction { transaction -> Signal<TelegramMediaWebpage, NoError> in
|
||||
switch result {
|
||||
case let .webPage(apiWebpage, chats, users):
|
||||
case let .webPage(webPageData):
|
||||
let (apiWebpage, chats, users) = (webPageData.webpage, webPageData.chats, webPageData.users)
|
||||
let parsedPeers = AccumulatedPeers(transaction: transaction, chats: chats, users: users)
|
||||
updatePeers(transaction: transaction, accountPeerId: account.peerId, peers: parsedPeers)
|
||||
|
||||
if let updatedWebpage = telegramMediaWebpageFromApiWebpage(apiWebpage), case .Loaded = updatedWebpage.content, updatedWebpage.webpageId == webpage.webpageId {
|
||||
return .single(updatedWebpage)
|
||||
} else if case let .webPageNotModified(_, viewsValue) = apiWebpage, let views = viewsValue, case let .Loaded(content) = webpage.content {
|
||||
} else if case let .webPageNotModified(webPageNotModifiedData) = apiWebpage, let views = webPageNotModifiedData.cachedPageViews, case let .Loaded(content) = webpage.content {
|
||||
let updatedContent: TelegramMediaWebpageContent = .Loaded(TelegramMediaWebpageLoadedContent(
|
||||
url: content.url,
|
||||
displayUrl: content.displayUrl,
|
||||
@@ -280,7 +283,8 @@ public func updatedRemoteWebpage(postbox: Postbox, network: Network, accountPeer
|
||||
return .single(nil)
|
||||
}
|
||||
|> mapToSignal { result -> Signal<TelegramMediaWebpage?, NoError> in
|
||||
if let result = result, case let .webPage(webpage, chats, users) = result, let updatedWebpage = telegramMediaWebpageFromApiWebpage(webpage), case .Loaded = updatedWebpage.content {
|
||||
if let result = result, case let .webPage(webPageData) = result, let updatedWebpage = telegramMediaWebpageFromApiWebpage(webPageData.webpage), case .Loaded = updatedWebpage.content {
|
||||
let (chats, users) = (webPageData.chats, webPageData.users)
|
||||
if updatedWebpage.webpageId.id == id {
|
||||
return postbox.transaction { transaction -> TelegramMediaWebpage? in
|
||||
let parsedPeers = AccumulatedPeers(transaction: transaction, chats: chats, users: users)
|
||||
|
||||
Reference in New Issue
Block a user