mirror of
https://github.com/Ranchero-Software/NetNewsWire.git
synced 2025-02-04 04:47:52 +01:00
Simplify the compression logic
This commit is contained in:
parent
42930371b8
commit
bb99e6f69c
@ -101,11 +101,10 @@ final class CloudKitArticlesZone: CloudKitZone {
|
|||||||
}
|
}
|
||||||
|
|
||||||
compressionQueue.async {
|
compressionQueue.async {
|
||||||
self.compressArticleRecords(records) { compressedRecords in
|
let compressedRecords = self.compressArticleRecords(records)
|
||||||
self.save(compressedRecords, completion: completion)
|
self.save(compressedRecords, completion: completion)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
func deleteArticles(_ webFeedExternalID: String, completion: @escaping ((Result<Void, Error>) -> Void)) {
|
func deleteArticles(_ webFeedExternalID: String, completion: @escaping ((Result<Void, Error>) -> Void)) {
|
||||||
let predicate = NSPredicate(format: "webFeedExternalID = %@", webFeedExternalID)
|
let predicate = NSPredicate(format: "webFeedExternalID = %@", webFeedExternalID)
|
||||||
@ -140,11 +139,11 @@ final class CloudKitArticlesZone: CloudKitZone {
|
|||||||
}
|
}
|
||||||
|
|
||||||
compressionQueue.async {
|
compressionQueue.async {
|
||||||
self.compressArticleRecords(modifyRecords) { compressedModifyRecords in
|
let compressedModifyRecords = self.compressArticleRecords(modifyRecords)
|
||||||
self.compressArticleRecords(newRecords) { compressedNewRecords in
|
|
||||||
self.modify(recordsToSave: compressedModifyRecords, recordIDsToDelete: deleteRecordIDs) { result in
|
self.modify(recordsToSave: compressedModifyRecords, recordIDsToDelete: deleteRecordIDs) { result in
|
||||||
switch result {
|
switch result {
|
||||||
case .success:
|
case .success:
|
||||||
|
let compressedNewRecords = self.compressArticleRecords(newRecords)
|
||||||
self.saveIfNew(compressedNewRecords) { result in
|
self.saveIfNew(compressedNewRecords) { result in
|
||||||
switch result {
|
switch result {
|
||||||
case .success:
|
case .success:
|
||||||
@ -158,8 +157,6 @@ final class CloudKitArticlesZone: CloudKitZone {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -252,7 +249,7 @@ private extension CloudKitArticlesZone {
|
|||||||
return record
|
return record
|
||||||
}
|
}
|
||||||
|
|
||||||
func compressArticleRecords(_ records: [CKRecord], completion: ([CKRecord]) -> Void ) {
|
func compressArticleRecords(_ records: [CKRecord]) -> [CKRecord] {
|
||||||
var result = [CKRecord]()
|
var result = [CKRecord]()
|
||||||
|
|
||||||
for record in records {
|
for record in records {
|
||||||
@ -262,7 +259,7 @@ private extension CloudKitArticlesZone {
|
|||||||
if let contentHTML = record[CloudKitArticle.Fields.contentHTML] as? String {
|
if let contentHTML = record[CloudKitArticle.Fields.contentHTML] as? String {
|
||||||
let data = Data(contentHTML.utf8) as NSData
|
let data = Data(contentHTML.utf8) as NSData
|
||||||
if let compressedData = try? data.compressed(using: .lzfse) {
|
if let compressedData = try? data.compressed(using: .lzfse) {
|
||||||
record[CloudKitArticle.Fields.contentHTMLData] = compressedData
|
record[CloudKitArticle.Fields.contentHTMLData] = compressedData as Data
|
||||||
record[CloudKitArticle.Fields.contentHTML] = nil
|
record[CloudKitArticle.Fields.contentHTML] = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -270,19 +267,17 @@ private extension CloudKitArticlesZone {
|
|||||||
if let contentText = record[CloudKitArticle.Fields.contentText] as? String {
|
if let contentText = record[CloudKitArticle.Fields.contentText] as? String {
|
||||||
let data = Data(contentText.utf8) as NSData
|
let data = Data(contentText.utf8) as NSData
|
||||||
if let compressedData = try? data.compressed(using: .lzfse) {
|
if let compressedData = try? data.compressed(using: .lzfse) {
|
||||||
record[CloudKitArticle.Fields.contentTextData] = compressedData
|
record[CloudKitArticle.Fields.contentTextData] = compressedData as Data
|
||||||
record[CloudKitArticle.Fields.contentText] = nil
|
record[CloudKitArticle.Fields.contentText] = nil
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
} else {
|
}
|
||||||
|
|
||||||
result.append(record)
|
result.append(record)
|
||||||
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
completion(result)
|
return result
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user