From 2aa3535ff3467122206043bcec63a158648de2ae Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Sun, 1 Nov 2015 03:13:21 -0600 Subject: [PATCH] Updated Game to use relative file URLs --- Common/Database/DatabaseManager.swift | 11 +++++++++++ Common/Database/Model/Game+CoreDataProperties.swift | 4 ++-- Common/Database/Model/Game.swift | 4 ++++ .../Model.xcdatamodeld/Model.xcdatamodel/contents | 6 +++--- 4 files changed, 20 insertions(+), 5 deletions(-) diff --git a/Common/Database/DatabaseManager.swift b/Common/Database/DatabaseManager.swift index c1e72f4..2a80bc2 100644 --- a/Common/Database/DatabaseManager.swift +++ b/Common/Database/DatabaseManager.swift @@ -130,15 +130,26 @@ class DatabaseManager for URL in URLs { + let identifier = FileHash.sha1HashOfFileAtPath(URL.path) as String + + var filename = identifier + if let pathExtension = URL.pathExtension + { + filename += "." + pathExtension + } + let game = Game.insertIntoManagedObjectContext(managedObjectContext) game.name = URL.URLByDeletingPathExtension?.lastPathComponent ?? NSLocalizedString("Game", comment: "") game.identifier = FileHash.sha1HashOfFileAtPath(URL.path) game.fileURL = self.gamesDirectoryURL().URLByAppendingPathComponent(game.identifier) + game.identifier = identifier + game.filename = filename game.typeIdentifier = Game.typeIdentifierForURL(URL) ?? kUTTypeDeltaGame as String do { try NSFileManager.defaultManager().moveItemAtURL(URL, toURL: game.fileURL) + try NSFileManager.defaultManager().moveItemAtURL(URL, toURL: DatabaseManager.sharedManager.gamesDirectoryURL().URLByAppendingPathComponent(game.identifier + ".smc")) identifiers.append(game.identifier) } diff --git a/Common/Database/Model/Game+CoreDataProperties.swift b/Common/Database/Model/Game+CoreDataProperties.swift index 2fa5975..04a0122 100644 --- a/Common/Database/Model/Game+CoreDataProperties.swift +++ b/Common/Database/Model/Game+CoreDataProperties.swift @@ -15,7 +15,7 @@ import CoreData enum GameAttributes: String { case artworkURL - case fileURL + case filename case identifier case name case typeIdentifier @@ -24,7 +24,7 @@ enum GameAttributes: String extension Game { @NSManaged var artworkURL: NSURL? - @NSManaged var fileURL: NSURL + @NSManaged var filename: String @NSManaged var identifier: String @NSManaged var name: String @NSManaged var typeIdentifier: String diff --git a/Common/Database/Model/Game.swift b/Common/Database/Model/Game.swift index 74e43ee..807d5b7 100644 --- a/Common/Database/Model/Game.swift +++ b/Common/Database/Model/Game.swift @@ -15,6 +15,10 @@ import SNESDeltaCore @objc(Game) class Game: NSManagedObject, GameType { + var fileURL: NSURL { + let fileURL = DatabaseManager.gamesDirectoryURL.URLByAppendingPathComponent(self.filename) + return fileURL + } } extension Game diff --git a/Common/Database/Model/Model.xcdatamodeld/Model.xcdatamodel/contents b/Common/Database/Model/Model.xcdatamodeld/Model.xcdatamodel/contents index 51f2c7c..a126424 100644 --- a/Common/Database/Model/Model.xcdatamodeld/Model.xcdatamodel/contents +++ b/Common/Database/Model/Model.xcdatamodeld/Model.xcdatamodel/contents @@ -1,12 +1,12 @@ - + - + @@ -21,6 +21,6 @@ - + \ No newline at end of file