diff options
| author | Ben Beltran <ben@nsovocal.com> | 2020-03-09 21:58:19 -0500 |
|---|---|---|
| committer | Ben Beltran <ben@nsovocal.com> | 2020-03-09 21:58:19 -0500 |
| commit | c96090328d49fddfe0cc22609b3f97250502c15b (patch) | |
| tree | dfe3e0fa93d3e91b3574db2a9b32d7c5ed57ab3b /Sources/itunes_source.swift | |
| parent | 413361cf1ad1110382b096d6e965e558c6ad598d (diff) | |
| parent | bd151cc4d229df466df4a9fcb450f34e43570c99 (diff) | |
Merge branch 'release/1.0.0'1.0.0
Diffstat (limited to 'Sources/itunes_source.swift')
| -rw-r--r-- | Sources/itunes_source.swift | 61 |
1 files changed, 0 insertions, 61 deletions
diff --git a/Sources/itunes_source.swift b/Sources/itunes_source.swift deleted file mode 100644 index 6f4aef9..0000000 --- a/Sources/itunes_source.swift +++ /dev/null @@ -1,61 +0,0 @@ -import ScriptingBridge - -// Protocol to obtain the track from iTunes -@objc protocol iTunesTrack { - @objc optional var name: String {get} - @objc optional var artist: String {get} -} - -// Protocol to interact with iTunes -@objc protocol iTunesApplication { - @objc optional var currentTrack: iTunesTrack? {get} - @objc optional var currentStreamTitle: String? {get} -} - -extension SBApplication : iTunesApplication {} - -// Source that reads track artist and name from current itunes track -class ItunesSource: Source { - - // Calls the spotify API and returns the current track - var currentTrack: Track? { - - if let iTunes: iTunesApplication = SBApplication(bundleIdentifier: "com.apple.iTunes") { - - // Attempt to fetch the title from a stream - if let currentStreamTitle = iTunes.currentStreamTitle { - if let track = currentStreamTitle { - - let trackComponents = track.characters.split(separator: "-").map(String.init) - - if trackComponents.count == 2 { - let artist = trackComponents[0].trimmingCharacters(in: .whitespaces) - let name = trackComponents[1].trimmingCharacters(in: .whitespaces) - - return Track(withName: name, andArtist: artist) - } - - } - } - - // Attempt to fetch the title from a song - if let currentTrack = iTunes.currentTrack { - if let track = currentTrack { - if let name = track.name { - if let artist = track.artist { - - // track properties are empty strings if itunes is closed - if (!(name != "" && artist != "")) { - return nil - } - return Track(withName: name, andArtist: artist) - } - } - } - } - } - - return nil - } - -} |