X-Git-Url: http://git.osdn.net/view?p=kcd%2FKCD.git;a=blobdiff_plain;f=KCD%2FTSVSupport.swift;h=12b69e3e7d9a877e382e63958279f9257ff2a415;hp=d9ba17b42dfb0b99470182316b5987e17e4937ba;hb=e341ef2774c1d7a27d9eb60edab905f1adc510a3;hpb=8e23b39a7f8534e7d68924e0355cc897eb7a3526 diff --git a/KCD/TSVSupport.swift b/KCD/TSVSupport.swift index d9ba17b4..12b69e3e 100644 --- a/KCD/TSVSupport.swift +++ b/KCD/TSVSupport.swift @@ -56,6 +56,7 @@ final class TSVSupport { let formatter = DateFormatter() formatter.dateFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss' 'Z" + return formatter }() @@ -65,22 +66,37 @@ final class TSVSupport { panel.allowedFileTypes = ["kcdlocaldata"] panel.begin { - guard $0 == .OK else { return } + guard $0 == .OK else { + + return + } panel.urls.forEach { url in - guard let fileW = try? FileWrapper(url: url) else { return } + guard let fileW = try? FileWrapper(url: url) else { + + return + } fileW.fileWrappers?.forEach { - guard let data = $0.value.regularFileContents else { return } + guard let data = $0.value.regularFileContents else { + + return + } switch $0.key { + case "kaihatu.tsv": self.registerKaihatuHistory(data) + case "kenzo.tsv": self.registerKenzoHistory(data) + case "kenzoMark.tsv": self.registerKenzoMark(data) + case "dropShip.tsv": self.registerDropShipHistory(data) + default: break + } } @@ -94,19 +110,40 @@ final class TSVSupport { panel.allowedFileTypes = ["kcdlocaldata"] panel.begin { - guard $0 == .OK else { return } - guard let url = panel.url else { return } + guard $0 == .OK else { + + return + } + guard let url = panel.url else { + + return + } let data = self.store.sync { () -> (Data, Data, Data, Data)? in - guard let kaihatuHistory = self.dataOfKaihatuHistory() else { return nil } - guard let kenzoHistory = self.dataOfKenzoHistory() else { return nil } - guard let kenzoMark = self.dataOfKenzoMark() else { return nil } - guard let dropShipHistory = self.dataOfDropShipHistory() else { return nil } + guard let kaihatuHistory = self.dataOfKaihatuHistory() else { + + return nil + } + guard let kenzoHistory = self.dataOfKenzoHistory() else { + + return nil + } + guard let kenzoMark = self.dataOfKenzoMark() else { + + return nil + } + guard let dropShipHistory = self.dataOfDropShipHistory() else { + + return nil + } return (kaihatuHistory, kenzoHistory, kenzoMark, dropShipHistory) } - guard let (kaihatuHistory, kenzoHistory, kenzoMark, dropShipHistory) = data else { return } + guard let (kaihatuHistory, kenzoHistory, kenzoMark, dropShipHistory) = data else { + + return + } let fileW = FileWrapper(directoryWithFileWrappers: [:]) fileW.addRegularFile(withContents: kaihatuHistory, preferredFilename: "kaihatu.tsv") @@ -124,13 +161,14 @@ final class TSVSupport { } } - private func localData(_ entity: Entity, sortBy: KeyPath) -> [T] { + private func localData(_ type: ResultType.Type, sortBy: KeyPath) -> [ResultType] { let sortDesc = SortDescriptors(keyPath: sortBy, ascending: true) - guard let array = try? store.objects(of: entity, sortDescriptors: sortDesc) else { + guard let array = try? store.objects(of: type, sortDescriptors: sortDesc) else { + + print("Can not get \(type)") - print("Can not get \(entity)") return [] } @@ -139,7 +177,7 @@ final class TSVSupport { private func dataOfKaihatuHistory() -> Data? { - return localData(KaihatuHistory.entity, sortBy: \KaihatuHistory.date) + return localData(KaihatuHistory.self, sortBy: \KaihatuHistory.date) .map { LFSeparateLine.empty .append($0.date) @@ -160,21 +198,21 @@ final class TSVSupport { private func dataOfKenzoHistory() -> Data? { - return localData(KenzoHistory.entity, sortBy: \KenzoHistory.date) + return localData(KenzoHistory.self, sortBy: \KenzoHistory.date) .map { - LFSeparateLine.empty - .append($0.date) - .append($0.fuel) - .append($0.bull) - .append($0.steel) - .append($0.bauxite) - .append($0.kaihatusizai) - .append($0.name) - .append($0.sTypeId) - .append($0.flagShipName) - .append($0.flagShipLv) - .append($0.commanderLv) - .line + LFSeparateLine.empty + .append($0.date) + .append($0.fuel) + .append($0.bull) + .append($0.steel) + .append($0.bauxite) + .append($0.kaihatusizai) + .append($0.name) + .append($0.sTypeId) + .append($0.flagShipName) + .append($0.flagShipLv) + .append($0.commanderLv) + .line } .joined(separator: "\n") .data(using: .utf8) @@ -182,21 +220,21 @@ final class TSVSupport { private func dataOfKenzoMark() -> Data? { - return localData(KenzoMark.entity, sortBy: \KenzoMark.kDockId) + return localData(KenzoMark.self, sortBy: \KenzoMark.kDockId) .map { - LFSeparateLine.empty - .append($0.date) - .append($0.fuel) - .append($0.bull) - .append($0.steel) - .append($0.bauxite) - .append($0.kaihatusizai) - .append($0.created_ship_id) - .append($0.kDockId) - .append($0.flagShipName) - .append($0.flagShipLv) - .append($0.commanderLv) - .line + LFSeparateLine.empty + .append($0.date) + .append($0.fuel) + .append($0.bull) + .append($0.steel) + .append($0.bauxite) + .append($0.kaihatusizai) + .append($0.created_ship_id) + .append($0.kDockId) + .append($0.flagShipName) + .append($0.flagShipLv) + .append($0.commanderLv) + .line } .joined(separator: "\n") .data(using: .utf8) @@ -204,7 +242,7 @@ final class TSVSupport { private func dataOfDropShipHistory() -> Data? { - return localData(DropShipHistory.entity, sortBy: \DropShipHistory.date) + return localData(DropShipHistory.self, sortBy: \DropShipHistory.date) .map { LFSeparateLine.empty .append($0.date) @@ -229,21 +267,57 @@ final class TSVSupport { let attr = $0.components(separatedBy: "\t") - guard attr.count == 10 else { return } - guard let date = dateFomatter.date(from: attr[0]) else { return } - guard let fuel = Int(attr[1]) else { return } - guard let bull = Int(attr[2]) else { return } - guard let steel = Int(attr[3]) else { return } - guard let bauxite = Int(attr[4]) else { return } - guard let kaihatu = Int(attr[5]) else { return } - guard let flagLv = Int(attr[8]) else { return } - guard let commandLv = Int(attr[9]) else { return } + guard attr.count == 10 else { + + return + } + guard let date = dateFomatter.date(from: attr[0]) else { + + return + } + guard let fuel = Int(attr[1]) else { + + return + } + guard let bull = Int(attr[2]) else { + + return + } + guard let steel = Int(attr[3]) else { + + return + } + guard let bauxite = Int(attr[4]) else { + + return + } + guard let kaihatu = Int(attr[5]) else { + + return + } + guard let flagLv = Int(attr[8]) else { + + return + } + guard let commandLv = Int(attr[9]) else { + + return + } let predicate = Predicate(\KaihatuHistory.date, equalTo: date) - guard let oo = try? store.objects(of: KaihatuHistory.entity, predicate: predicate) else { return } - guard oo.count != 0 else { return } - guard let obj = store.insertNewObject(for: KaihatuHistory.entity) else { return } + guard let oo = try? store.objects(of: KaihatuHistory.self, predicate: predicate) else { + + return + } + guard oo.count != 0 else { + + return + } + guard let obj = store.insertNewObject(for: KaihatuHistory.self) else { + + return + } obj.date = date obj.fuel = fuel @@ -266,22 +340,61 @@ final class TSVSupport { let attr = $0.components(separatedBy: "\t") - guard attr.count == 11 else { return } - guard let date = dateFomatter.date(from: attr[0]) else { return } - guard let fuel = Int(attr[1]) else { return } - guard let bull = Int(attr[2]) else { return } - guard let steel = Int(attr[3]) else { return } - guard let bauxite = Int(attr[4]) else { return } - guard let kaihatu = Int(attr[5]) else { return } - guard let sType = Int(attr[7]) else { return } - guard let flagLv = Int(attr[9]) else { return } - guard let commandLv = Int(attr[10]) else { return } + guard attr.count == 11 else { + + return + } + guard let date = dateFomatter.date(from: attr[0]) else { + + return + } + guard let fuel = Int(attr[1]) else { + + return + } + guard let bull = Int(attr[2]) else { + + return + } + guard let steel = Int(attr[3]) else { + + return + } + guard let bauxite = Int(attr[4]) else { + + return + } + guard let kaihatu = Int(attr[5]) else { + + return + } + guard let sType = Int(attr[7]) else { + + return + } + guard let flagLv = Int(attr[9]) else { + + return + } + guard let commandLv = Int(attr[10]) else { + + return + } let predicate = Predicate(\KenzoHistory.date, equalTo: date) - guard let oo = try? store.objects(of: KenzoHistory.entity, predicate: predicate) else { return } - guard oo.count != 0 else { return } - guard let obj = store.insertNewObject(for: KenzoHistory.entity) else { return } + guard let oo = try? store.objects(of: KenzoHistory.self, predicate: predicate) else { + + return + } + guard oo.count != 0 else { + + return + } + guard let obj = store.insertNewObject(for: KenzoHistory.self) else { + + return + } obj.date = date obj.fuel = fuel @@ -305,23 +418,65 @@ final class TSVSupport { let attr = $0.components(separatedBy: "\t") - guard attr.count == 11 else { return } - guard let date = dateFomatter.date(from: attr[0]) else { return } - guard let fuel = Int(attr[1]) else { return } - guard let bull = Int(attr[2]) else { return } - guard let steel = Int(attr[3]) else { return } - guard let bauxite = Int(attr[4]) else { return } - guard let kaihatu = Int(attr[5]) else { return } - guard let shiId = Int(attr[6]) else { return } - guard let kDock = Int(attr[7]) else { return } - guard let flagLv = Int(attr[9]) else { return } - guard let commandLv = Int(attr[10]) else { return } + guard attr.count == 11 else { + + return + } + guard let date = dateFomatter.date(from: attr[0]) else { + + return + } + guard let fuel = Int(attr[1]) else { + + return + } + guard let bull = Int(attr[2]) else { + + return + } + guard let steel = Int(attr[3]) else { + + return + } + guard let bauxite = Int(attr[4]) else { + + return + } + guard let kaihatu = Int(attr[5]) else { + + return + } + guard let shiId = Int(attr[6]) else { + + return + } + guard let kDock = Int(attr[7]) else { + + return + } + guard let flagLv = Int(attr[9]) else { + + return + } + guard let commandLv = Int(attr[10]) else { + + return + } let predicate = Predicate(\KenzoMark.date, equalTo: date) - guard let oo = try? store.objects(of: KenzoMark.entity, predicate: predicate) else { return } - guard oo.count != 0 else { return } - guard let obj = store.insertNewObject(for: KenzoMark.entity) else { return } + guard let oo = try? store.objects(of: KenzoMark.self, predicate: predicate) else { + + return + } + guard oo.count != 0 else { + + return + } + guard let obj = store.insertNewObject(for: KenzoMark.self) else { + + return + } obj.date = date obj.fuel = fuel @@ -345,17 +500,41 @@ final class TSVSupport { let attr = $0.components(separatedBy: "\t") - guard attr.count == 9 else { return } - guard let date = dateFomatter.date(from: attr[0]) else { return } - guard let mapInfo = Int(attr[3]) else { return } - guard let mapCell = Int(attr[4]) else { return } - guard let mark = Int(attr[7]) else { return } + guard attr.count == 9 else { + + return + } + guard let date = dateFomatter.date(from: attr[0]) else { + + return + } + guard let mapInfo = Int(attr[3]) else { + + return + } + guard let mapCell = Int(attr[4]) else { + + return + } + guard let mark = Int(attr[7]) else { + + return + } let predicate = Predicate(\DropShipHistory.date, equalTo: date) - guard let oo = try? store.objects(of: DropShipHistory.entity, predicate: predicate) else { return } - guard oo.count != 0 else { return } - guard let obj = store.insertNewObject(for: DropShipHistory.entity) else { return } + guard let oo = try? store.objects(of: DropShipHistory.self, predicate: predicate) else { + + return + } + guard oo.count != 0 else { + + return + } + guard let obj = store.insertNewObject(for: DropShipHistory.self) else { + + return + } obj.date = date obj.shipName = attr[1]