let formatter = DateFormatter()
formatter.dateFormat = "yyyy'-'MM'-'dd' 'HH':'mm':'ss' 'Z"
+
return formatter
}()
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
+
}
}
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")
}
}
- private func localData<T, Value>(_ entity: Entity<T>, sortBy: KeyPath<T, Value>) -> [T] {
+ private func localData<ResultType: Entity, Value>(_ type: ResultType.Type, sortBy: KeyPath<ResultType, Value>) -> [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 []
}
private func dataOfKaihatuHistory() -> Data? {
- return localData(KaihatuHistory.entity, sortBy: \KaihatuHistory.date)
+ return localData(KaihatuHistory.self, sortBy: \KaihatuHistory.date)
.map {
LFSeparateLine.empty
.append($0.date)
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)
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)
private func dataOfDropShipHistory() -> Data? {
- return localData(DropShipHistory.entity, sortBy: \DropShipHistory.date)
+ return localData(DropShipHistory.self, sortBy: \DropShipHistory.date)
.map {
LFSeparateLine.empty
.append($0.date)
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
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
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
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]