Updated Game to use relative file URLs
This commit is contained in:
parent
2184c8aa68
commit
2aa3535ff3
@ -130,15 +130,26 @@ class DatabaseManager
|
|||||||
|
|
||||||
for URL in URLs
|
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)
|
let game = Game.insertIntoManagedObjectContext(managedObjectContext)
|
||||||
game.name = URL.URLByDeletingPathExtension?.lastPathComponent ?? NSLocalizedString("Game", comment: "")
|
game.name = URL.URLByDeletingPathExtension?.lastPathComponent ?? NSLocalizedString("Game", comment: "")
|
||||||
game.identifier = FileHash.sha1HashOfFileAtPath(URL.path)
|
game.identifier = FileHash.sha1HashOfFileAtPath(URL.path)
|
||||||
game.fileURL = self.gamesDirectoryURL().URLByAppendingPathComponent(game.identifier)
|
game.fileURL = self.gamesDirectoryURL().URLByAppendingPathComponent(game.identifier)
|
||||||
|
game.identifier = identifier
|
||||||
|
game.filename = filename
|
||||||
game.typeIdentifier = Game.typeIdentifierForURL(URL) ?? kUTTypeDeltaGame as String
|
game.typeIdentifier = Game.typeIdentifierForURL(URL) ?? kUTTypeDeltaGame as String
|
||||||
|
|
||||||
do
|
do
|
||||||
{
|
{
|
||||||
try NSFileManager.defaultManager().moveItemAtURL(URL, toURL: game.fileURL)
|
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)
|
identifiers.append(game.identifier)
|
||||||
}
|
}
|
||||||
|
|||||||
@ -15,7 +15,7 @@ import CoreData
|
|||||||
enum GameAttributes: String
|
enum GameAttributes: String
|
||||||
{
|
{
|
||||||
case artworkURL
|
case artworkURL
|
||||||
case fileURL
|
case filename
|
||||||
case identifier
|
case identifier
|
||||||
case name
|
case name
|
||||||
case typeIdentifier
|
case typeIdentifier
|
||||||
@ -24,7 +24,7 @@ enum GameAttributes: String
|
|||||||
extension Game
|
extension Game
|
||||||
{
|
{
|
||||||
@NSManaged var artworkURL: NSURL?
|
@NSManaged var artworkURL: NSURL?
|
||||||
@NSManaged var fileURL: NSURL
|
@NSManaged var filename: String
|
||||||
@NSManaged var identifier: String
|
@NSManaged var identifier: String
|
||||||
@NSManaged var name: String
|
@NSManaged var name: String
|
||||||
@NSManaged var typeIdentifier: String
|
@NSManaged var typeIdentifier: String
|
||||||
|
|||||||
@ -15,6 +15,10 @@ import SNESDeltaCore
|
|||||||
@objc(Game)
|
@objc(Game)
|
||||||
class Game: NSManagedObject, GameType
|
class Game: NSManagedObject, GameType
|
||||||
{
|
{
|
||||||
|
var fileURL: NSURL {
|
||||||
|
let fileURL = DatabaseManager.gamesDirectoryURL.URLByAppendingPathComponent(self.filename)
|
||||||
|
return fileURL
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
extension Game
|
extension Game
|
||||||
|
|||||||
@ -1,12 +1,12 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<model userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="9053" systemVersion="15A284" minimumToolsVersion="Xcode 7.0">
|
<model userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="9057" systemVersion="15A284" minimumToolsVersion="Xcode 7.0">
|
||||||
<entity name="Game" representedClassName="Game" syncable="YES">
|
<entity name="Game" representedClassName="Game" syncable="YES">
|
||||||
<attribute name="artworkURL" optional="YES" attributeType="Transformable" syncable="YES">
|
<attribute name="artworkURL" optional="YES" attributeType="Transformable" syncable="YES">
|
||||||
<userInfo>
|
<userInfo>
|
||||||
<entry key="attributeValueClassName" value="NSURL"/>
|
<entry key="attributeValueClassName" value="NSURL"/>
|
||||||
</userInfo>
|
</userInfo>
|
||||||
</attribute>
|
</attribute>
|
||||||
<attribute name="fileURL" optional="YES" attributeType="Transformable" syncable="YES">
|
<attribute name="filename" optional="YES" attributeType="String" syncable="YES">
|
||||||
<userInfo>
|
<userInfo>
|
||||||
<entry key="attributeValueClassName" value="NSURL"/>
|
<entry key="attributeValueClassName" value="NSURL"/>
|
||||||
</userInfo>
|
</userInfo>
|
||||||
@ -21,6 +21,6 @@
|
|||||||
</uniquenessConstraints>
|
</uniquenessConstraints>
|
||||||
</entity>
|
</entity>
|
||||||
<elements>
|
<elements>
|
||||||
<element name="Game" positionX="-198" positionY="9" width="128" height="118"/>
|
<element name="Game" positionX="-198" positionY="9" width="128" height="120"/>
|
||||||
</elements>
|
</elements>
|
||||||
</model>
|
</model>
|
||||||
Loading…
Reference in New Issue
Block a user