diff --git a/Kiwix-iOS/Info.plist b/Kiwix-iOS/Info.plist
index 5b147915..d0d57bbe 100644
--- a/Kiwix-iOS/Info.plist
+++ b/Kiwix-iOS/Info.plist
@@ -49,7 +49,7 @@
CFBundleVersion
- 1.8.61
+ 1.8.74
ITSAppUsesNonExemptEncryption
LSRequiresIPhoneOS
diff --git a/Kiwix-iOSWidgets/Bookmarks/Info.plist b/Kiwix-iOSWidgets/Bookmarks/Info.plist
index 6c4c2b1b..be36788f 100644
--- a/Kiwix-iOSWidgets/Bookmarks/Info.plist
+++ b/Kiwix-iOSWidgets/Bookmarks/Info.plist
@@ -21,7 +21,7 @@
CFBundleSignature
????
CFBundleVersion
- 1.8.63
+ 1.8.76
NSExtension
NSExtensionMainStoryboard
diff --git a/Kiwix/CoreData/Classes/Book.swift b/Kiwix/CoreData/Classes/Book.swift
index 1766b622..14dd047d 100644
--- a/Kiwix/CoreData/Classes/Book.swift
+++ b/Kiwix/CoreData/Classes/Book.swift
@@ -19,8 +19,8 @@ class Book: NSManagedObject {
// MARK: - Add Book
class func add(metadata: [String: AnyObject], context: NSManagedObjectContext) -> Book? {
- guard let id = metadata["id"] as? String else {return nil}
- guard let book = insert(Book.self, context: context) else {return nil}
+ guard let id = metadata["id"] as? String,
+ let book = insert(Book.self, context: context) else {return nil}
book.id = id
book.title = metadata["title"] as? String
@@ -28,39 +28,44 @@ class Book: NSManagedObject {
book.publisher = metadata["publisher"] as? String
book.desc = metadata["description"] as? String
book.meta4URL = metadata["url"] as? String
+ book.pid = metadata["name"] as? String
- if let articleCount = metadata["articleCount"] as? String, mediaCount = metadata["mediaCount"] as? String, fileSize = metadata["size"] as? String {
- let numberFormatter = NSNumberFormatter()
- numberFormatter.numberStyle = NSNumberFormatterStyle.DecimalStyle
- book.articleCount = numberFormatter.numberFromString(articleCount)?.longLongValue ?? 0
- book.mediaCount = numberFormatter.numberFromString(mediaCount)?.longLongValue ?? 0
-
- if let fileSize = numberFormatter.numberFromString(fileSize) {
- book.fileSize = NSNumber(longLong: fileSize.longLongValue * Int64(1024.0)).longLongValue
- }
- }
+ book.articleCount = Int64((metadata["articleCount"] as? String) ?? "") ?? 0
+ book.mediaCount = Int64((metadata["mediaCount"] as? String) ?? "") ?? 0
+ book.fileSize = Int64((metadata["size"] as? String) ?? "") ?? 0
- if let date = metadata["date"] as? String {
+ book.date = {
+ guard let date = metadata["date"] as? String else {return nil}
let dateFormatter = NSDateFormatter()
dateFormatter.dateFormat = "yyyy-MM-dd"
- book.date = dateFormatter.dateFromString(date)
- }
+ return dateFormatter.dateFromString(date)
+ }()
- if let favIcon = metadata["favicon"] as? NSData {
- book.favIcon = favIcon
- } else if let favIcon = metadata["favicon"] as? String {
- book.favIcon = NSData(base64EncodedString: favIcon, options: .IgnoreUnknownCharacters)
- }
-
- if let meta4url = book.meta4URL {
- book.hasPic = !meta4url.containsString("nopic")
- }
-
- if let languageCode = metadata["language"] as? String {
- if let language = Language.fetchOrAdd(languageCode, context: context) {
- book.language = language
+ book.favIcon = {
+ if let data = metadata["favicon"] as? NSData {
+ return data
+ } else if let favIcon = metadata["favicon"] as? String {
+ return NSData(base64EncodedString: favIcon, options: .IgnoreUnknownCharacters)
+ } else {
+ return nil
}
- }
+ }()
+
+ book.hasPic = {
+ if let tags = metadata["tags"] as? String where tags.containsString("nopic") {
+ return false
+ } else if let meta4url = book.meta4URL where meta4url.containsString("nopic") {
+ return false
+ } else {
+ return true
+ }
+ }()
+
+ book.language = {
+ guard let languageCode = metadata["language"] as? String,
+ let language = Language.fetchOrAdd(languageCode, context: context) else {return nil}
+ return language
+ }()
return book
}
@@ -154,7 +159,7 @@ class Book: NSManagedObject {
return formattedNumberStringFromDouble(Double(articleCount))
}
- // MARK: - Description Label
+ // MARK: - Description Label Text
var detailedDescription: String? {
var descriptions = [String]()