From a0f60de926744fa00d634637efc498dfccaed21f Mon Sep 17 00:00:00 2001 From: Riley Testut Date: Wed, 11 Dec 2019 16:11:25 -0800 Subject: [PATCH] Dynamically maps old album artwork URLs to new ones --- Delta/Database/Model/Human/Game.swift | 20 +++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/Delta/Database/Model/Human/Game.swift b/Delta/Database/Model/Human/Game.swift index 67ea655..77c4017 100644 --- a/Delta/Database/Model/Human/Game.swift +++ b/Delta/Database/Model/Human/Game.swift @@ -30,10 +30,24 @@ public class Game: _Game, GameProtocol var artworkURL = self.primitiveValue(forKey: #keyPath(Game.artworkURL)) as? URL self.didAccessValue(forKey: #keyPath(Game.artworkURL)) - if let unwrappedArtworkURL = artworkURL, unwrappedArtworkURL.isFileURL + if let unwrappedArtworkURL = artworkURL { - // Recreate the stored URL relative to current sandbox location. - artworkURL = URL(fileURLWithPath: unwrappedArtworkURL.relativePath, relativeTo: DatabaseManager.gamesDirectoryURL) + if unwrappedArtworkURL.isFileURL + { + // Recreate the stored URL relative to current sandbox location. + artworkURL = URL(fileURLWithPath: unwrappedArtworkURL.relativePath, relativeTo: DatabaseManager.gamesDirectoryURL) + } + else if unwrappedArtworkURL.host?.lowercased() == "img.gamefaqs.net", var components = URLComponents(url: unwrappedArtworkURL, resolvingAgainstBaseURL: false) + { + // Quick fix for broken album artwork URLs due to host change. + components.host = "gamefaqs1.cbsistatic.com" + components.scheme = "https" + + if let url = components.url + { + artworkURL = url + } + } } return artworkURL