mirror of
https://github.com/kiwix/kiwix-apple.git
synced 2025-09-24 04:03:03 -04:00
modern doc dir content filtering
This commit is contained in:
parent
5d38487a85
commit
398b24e4c6
@ -49,7 +49,7 @@
|
|||||||
</dict>
|
</dict>
|
||||||
</array>
|
</array>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1.7.710</string>
|
<string>1.7.716</string>
|
||||||
<key>ITSAppUsesNonExemptEncryption</key>
|
<key>ITSAppUsesNonExemptEncryption</key>
|
||||||
<false/>
|
<false/>
|
||||||
<key>LSRequiresIPhoneOS</key>
|
<key>LSRequiresIPhoneOS</key>
|
||||||
|
@ -21,7 +21,7 @@
|
|||||||
<key>CFBundleSignature</key>
|
<key>CFBundleSignature</key>
|
||||||
<string>????</string>
|
<string>????</string>
|
||||||
<key>CFBundleVersion</key>
|
<key>CFBundleVersion</key>
|
||||||
<string>1.7.787</string>
|
<string>1.7.812</string>
|
||||||
<key>NSExtension</key>
|
<key>NSExtension</key>
|
||||||
<dict>
|
<dict>
|
||||||
<key>NSExtensionMainStoryboard</key>
|
<key>NSExtensionMainStoryboard</key>
|
||||||
|
@ -111,46 +111,35 @@ class ScanLocalBookOperation: Operation {
|
|||||||
|
|
||||||
// MARK: - Helper
|
// MARK: - Helper
|
||||||
|
|
||||||
|
private class func getContentsOfDocDir() -> [NSURL] {
|
||||||
|
let keys = [NSURLIsDirectoryKey]
|
||||||
|
let options: NSDirectoryEnumerationOptions = [.SkipsHiddenFiles, .SkipsPackageDescendants, .SkipsHiddenFiles]
|
||||||
|
let urls = try? NSFileManager.defaultManager().contentsOfDirectoryAtURL(NSFileManager.docDirURL, includingPropertiesForKeys: keys, options: options)
|
||||||
|
return urls ?? [NSURL]()
|
||||||
|
}
|
||||||
|
|
||||||
private class func getCurrentZimFileURLsInDocDir() -> Set<NSURL> {
|
private class func getCurrentZimFileURLsInDocDir() -> Set<NSURL> {
|
||||||
let fileURLs = FileManager.contentsOfDirectory(NSFileManager.docDirURL) ?? [NSURL]()
|
var urls = getContentsOfDocDir()
|
||||||
var zimURLs = Set<NSURL>()
|
let keys = [NSURLIsDirectoryKey]
|
||||||
for url in fileURLs {
|
urls = urls.filter { (url) -> Bool in
|
||||||
do {
|
guard let values = try? url.resourceValuesForKeys(keys),
|
||||||
var isDirectory: AnyObject? = nil
|
let isDirectory = (values[NSURLIsDirectoryKey] as? NSNumber)?.boolValue where isDirectory == false else {return false}
|
||||||
try url.getResourceValue(&isDirectory, forKey: NSURLIsDirectoryKey)
|
guard let pathExtension = url.pathExtension?.lowercaseString where pathExtension.containsString("zim") else {return false}
|
||||||
if let isDirectory = (isDirectory as? NSNumber)?.boolValue {
|
return true
|
||||||
if !isDirectory {
|
|
||||||
guard let pathExtension = url.pathExtension?.lowercaseString else {continue}
|
|
||||||
guard pathExtension.containsString("zim") else {continue}
|
|
||||||
zimURLs.insert(url)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return zimURLs
|
return Set(urls)
|
||||||
}
|
}
|
||||||
|
|
||||||
private class func getCurrentIndexFolderURLsInDocDir() -> Set<NSURL> {
|
private class func getCurrentIndexFolderURLsInDocDir() -> Set<NSURL> {
|
||||||
let fileURLs = FileManager.contentsOfDirectory(NSFileManager.docDirURL) ?? [NSURL]()
|
var urls = getContentsOfDocDir()
|
||||||
var folderURLs = Set<NSURL>()
|
let keys = [NSURLIsDirectoryKey]
|
||||||
for url in fileURLs {
|
urls = urls.filter { (url) -> Bool in
|
||||||
do {
|
guard let values = try? url.resourceValuesForKeys(keys),
|
||||||
var isDirectory: AnyObject? = nil
|
let isDirectory = (values[NSURLIsDirectoryKey] as? NSNumber)?.boolValue where isDirectory == true else {return false}
|
||||||
try url.getResourceValue(&isDirectory, forKey: NSURLIsDirectoryKey)
|
guard let pathExtension = url.pathExtension?.lowercaseString where pathExtension == "idx" else {return false}
|
||||||
if let isDirectory = (isDirectory as? NSNumber)?.boolValue {
|
return true
|
||||||
if isDirectory {
|
|
||||||
guard let pathExtension = url.pathExtension?.lowercaseString else {continue}
|
|
||||||
guard pathExtension == "idx" else {continue}
|
|
||||||
folderURLs.insert(url)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
} catch {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
return folderURLs
|
return Set(urls)
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user