mirror of
https://github.com/danbee/persephone
synced 2025-03-04 08:39:11 +00:00
Compare commits
2 Commits
c487c5c718
...
ed44f2da0d
| Author | SHA1 | Date | |
|---|---|---|---|
| ed44f2da0d | |||
| 1a4d52418b |
@ -73,9 +73,8 @@ class AlbumArtService: NSObject {
|
|||||||
guard let searchURL = urlComponents.url
|
guard let searchURL = urlComponents.url
|
||||||
else { return }
|
else { return }
|
||||||
|
|
||||||
firstly {
|
URLSession.shared.dataTask(.promise, with: searchURL).validate()
|
||||||
URLSession.shared.dataTask(.promise, with: searchURL).validate()
|
.compactMap {
|
||||||
}.compactMap {
|
|
||||||
JSON($0.data)
|
JSON($0.data)
|
||||||
}.compactMap {
|
}.compactMap {
|
||||||
$0["releases"][0]["id"].string
|
$0["releases"][0]["id"].string
|
||||||
@ -89,8 +88,76 @@ class AlbumArtService: NSObject {
|
|||||||
return NSImage(data: $0.data)
|
return NSImage(data: $0.data)
|
||||||
}.done {
|
}.done {
|
||||||
callback($0)
|
callback($0)
|
||||||
|
}.catch {
|
||||||
|
if let httpError = $0 as? PMKHTTPError {
|
||||||
|
print(httpError.description)
|
||||||
|
}
|
||||||
|
//print($0)
|
||||||
|
//self.cacheArtwork(for: album, data: Data())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func getArtworkFromITunes(for album: AlbumItem, callback: @escaping (_ image: NSImage) -> Void) {
|
||||||
|
guard var urlComponents = URLComponents(string: "https://itunes.apple.com/search")
|
||||||
|
else { return }
|
||||||
|
|
||||||
|
urlComponents.query = "term=\(album.artist) \(album.title)&country=us&entity=album&limit=1"
|
||||||
|
|
||||||
|
guard let searchURL = urlComponents.url
|
||||||
|
else { return }
|
||||||
|
|
||||||
|
URLSession.shared.dataTask(.promise, with: searchURL).validate()
|
||||||
|
.compactMap {
|
||||||
|
JSON($0.data)
|
||||||
|
}.compactMap {
|
||||||
|
$0["results"][0]["artworkUrl100"].string
|
||||||
|
}.compactMap {
|
||||||
|
$0.replacingOccurrences(of: "100x100", with: "600x600")
|
||||||
|
}.then { (imageURL: String) -> Promise<(data: Data, response: URLResponse)> in
|
||||||
|
let url = URL(string: imageURL)!
|
||||||
|
return URLSession.shared.dataTask(.promise, with: url).validate()
|
||||||
|
}.compactMap {
|
||||||
|
self.cacheArtwork(for: album, data: $0.data)
|
||||||
|
return NSImage(data: $0.data)
|
||||||
|
}.done {
|
||||||
|
callback($0)
|
||||||
}.catch { (error: Error) in
|
}.catch { (error: Error) in
|
||||||
self.cacheArtwork(for: album, data: Data())
|
print(error)
|
||||||
|
//self.cacheArtwork(for: album, data: Data())
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
func getArtworkFromDiscogs(for album: AlbumItem, callback: @escaping (_ image: NSImage) -> Void) {
|
||||||
|
// TODO: Don't leave this token here!
|
||||||
|
let token = "fzCyDdJHwuDsjZoqbVyQnYRufHwltcjNUGOAWgeJ"
|
||||||
|
let apiURL = "https://api.discogs.com"
|
||||||
|
|
||||||
|
guard var urlComponents = URLComponents(string: "\(apiURL)/database/search")
|
||||||
|
else { return }
|
||||||
|
|
||||||
|
urlComponents.query = "artist=\(album.artist)&release_title=\(album.title)&country=us&format=album&token=\(token)"
|
||||||
|
|
||||||
|
guard let searchURL = urlComponents.url
|
||||||
|
else { return }
|
||||||
|
|
||||||
|
print(searchURL)
|
||||||
|
|
||||||
|
URLSession.shared.dataTask(.promise, with: searchURL).validate()
|
||||||
|
.compactMap {
|
||||||
|
JSON($0.data)
|
||||||
|
}.compactMap {
|
||||||
|
$0["results"][0]["cover_image"].string
|
||||||
|
}.then { (imageURL: String) -> Promise<(data: Data, response: URLResponse)> in
|
||||||
|
let url = URL(string: imageURL)!
|
||||||
|
return URLSession.shared.dataTask(.promise, with: url).validate()
|
||||||
|
}.compactMap {
|
||||||
|
self.cacheArtwork(for: album, data: $0.data)
|
||||||
|
return NSImage(data: $0.data)
|
||||||
|
}.done {
|
||||||
|
callback($0)
|
||||||
|
}.catch { (error: Error) in
|
||||||
|
print(error)
|
||||||
|
//self.cacheArtwork(for: album, data: Data())
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Binary file not shown.
|
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 621 KiB |
Loading…
Reference in New Issue
Block a user