diff --git a/Yep/Services/OpenGraphService.swift b/Yep/Services/OpenGraphService.swift index 8197c10f..cb19a871 100644 --- a/Yep/Services/OpenGraphService.swift +++ b/Yep/Services/OpenGraphService.swift @@ -29,6 +29,22 @@ struct OpenGraph { var previewVideoURLString: String? var previewAudioURLString: String? + struct AppleMusic { + var artistName: String? + + var artworkURLString30: String? + var artworkURLString60: String? + var artworkURLString100: String? + var artworkURLString160: String? + + var collectionType: String? + var collectionName: String? + var collectionViewURLString: String? + + var trackTimeMillis: Int? + } + var appleMusic: AppleMusic? + init() { } @@ -108,8 +124,18 @@ func openGraphWithURLString(URLString: String, failureHandler: ((Reason, String? case "song": openGraph.previewAudioURLString = artworkInfo["previewUrl"] as? String - case "album": - break + var appleMusic = OpenGraph.AppleMusic() + + appleMusic.artistName = artworkInfo["artistName"] as? String + + appleMusic.artworkURLString30 = artworkInfo["artworkUrl30"] as? String + appleMusic.artworkURLString60 = artworkInfo["artworkUrl60"] as? String + appleMusic.artworkURLString100 = artworkInfo["artworkUrl100"] as? String + + appleMusic.collectionName = artworkInfo["collectionName"] as? String + appleMusic.collectionViewURLString = artworkInfo["collectionViewUrl"] as? String + + openGraph.appleMusic = appleMusic case "feature-movie": openGraph.previewVideoURLString = artworkInfo["previewUrl"] as? String @@ -122,6 +148,30 @@ func openGraphWithURLString(URLString: String, failureHandler: ((Reason, String? } } + if let collectionType = artworkInfo["collectionType"] as? String { + + switch collectionType.lowercaseString { + + case "album": + + var appleMusic = OpenGraph.AppleMusic() + + appleMusic.artistName = artworkInfo["artistName"] as? String + + appleMusic.artworkURLString100 = artworkInfo["artworkUrl100"] as? String + appleMusic.artworkURLString160 = artworkInfo["artworkUrl160"] as? String + + appleMusic.collectionType = collectionType + appleMusic.collectionName = artworkInfo["collectionName"] as? String + appleMusic.collectionViewURLString = artworkInfo["collectionViewUrl"] as? String + + openGraph.appleMusic = appleMusic + + default: + break + } + } + completion(openGraph) }) } diff --git a/Yep/ViewControllers/Conversations/ConversationsViewController.swift b/Yep/ViewControllers/Conversations/ConversationsViewController.swift index 17ab3d86..7a27045c 100644 --- a/Yep/ViewControllers/Conversations/ConversationsViewController.swift +++ b/Yep/ViewControllers/Conversations/ConversationsViewController.swift @@ -261,9 +261,9 @@ class ConversationsViewController: SegueViewController { //"https://github.com/", //"http://www.douban.com/note/431101390/", //"https://itunes.apple.com/us/movie/headhunters/id550338059", // 电影 - //"https://itunes.apple.com/cn/album/19-standard-edition/id270409624?l=en", // 专辑 + "https://itunes.apple.com/cn/album/19-standard-edition/id270409624?l=en", // 专辑 //"https://itunes.apple.com/cn/album/hello-single/id1051365605?i=1051366040&l=en", // 单曲 - "https://itunes.apple.com/us/book/swift-programming-language/id881256329", // 书 + //"https://itunes.apple.com/us/book/swift-programming-language/id881256329", // 书 //"https://itunes.apple.com/cn/app/evernote/id281796108?l=en&mt=8", // APP ].forEach({ openGraphWithURLString($0, failureHandler: nil, completion: { openGraph in