2 // ScreenshotLoader.swift
5 // Created by Hori,Masaki on 2017/11/05.
6 // Copyright © 2017年 Hori,Masaki. All rights reserved.
11 final class ScreenshotLoader {
20 func merge(screenshots: [ScreenshotInformation]) -> [ScreenshotInformation] {
22 let urls = screenshotURLs()
25 let itemWithoutDeleting = screenshots.filter { urls.contains($0.url) }
29 .filter { url in !itemWithoutDeleting.contains(where: { url == $0.url }) }
30 .map { ScreenshotInformation(url: $0) }
32 return itemWithoutDeleting + newItems
35 private func screenshotURLs() -> [URL] {
37 guard let files = try? FileManager.default.contentsOfDirectory(at: url, includingPropertiesForKeys: nil) else {
39 return Logger.shared.log("can not read list of screenshot directory", value: [])
42 return files.filter(isPicture)
45 private func isPicture(_ url: URL) -> Bool {
47 guard let type = try? NSWorkspace.shared.type(ofFile: url.path) else { return false }
49 return NSImage.imageTypes.contains(type)